Developing sustainable php projects

Preview:

Citation preview

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

Recommended