![Page 1: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/1.jpg)
The Three Things Any Software Development Organization Needs
And what to avoid like the plague
Jochen Frey
1
![Page 2: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/2.jpg)
Number One
2
![Page 3: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/3.jpg)
What if ...
... you could run a search engine designed for billions of documents on your laptop?
... try out new ranking & classification algorithms at runtime (and in production)?
... you could rebuild the complete dataset REALLY quickly?
3
![Page 4: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/4.jpg)
Then you could ...
... run lots of regression tests.
... use a symbolic debugger to find defects in your distributed system (and step fast).
... find out if spam filter V2 really is better than spam V1 (or upgrade as you go).
... add this new data field really easily to your content.
4
![Page 5: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/5.jpg)
Tight Development Loop
Iterating is good. Iterating fast is better!
We rarely hit the best solution in the first attempt.
This is really all about experimentation & transparency.
Have tools that allow for fast iteration over the whole (or parts of) the development process.
- Edit / Compile / Test complete system one machine.- Automated system deployment.- Deploy the SW infrastructure.- Deploy a whole environment (dev / stage / prod).- Execute a full regression test (automated).
5
![Page 6: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/6.jpg)
Tight Development Loop
Side Effects:- Make it possible to develop & test in the coffee shop
(or Mexico). - Easy to execute code for debugging- Refactoring with confidence- Bring new developers up to speed quick (because
they can make mistakes)- Repeatable & consistent- Happy Engineers!
Avoid like the Plague- The latest programming languages & tools- Non-versioned code & tools- Too much process (this is about experimentation)
6
![Page 7: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/7.jpg)
Number Two7
![Page 8: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/8.jpg)
What if ...
... you found a person who did spam detection at Yahoo ... even though you don’t have a running system, yet?
... you found a person who managed 2500 machines all by himself, when you don’t even have a colo?
8
![Page 9: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/9.jpg)
Gray Hair
Eventually your company and your system will have to grow up. Make it fast and painless.
Pick strategic roles- Scientists- Architects- QA- OPS- maybe even Managers (gasp!!)
Spend some money (and equity) on the right people- Interview thoroughly (make them write code)- Use your VC / advisors / network- Pay recruiters (if you must)
9
![Page 10: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/10.jpg)
Gray Hair
Avoid like the plague- Architects who don’t write production code (or
unit tests)- Ops guys who can’t hack a Linux box- Scientists who don’t code
10
![Page 11: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/11.jpg)
Gray Hair... and some baby fuzz
Keep the seniors alert with some fresh blood.
Hire some youngsters (specifically: Interns)- Give them meaningful work- Allow them to make mistakes (not too many & make sure they
learn from them)- Keep them if they’re good!
Have some regular engineers as well.
Avoid like the plague- Mandatory happy hour - Cool programming languages
11
![Page 12: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/12.jpg)
Number Three12
![Page 13: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/13.jpg)
What if ...
... your engineers didn’t have “root”?
... you weren’t allowed to install the latest Ruby gems on your staging box?
... you couldn’t fix problems in production?
(even though you’re in a startup)
13
![Page 14: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/14.jpg)
Ops / QA Nazi
You might be happier (and faster) with:
Consistent- Hardware (VM / machine configuration)- Server images- Releases- Testing procedures- Neat cabling!!!
Roles- Release manager- Tech Ops- QA
Must be senior enough to say “NO” (and make it stick).
14
![Page 15: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/15.jpg)
Ops / QA NaziFocus engineers by keeping them away from OS setup / QA processes / production configuration.
Someone who is responsible for the basic (as in: underlying) things and does them well.
- Backups- Monitoring- OS images
Specialized knowledge- Load balancers- IP routing- Security- EC2 scripting
As close to Engineering as possible (see “tight development loop”)
15
![Page 16: The 3 Things Every New Development Team Needs (and what to avoid like the plague) - Atlassian Starter Day 2010](https://reader033.vdocuments.site/reader033/viewer/2022051412/54976cdcac7959132e8b53c5/html5/thumbnails/16.jpg)
Ops / QA Nazi
Avoid like the plague:- Giving root access to developers.- Chasing the upgrade.- Outsourcing this function. The closer to engineering, the
better.- Engineers NOT wearing pagers.
16