Post on 08-May-2015
Developing sustainable projectswith PHP
Who am I?
Michele Orselli
CTO@Ideato @_orso_mo@ideato.it
a lot of web projects fail
developing web projects is hard
a lot of web projects fail
Changing requirementsInconsistent demandsInsufficient time or budgethttp://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
lightweight processes
already heard about that?
already heard about that?
this is NOT a talk about X where X IN (‘Agile’, ‘Lean’, ‘Scrum’, <insert buzzword>, ...)
how I (we?) develop software
don’t make assumptions
how I (we?) develop software
don’t make assumptionsautomate
how I (we?) develop software
don’t make assumptionsautomate
communicate
how I (we?) develop software
don’t make assumptionsautomate
communicatecode is the easy part
that’s all folks!
Thank you!
a better workflow
Documentation
a better workflow
DocumentationSucks!
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 magicwhole team
a better workflow
there’s no magicwhole team
focus on value
a better workflow
there’s no magicwhole team
focus on valuecomunication vs documentation
a better workflow
no assumptions on what the client thinks
a better workflow
prioritization &
estimation
a better workflow
no assumptionson what is valuable
a better workflow
GDocs FTW!
a better workflow
a better workflow
work in small batches
a better workflow
work in small batchesand 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
let’s do that in PHP!
short cyclesrapid releases
iterate
let’s do that in PHP!
from stories to tests
let’s do that in PHP!
Behat
Behat
Behat
Behat
Behat
libraries and frameworks
libraries
don’t reinvent the wheel
ASSETIC: asset managementDOCTRINE: ORMTWIG: templating engine
Sf2 components: HttpKernel, Console, Process, ...Zf2 components: Mvc, Db, Authentication, ......
don’t reinvent the wheel
don’t reinvent the wheel
libraries and frameworks
microframeworks
libraries and frameworks
Silex
libraries and frameworks
libraries and frameworks
full-stack frameworks
libraries and frameworks
libraries and frameworks
libraries and frameworks
testing
testing
testing
no assumptions on the design
testing
no regressions
deploy
Deploy
putting it all together
putting it all together
continuous integration
putting it all together: CI
Wrap up
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
that’s all folks!
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