Sviluppo S / W adattivo - Introduzione

Cos'è Agile?

In termini letterari, la parola "agile" significa qualcuno che può muoversi rapidamente e facilmente o qualcuno che può pensare e agire rapidamente e chiaramente. Negli affari, "agile" viene utilizzato per descrivere i modi di pianificare e svolgere il lavoro in cui si comprende che apportare le modifiche necessarie è una parte importante del lavoro. "Agilità" aziendale significa che un'azienda è sempre in grado di tenere conto dei cambiamenti del mercato.

Nello sviluppo del software, il termine "agile" è adattato a significare "la capacità di rispondere ai cambiamenti - cambiamenti da Requisiti, Tecnologia e Persone".

Manifesto Agile

L'Agile Manifesto è stato pubblicato da un team di sviluppatori di software nel 2001, sottolineando l'importanza del team di sviluppo, adattandosi alle mutevoli esigenze e al coinvolgimento dei clienti.

Il Manifesto Agile è:

Stiamo scoprendo modi migliori per sviluppare software facendolo e aiutando gli altri a farlo. Attraverso questo lavoro, siamo arrivati ​​a valorizzare:

  • Individui e interazioni su processi e strumenti.
  • Software funzionante su documentazione completa.
  • Collaborazione con il cliente nella negoziazione del contratto.
  • Rispondere al cambiamento piuttosto che seguire un piano.

Cioè, mentre c'è valore negli elementi a destra, diamo più valore agli elementi a sinistra.

Caratteristiche dell'agilità

Di seguito sono riportate le caratteristiche di Agility:

  • Agility in Agile Software Development si concentra sulla cultura dell'intero team con team multidisciplinari e interfunzionali che sono autorizzati e auto-organizzati.

  • Promuove responsabilità e responsabilità condivise.

  • Facilita una comunicazione efficace e una collaborazione continua.

  • L'approccio a tutto il team evita ritardi e tempi di attesa.

  • Consegne frequenti e continue garantiscono un feedback rapido che a sua volta consente al team di allinearsi ai requisiti.

  • La collaborazione facilita la combinazione tempestiva di diverse prospettive nell'implementazione, nella correzione dei difetti e nell'adattamento dei cambiamenti.

  • Il progresso è costante, sostenibile e prevedibile, enfatizzando la trasparenza.

Metodologie agili

Le prime implementazioni dei metodi Agile includono Rational Unified Process, Scrum, Crystal Clear, Extreme Programming, Adaptive Software Development, Feature Driven Development e Dynamic Systems Development Method (DSDM). Questi sono ora indicati collettivamente come le metodologie Agile, dopo che il manifesto Agile è stato pubblicato nel 2001.

In questo tutorial impareremo la Metodologia Agile - Adaptive Software Development.

Cos'è lo sviluppo software adattivo?

Lo sviluppo di software adattivo è un passaggio verso pratiche adattive, lasciando le pratiche deterministiche nel contesto di sistemi complessi e ambienti complessi. Adaptive Software Development si concentra sulla collaborazione e l'apprendimento come tecnica per costruire sistemi complessi. Si è evoluto dalle migliori pratiche di RAD (Rapid Application Development) e Evolutionary Life Cycles. Lo sviluppo di software adattivo è stato quindi esteso per includere approcci adattivi per la gestione, con la speculazione che sostituisce la pianificazione.

Jim Highsmith ha pubblicato un libro su Adaptive Software Development nel 2000. Nelle parole di Highsmith:

“Lo sviluppo di software adattivo è ciclico come il modello evolutivo, con i nomi delle fasi Speculare, collaborare, apprendere che riflettono il regno imprevedibile di sistemi sempre più complessi. Lo sviluppo adattivo va oltre il suo patrimonio evolutivo in due modi chiave. Primo, sostituisce esplicitamente il determinismo con l'emergenza. In secondo luogo, va oltre un cambiamento nel ciclo di vita per un cambiamento più profondo nello stile di gestione ".