8. Reality check
65 portals next 6 months
6 people to upgrade 350 intranet
120 events sites a year on 150 servers
App on one city, cover 12 cities by xmas,
expand to 2 countries next year.
full time employee for deployements
12. Release code ownership
Low bus factor
Don’t be the only one
Ugly code and hacks
Write code like everyone else
50% of dev time is spend on production actions
Don’t be in the path of operations
13. Release code ownership
Have others run your work without you
Don’t invest yourself in the code
Make code accessible to someone else
15. IDE
Choose it for ease of use
Netbean / Symfony, Zend tools, Komodo / cakePHP
Code browser, editor, debugger, unit test integration,
VCS integration, framework integration.
16.
17. Frameworks
Choose one, for development speed
Components, conventions, scaffolding, tests
Community, expertise, training
Build a business layer
18. VCS
Subversion, git, CVS, bazaar
Resolve conflicts
Allow versioning, paralell development, rollback
Stores and distribute the code
Code not in VCS does not exists
19. VCS Development
Unit Test Production
VCS
Continuous
Bug Track
integration
20. Recommanded sessions
Solar : the best framework you’ve never heard of
myphp-buster : Zend Framework
Entity Framework : que du bonheur
22. Capitalization
Accumulate all phases of project
Capture information along the way
Avoid dead ends
Think of who will reuse this
23. Unit Tests
PHP Unit, Simple Test, Lemon, Zend_Test, phpt
24. Tests helps decouple
Production
Avoid regression
Code Platform
Prevent your recall
Shows progress
Serves as manual
Help at communication
Customer
use
25. Conception
Class diagram, database schema, navigation
Describe the general organisation
List everything that will need name
Class, methods, constants, SESSION, includes...
Check the result in the code (BOUML)
ArgoUML, StarUML, PowerArchitect
26. Automated deployment
Phing, maven, ant, pear
Needed for continuous integration
The forgotten part of development
Compulsory for large plat-forms, high scaling
27. Recommanded sessions
Recetter avec Cucumber and Pyccuracy
Gestion d’incidents pour les développeurs
Getting started with PHPUnit
Le packaging avec Python
29. User involvment
Avoid tunnel effect
Don’t confront the tidal wave of requests
bugs, changes, new, adaptation, acceleration
Have users do part of the work
30. Bug tracker
Mantis, Trac, Redline, Jira
Connect it to VCS, deployment
Gather feedback from users without direct contact
Goes into changelog when deploying
31. Bug tracker
Mantis, Trac, Redline, Jira
Connect it to VCS, deployment
Gather feedback from users without direct contact
Goes into changelog when deploying
32. Functional testing
Green pepper, fitnesse
Wiki base : easy on non-technical users
Gather business data and use case
Tests a priori, test live
Developper will do the connection into the code
39. Continuous integration
Check the code in back ground
phpUnderControl, Hudson, Maven, sonar, Xinc
Graphs the results
Compilation, code sniffer, unit tests, coverage
Log, inclusion, performances...
Share with the team, users
40. Methodologies
Explain how you produce code
Get your users involved
Make short cycles to deliver, adapt and polish
Agile methodologies :
SCRUM, XP, Lean SD, Open Unified Process
Agile practices may be sufficient