Agile e PHP

Da quando ho scritto questo post è passato tanto tempo ed ho cambiato molto la mia opinione sul PHP, soprattutto dopo aver approfondito la conoscenza di Python ed averne apprezzato la semplicità, la chiarezza e la potenza. Oggi Python è la mia prima scelta per creare aplicazioni Web semplici o complesse. Certo, trovare un hosting provider che supporti Python non è così facile come per PHP ma da quando ho scoperto i servizi di hosting di Webfaction anche questo non è più un problema.

Bug
Pur non essendo un programmatore professionista ho scritto un certo numero di righe di codice. Se mi dovessero chiedere qual’è il mio linguaggio di programmazione (web) preferito risponderei PHP. E’ open source, semplice ed immediato, senza però privare il programmatore della possibilità di rendere le cose più complesse, robuste e strutturate affidandosi alla programmazione ad oggetti e a pattern del tipo Model-View-Controller.

In altre parole PHP garantisce una enorme libertà, ma a volte questa si rivolta contro il programmatore che non è stato in grado di gestirla. La tentazione è infatti quella di mettersi a scrivere codice senza prima prendersi un po’ di tempo per fare progettazione. Il risultato? “Spaghetti code“, ovvero codice talmente intricato da diventare impossibile da mantenere. L’unico modo per evitare questa fine è imporsi un metodo e molta disciplina, magari utilizzando metodologie di sviluppo di tipo Agile.

Le metodologie che vanno sotto questo nome si basano sostanzialmente su quattro punti:

  • le persone e le interazioni sono più importanti dei processi e degli strumenti;
  • è più importante avere software funzionante che documentazione esaustiva;
  • instaurare un rapporto di collaborazione diretta con il cliente;
  • essere pronti al cambiamento;

Secondo Eddo Rotman (senior PHP engineer di Zend Technologie) le metodologie agile sarebbero perfette per i programmatori PHP, ed io non posso che essere d’accordo. Rispetto ad altre metodologie più “pesanti” infatti, consentono al programmatore di sfruttare al massimo la flessibilità e l’immediatezza del linguaggio senza il rischio di diventare un “cowboy del codice“. Grazie a poche e semplici regole il software prodotto sarà quindi più stabile e più facile da mantenere senza togliere ai programmatori impazienti la gioia di “sporcarsi le mani” con il codice in tempi brevi.

Va comunque tenuto presente che nessuna metodologia è in grado di garantire la produzione di software bug-free… come diceva Edsger W. Dijkstra:

Testing can only prove the presence of bugs, not their absence.


Post correlati:

  1. Python vs. PHP