mercoledì 22 marzo 2006

Agile development

Programmazione agile? Che vorra' mai dire?
La programmazione agile si basa sul concetto che sviluppo software non significa solo scrivere codice; sviluppo significa prendere decisioni concernenti il design: un’attività creativa che richiede nel contempo grande disciplina e responsabilità al fine di progettare, creare, controllare e fare evolvere l’architettura e la funzionalità del progetto.

Ecco una prima definizione da Wikipedia:
"Most agile methods attempt to minimize risk by developing software in short timeboxes, called iterations, which typically last one to four weeks. Each iteration is like a miniature software project of its own, and includes all of the tasks necessary to release the mini-increment of new functionality: planning, requirements analysis, design, coding, testing, and documentation. While an iteration may not add enough functionality to warrant releasing the product, an agile software project intends to be capable of releasing new software at the end of every iteration. At the end of each iteration, the team reevaluates project priorities.

Agile methods emphasize realtime communication, preferably face-to-face, over written documents. Most agile teams are located in a bullpen and include all the people necessary to finish software. At a minimum, this includes programmers and their "customers." (Customers are the people who define the product. They may be product managers, business analysts, or actual customers.) The bullpen may also include testers, interaction designers, technical writers, and managers.

Agile methods also emphasize working software as the primary measure of progress. Combined with the preference for face-to-face communication, agile methods produce very little written documentation relative to other methods. This has resulted in criticism of agile methods as being undisciplined hacking (aka Cowboy coding)."

Come dire programmatori di tutto il mondo Unitevi... ma prima ragionate bene sul software...

Eh si ragionare ragionare, purtroppo in tantissimi software sono fatti coi piedi, questo perche' non vengono ben pensati a tavolino, si applica quella che e' la Cowboy Coding...
Molte aziende si affidano a persone che sono incompetenti, che pensano di saper programmare, solo perche' hanno un diploma che lo dimostra. Conosco persone che non sono diplomate, ma fanno cose molto piu' complesse di quelle che io possa fare, d'altro canto esistono persone che, laureate o diplomate, scrivono codice eccellente ma privo di quella fantasia e di quei trucchetti che distinguono un programmatore da un vero programmatore.
In Italia purtroppo la mansione del programmatore non e' protetta dalla legge (come puo' essere un ingegnere edile) questo perche' il software non si tocca, il software non esiste, il software puo' essere fatto da persone poco competenti e puo' funzionare... a volte.
Preandiamo ad esempio quello che e' successo a Malpensa e a Fiumicino in questi giorni, errori nel software probabilmente, che sono costati tanti dindi ai passeggeri e alle compagnie aeree...
Quindi caro programmatore, prima di scrivere la tua prossima funzione o routine... pensa... pensa... pensa e ripensa... dopo? debugga debuugga e ripensa? dopo? bhe se non funziona la tua procedura cambia lavoro! Bhe a parte gli scherzi, teniamoci aggiornati e avremo piu' soddisfazioni noi... e i nostri clienti saranno felici....

Confesso pero' che non ho ancora ben chiaro cosa sia l'agile  development, spero in qualche futuro corso all'uni...

:-)

Ciao Piero

Nessun commento:

Posta un commento