Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [semiOT] programmazione agile? parliamone!

    salve a tutti,

    vorrei approfondire la mia conoscenza della tecniche di progettazione/programmazione software dette "agili". cosa sono e in cosa differiscono dalle scelte operative classiche? quali sono i benefici di un approccio agile?
    apriamo una discussione fruttuosa, magari evitando di linkare soltanto una voce Wikipedia. ;)

    a voi. ;)

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Ciò che più contraddistingue le metodologie agili dai normali processi di sviluppo del software è che si tiene conto dei cambiamenti, cioè si progetta per il cambiamento, con uno sviluppo di tipo iterativo (o evolutivo, o incrementale, o prototipale).

    Si inizia impostando la base per una funzionalità e si prosegue con cicli di refactoring (miglioramenti successivi) e testing.

    Lo sviluppo iterativo è importante perchè:
    - non è possibile effettuare la fase di analisi in un colpo solo
    - certi dettagli di design si apprendono solo in fase di codifica
    - le fasi di sviluppo del software non sono indipendenti, ma collegate

  3. #3
    Utente di HTML.it L'avatar di GabbOne
    Registrato dal
    Mar 2006
    Messaggi
    577
    La programmazione ad oggetti se non sbaglio ci dà una grossa mano per questa programmazione agile

    e forse questa programmazione agile non è un concetto nuovisimo

  4. #4
    grazie a tutti per il contributo. :)
    una domanda: secondo voi ha senso adottare un approccio agile quando il team di sviluppo è composto da una sola persona?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Certo, i principi chiave sono tanto applicabili a un team composto da una persona quanto a team composti da più persone, non trascendono da questi particolari.

    Comunque sarebbe più giusto parlare di tipo e dimensione di progetto.

    Si consideri che un programmatore singolo avrà probabilmente a che fare con un piccolo/medio progetto, e il fatto che si trovi da solo potrebbe far sì che non segua un approccio rigoroso e salti attività importanti come testing e una fase accurata di analisi solo perchè non deve rendere conto a nessuno riguardo alle funzionalità.

  6. #6
    la vera definizione di programmazione agile non è equivalente a sviluppo software iterativo o incrementale. Questi due sono cmq due aspetti della prog agile.
    Come diceva keratox si punta l attenzione sulla capacità di rispondere ai cambiamenti.
    Però esistono dei principi molto più particolari che la contraddistingono da altri tipo di sviluppo software.
    Ad esempio viene data enfasi ad una stesura di buoni rapporti tra le persone che compongono un team, a privilegiare la realizzazione vera e propria del software più che una documentazione particolareggiata.
    Inoltre non c'è una estrema rigidità con le specifiche che ci da l'utente che richiede il software, bensì si privilegia una collaborazione al fine anche di cambiare le specifiche del progetto per trovare dei compromessi.

    Quindi è uno stile di programmazione molto più flessibile, in cui io ad esempio mi sono trovato molto molto bene con i miei compagni di gruppo di lavoro
    Open your mind. Use Open Source.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965
    Tra l'altro la programmazione agile è suddivisa in altre metodologie che estendono i concetti o ne enfatizzano alcuni.

    Ad esempio la XP (programmazione estrema) consiste nell'applicazione più completa possibile (portata all'estremo) delle best practices, lo sviluppo è test-driven e si lavora in coppia. Inoltre viene data importanza ad altri principi come la comunicazione, il coraggio e altre caratteristiche più legate alle persone.

    Ecco, parlando mi è venuto in mente uno dei concetti chiave: la programmazione agile è orientata alle persone, piuttosto che ai processi.

  8. #8
    grazie ragazzi. :)
    effettivamente io ho sempre avuto sulle scatole le centinaia di formalità (progettuali e realizzative) che caratterizzano lo sviluppo software secondo i dettami dell'ingegneria del software classica. credo che in molti contesti (almeno in progetti di piccole-medie dimensioni) siano altamente controproducenti.
    sicuramente anche per me il feedback con il cliente è un elemento di notevole importanza: da una parte consente di stabilire rapporti più frequenti (e, se vogliamo, anche più informali) fra le persone, dall'altro permettono di realizzare software decisamente modellato sulle reali necessità del cliente, evitando le modifiche post-consegna.
    credo che adotterò maggiormente questi dettami nelle mie attività di sviluppo. :)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.