7. 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
11. 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
12. Release code ownership
Have others run your work without you
Don’t invest yourself in the code
Make code accessible to someone else
14. IDE
Choose it for ease of use
Netbean / Symfony, Zend tools, Komodo / cakePHP
Code browser, editor, debugger, unit test integration,
VCS integration, framework integration.
15.
16. Frameworks
Choose one, for development speed
Components, conventions, scaffolding, tests
Community, expertise, training
Build a business layer
17. VCS
Subversion, git, CVS, bazaar
Resolve conflicts
Allow versioning, paralell development, rollback
Stores and distribute the code
Code not in VCS does not exists
18. VCS Development
Unit Test Production
VCS
Continuous
Bug Track
integration
20. Capitalization
Accumulate all phases of project
Capture information along the way
Avoid dead ends
Think of who will reuse this
21. Unit Tests
PHP Unit, Simple Test, Lemon, Zend_Test, phpt
22. Tests helps decouple
Production
Avoid regression
Code Platform
Prevent your recall
Shows progress
Serves as manual
Help at communication
Customer
use
23. 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
24. Automated deployment
Phing, maven, ant, pear
Needed for continuous integration
The forgotten part of development
Compulsory for large plat-forms, high scaling
26. 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
27. Bug tracker
Mantis, Trac, Redline, Jira
Connect it to VCS, deployment
Gather feedback from users without direct contact
Goes into changelog when deploying
28. Bug tracker
Mantis, Trac, Redline, Jira
Connect it to VCS, deployment
Gather feedback from users without direct contact
Goes into changelog when deploying
29. 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
36. 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
37. 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