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