raul | ---------------------------------------------- |
viXard | this conference i´m about to give |
viXard | is about some failures i´ve detected during my study of extreme programming |
viXard | i´m going to talk about some techniques of this methodology |
viXard | llegó mi jefe :X |
EMPEROR | good you gave/late/nights to the ones that by aqui estais todavia estais on time to abandon the room... when be closed the door, already tendreis that to endure you to the end <@jmgv> well... I see that you quedais <@jmgv> this conference that I am going to present you to continuacion |
> i will speack about the diferents technics that this metodology use, and i will justify why i think that generally it don't work. |
> mainly in the corporative or real production enviropment |
> Since our starting at computers technology always we was have the need of plannify for can finish our computer project in the time accordated. |
> Since we start at university, we had dead lines for give our practices. |
Arador | when the thing is only a practices' university, that in the worst case can occasionate that we suspend this assignature, we can allow us some luxuries and imprecisions at the time of planning. |
Arador | we can't afford certains luxes or impresitions at planification time |
Arador | or even in the quality of our projects. But the thing changes when a bad planning, or even a giving out of date of a project can carry an important money loss. |
Arador | if we look an instant at the satisfaccion's fgrade of clients that entrust the informatic proyect development |
Arador | we can see in general lines unhappiness |
jmgv | anyone can ask in english |
diego | but a lot of times, we realise that the planifications m we do aren't the best to for the real needs of developers, but the real needs of the client |
Arador | we try to fit the planifications of the client's requeriments |
Arador | these times, normally can't be done and so, if makes fustration in our client |
Arador | what takes us to a generalized unsatisfaction |
Arador | some times this is due to other causes, like can be for example, comercials not reasy that sell things we don't have |
Arador | and that needs quite mroe development's hours that the expected |
Arador | that doesn't mean tha the method we're using isn't valid |
Arador | i'd say that the method isn't well applied..all this we'll see during the lecture |
Arador | you can ask whenever you want |
Arador | due to that this happens some times, often new metodologies are sold as the bes thing in the world, and it seems that are going to finish with our prblems |
Arador | a metodology that is being used a lot lately is the "extreme programming" |
Arador | but for me, the one thing beautiful is the name |
Arador | al this can be seen as something subjective...isn't a technical lecture, is a concept one |
Arador | nut bow, we're going to argue why i believe that's in this way |
Arador | in some books of extreme programming we can see a definition like the following |
Arador | the extreme programming isn't anything more that common sense appliet to the extremes |
Arador | for me.....that definition hasn't sense |
Arador | now you'll se why |
Arador | the goy at 4 row, don't look the clock |
Arador | I decided to look at this metodology, and after seeing it, i saw that it isn't a metodology that adapts correctly to a productive enviroment, and that's because i decided to do this lecture |
Arador | i'll see the paradigms in whose this metodology is based to make you see through logic deductions that it isn't a metodology that can be used in this kind of entorns |
Arador | to be fair, i'd have called this method with another name, that it'd adapt at what really does |
Arador | for example, improvised programming, or programming in the "way" |
Arador | because the one thing it does is donig the things in a improvised way, without following a strict metodology, adjusting the code and the specifications while doing it |
Arador | don't dude this king of programming is good pro very small proyects |
Arador | whre time doesn't matter |
Arador | and whose objectives aren't the productivity |
Arador | now, we're going to expone the exigences in a real programming enviroment |
Arador | with a real case |
Arador | Exigences in productive environments |
Arador | when a enterprise is going to develop a software proyect, is indispensable some rules |
Arador | the most important are: time and cost |
Arador | you can't start any proyect without looking that two rules, because even a entreprise isn't going to deveop a sotfwarre if he doesn't know that the client is going to be when it's finished |
Arador | even if he wants to buy it, because the time has exceeded or the costs are big for the client's expectatives |
Arador | so this needing is patent |
Arador | the not carry out this kind of compromises, makes even paying indemnizations |
Arador | to the client by the enterprise |
Arador | personally i had this kind of contract |
Arador | we did a software, and we had a concrete date to give certain modules |
Arador | if any of these modules weren't given, he annoted a fault |
Arador | at the third fault, the client was given the rights of the software |
Arador | each day after, it was =- 6000 ¤ above the final price |
Arador | i've no make an error, each day was 6000 ¤ of indenmnization |
Arador | using extreme programming, now we'd be ruined :-) |
Arador | after, we'll see how the extremme programming doesn't allows us to take mesauser above that two numbers |
Arador | characteristics of the EXtremme programming and why it doesnt't adapts to the a real productive environment |
Arador | these definitions are from the book |
Arador | "Extremme programming explained" by Kent Beck |
Arador | the planification game: determine quickly what the software wwill do in the following version mixing the client's priorities and technical requeriments |
Arador | when reality doesn't carry out the paln, change the plan |
Arador | be serious! what's that of refreshing the planificatin when it doesn't carry out? |
Arador | in this first practice, we delete any importance to a real planification about the total cost of the proyect |
Arador | and practically it advises a first aproximation to adjust the planification to reality after |
Arador | but it happens that the planifications must be done first because is the one way to value the final cost of a proyect |
Arador | and it's the one way you can compromise to a concrete period |
Arador | we'll see that there're other practices of this metodology that takes you to the same error |
Arador | A later planification or during a pryect, isn't a planification, it's a activity log |
raul | 2) Small versions. Show faster posible as you can, a litle part of the project, and publish some litle versions faster than as you can. |
raul | This will give problems to us |
raul | If you publish small versions and update it constantlye the software at the customer side, it have some problems |
raul | By one side a time inversion that cause a high price of the project because the instalation of irrelevant versions for the customer only can give troubles with the customer because you havo to upgrade their software every moment without be tested. |
raul | by this they are along a large period of time testing a software that are unstable until the end and that can ocasionate data lossing in the customer by undetected erros. |
raul | This do that the customer be frustrated, at the same time that it is a lossing of time for the client, because the customer think that it's a laboratory rat, that we are using to test software. |
raul | Until the software will be stable. |
raul | We don't have to forget that the customer don't work for us, and by this we can't get they time for test our software. |
raul | c) Simple desing: The system have to be designed simple as it can be in each moment, and errase every complex code early as it are detected. |
raul | I think that the simplicity of code is good, but not with the simplicity of functionallity. |
raul | that how it looks is that it sell. |
raul | Take this practice to the extreme will make that the modules that we will codify will being extremly simple and it will repercute in the we will codify will being extremly simple and it will repercute in the flexibility of the software builded. |
raul | By this, we have to take care on where we simplify, because an excesive simplification of the code can make our live more hard in the moment of maintainng the software. |
raul | we continueing... |
raul | d) Testing: the programes make small pieces that are tested by they self and by the customers for be sure that it acomplish all specification |
raul | This point are a complement of the B point and it's consecuence of it, because it i'm going to stop here. But, witch independence of what kind of methodology is used all programes are always testing the new code. |
raul | e) Programing in couples. All the code produced is writed with 2 programes at the same computer. |
raul | Sincerely i don't know what advantages have this practice that the extreme programing thanks |
raul | it's a practice by this own nature less productive. |
raul | it's true that some times is needed that 2 or more programers will be sitted at the same monitor for discuse about a lines of code but it's a lossing of time and by it of money that we have two programers _all_ day programing in the same computer. |
raul | And it's bad for the less active programer that produces anxiety and frustration. |
raul | some of the programers that are in this channel, will like work in place where some days will be all time watching how their college works? |
raul | all of this come us to a bad aprofiting of the resources |
raul | f) All is of all: every one can change every code in every place at every moment. |
raul | look... |
raul | imagine the programing of an OS and some people that have to programing the virtual memory management |
raul | and other few are working on the filesystem |
raul | do you belive that each one inside the group of virtual mem can touch the code of the filesystem, without speack with they fist about what he/she want? |
raul | and that will be they who study the needs and make oportune modifications? |
raul | by this i think that this practice isn't good ant also very unproductive.+ |
raul | When a project have some weight it's imposible control all the code of one aplication by each component of the team |
raul | by the fact some of they in projects biggers enough only know the comunication interface with the objects of the other module that is not from they. |
Arador | g) client in home: It includes, in a real way at the client as a component inside the development's team. We're disposed the answer all questions in any moment |
Arador | here we make a big error thinking that the client is going to be disposed to help us each time we call him. |
Arador | i believe that it's more than evident that who wrote the rule, hasn't treated a lot with real clientsthem, by general rule, don't want to know anything about us until the final installation of the aplication |
Arador | them, by general rule, don't want to know anything about us until the final installation of the aplication |
Arador | and we can only concrete interviews with them randomly and pacting them before |
Arador | i commented before that the client doesn't work for us and he isn't going to give us more time that the necesary |
Arador | they are for their bussines, not for ours |
Arador | other things that the extremme programming says |
Arador | the figure of prroyect thief or analist isn't there anymore |
Arador | do you believe that the linux kernel could be programmed without liders that organize all the job? |
Arador | everybody wants their patch there.. |
Arador | for that there're the chief of eahc proyect, module, branch.....to decide what's in and what isn't |
Arador | talking between them at higher levels |
Arador | so deleting these people isn't practic |
Arador | in the test side, it's practic to make exahustive tests abourt funcionalities that it covers |
Arador | because tests have to be mixed |
Arador | and to be mixed, it's to be documented, and in the documentation the extreme programming isn't well seen |
Arador | it's said that knowdeledge it's in people not in papers |
Arador | though you'll say what we do when one of the persons who know more goes out of the enterprise |
Arador | i repeat that i'm not friend of papers and burocracy, but documentation isn't that |
Arador | in summary and to finish the lecture |
Arador | by this i think that this practice isn't good ant also very unproductive |
Arador | When a project have some weight it's imposible control all the code of one aplication by each component of the team |
Arador | - Discipline in every step of the software. With this i don't want say that we have to lose our time in burocracy and papers |
Arador | An Initial meeting with the customer (will be more than one meeting along the time that will be the project) |
Arador | - Use the UML language for desing the aplication. And as project documentation. |
raul | It don't give us nothing, don't help to planning, don't report benefit at "time of response" to the customer, don't help us to inprove the quality of the software, we don't have documentation |
Arador | <forget the "by this i think.." and "When a project...." lines above> |
raul | - Discipline in every step of the software. |
> With this i don't want say that we have to lose our time in burocracy and papers. |
> Many people do a paralelism betwen this 2 things and it's not true. |
raul | by this, that i'm proposing for the developement of big projects in the cases that are a lot of people involucrated and strong links in the midle is the next: |
viXard | - Initial meeting with the client (there will be more through the entire project) |
viXard | - UML language use for application design and for documentation project |
viXard | - To use a version control system, like CVS or Bitkeeper |
viXard | - intensive use of CASE tools most important for data model designs. |
viXard | - Exhaustive description of issues that must be covered by our app |
viXard | and check with our client. |
viXard | - Detection of critical paralel tasks |
viXard | - Design interfaces and object to be used for their communication |
viXard | - Real planification having in mind the experience of programmers, the asgined tasks, the paralelism between them, and the time in critic tasks |
viXard | - The creation of control points to follow he project and to add new resources if is needed |
viXard | - To open a test period. |
viXard | - To open a tunning period. |
viXard | and finally - Release the application. |
viXard | Don´t be ammused by pretty cool names of some methodologies and get through the project using serius tools |
viXard | is very unusual the project that in released on time, but i dont think this is because of the methodology |
viXard | instead, is an application of more traditional methods and that we get involved by "new" methods that we believe are there to save our ass, but instead make us being late |
viXard | is everything was so easy in extreme programming, why so many books of methods and metrics? are they all wrong? |
viXard | please, don´t think my point of view is conservative and traditional |
viXard | i think this methodology i´ve talk about at the end, is very good, and can be applied to work environments like teleworking |
viXard | but this is just MY point of view |
> es el final ?? |
viXard | if anybody is capable to convinceme otherwise....then...i´ll change |
viXard | If yo have any question, i´ve done :-) |
fernand0 | plas plas plas plas plas plas plas plas |
netman | plas plas plas plas plas plas plas plas plas plas |
> clap clap clap clap clap clap clap clap clap clap |
Ocell | plas plas!!!!! |
> clap clap clap clap clap clap clap clap clap clap |
> clap clap clap clap clap clap clap clap clap clap |
> clap clap clap clap clap clap clap clap clap clap |
> clap clap clap clap clap clap clap clap clap clap |
> _____________ the end_____________ |
[ |