Developing sustainable projects with PHP
Michele Orselli CTO@Ideato @_orso_ mo@ideato.it Who am I?
developing web projects is hard a lot of web projects fail
Changing requirements Inconsistent demands Insufficient time or budget http://www.zdnet.com/blog/projectfailures/research-25-percent-of-web-projects-fail/665 a lot of web projects fail
can we develop in a sustainable way? a lot of web projects fail
light weight processes a lot of web projects fail
already heard about that?
this is NOT a talk about X where X IN (‘Agile’, ‘Lean’, ‘Scrum’, <insert buzzword>, ...) already heard about that?
don’t make assumptions how I (we?) develop soft ware
don’t make assumptions automate how I (we?) develop soft ware
don’t make assumptions automate communicate how I (we?) develop soft ware
don’t make assumptions automate communicate code is the easy part how I (we?) develop soft ware
Thank you! that’s all folks!
Documentation a better workflow
Documentation Sucks! a better workflow
User Stories FTW! a better workflow
AS <role> I WANT <do something> SO THAT <benefit> a better workflow
there’s no magic a better workflow
there’s no magic whole team a better workflow
there’s no magic whole team focus on value a better workflow
there’s no magic whole team focus on value comunication vs documentation a better workflow
no assumptions on what the client thinks a better workflow
prioritization & estimation a better workflow
no assumptions on what is valuable a better workflow
GDocs FTW! a better workflow
a better workflow
work in small batches a better workflow
work in small batches and iterate a better workflow
no assumptions on what the client wants a better workflow
visualize flow a better workflow
Trello FTW! a better workflow
a better workflow
release often a better workflow
“if you aren’t ashamed [...] you’ve released too late” a better workflow
no assumptions on what the user wants a better workflow
short cycles rapid releases iterate let’s do that in PHP!
from stories to tests let’s do that in PHP!
Behat let’s do that in PHP!
Behat
Behat
Behat
Behat
libraries libraries and frameworks
ASSETIC: asset management DOCTRINE: ORM TWIG: templating engine Sf2 components: HttpKernel, Console, Process, ... Zf2 components: Mvc, Db, Authentication, ... ... don’t reinvent the wheel
don’t reinvent the wheel
don’t reinvent the wheel
microframeworks libraries and frameworks
Silex libraries and frameworks
libraries and frameworks
full-stack frameworks libraries and frameworks
libraries and frameworks
libraries and frameworks
libraries and frameworks
testing
testing
no assumptions on the design testing
no regressions testing
Deploy deploy
putting it all together
continuous integration putting it all together
putting it all together: CI
wrap up Wrap up
PHP is good enough Wrap up
Code is the easy part Wrap up
Focus on value Wrap up
Visualize flow Wrap up
Automate Wrap up
Communicate Wrap up
Thank you! @_orso_ mo@ideato.it Pics Credits Plant: http://commons.wikimedia.org/wiki/File:L4C_small.png Capt Obvious: http://uncyclopedia.wikia.com/wiki/File:Captain-obvious.jpg that’s all folks!

Developing sustainable php projects