1. How do we do it?
Peter Samoilov, aheadWorks Co.
2. What’s difference?
Extension is a small codepiece...
...but you have A LOT. Or will have.
(at least we have ~70+)
...and each needs to be updated permanently
You have to do something about that
3. Must-have dev tools
Version control. Mercurial or Git.
Debug tools. XDebug, Firebug, etc.
Good IDE. Netbeans, Phpstorm, Eclipse
4. Docs
protects you from general anarchy
makes new product robust and clear
shares knowledge within your team
5. You spend about 25% of time on docs...
But it saves dozens of hours later!
It gives you speed
w/o docs
with docs
0 10 20 30 40
Exts per year
6. F@#$, we REALLY forgot this!
Damn, seems it’s really has design problems...
Rename this labels, change order here. Add column
«order ID» here
etc, etc, etc
It gives you speed
80% of time project is 80% ready
7. Start from initial request
It must be as short as possible
It must describe key functionality
And no tech here!
8. Add some tech docs
FOA describe business logic
Depict data structures
Add interfaces if needed
Create test plan
And you ready to go!
9. Type less. Prefer drawings and schemes
Compact as possible.
Share it to your team before the first line of code
General things about docs
10. Automate it!
Automate Magento installation
Developer: 1.4, 1.7, 1.12, 1.13
QA: 1.4, 1.5, 1.6, 1.7, 1.11, 1.12, 1.13
Use a set of your own sample datas
14. CI
Check silly things: version in xml, formatting, etc.
Merge documentation in package
Create missing templates for Magento EE
Add license to files
Deploy ready packages to your production
Run Unit/Functional automatic tests
16. Slowdown everything
Move quality assurance into separate process
Start developing before specification is complete
Keep your code in a secret. It’s perfect!
PHP is all what you need