So it takes an article about the clusterfuck that has become Apple's MobileMe service to get me to write a blog post again. Specifically the part about testing caught my eye as that's what I do for a living - software testing.
Developers do testing, load testing and infrastructure planning, all of which is implemented by someone else.
That is astounding to me. Unless you're a startup with <10 people, there is no excuse for your developers to be doing your functional and load testing.
- They don't have the time. Developers are busy people and they have lots of code to write. They do not have the time to run a full suite of functional tests on areas of the product effected by the code they have written. It just can't happen. Developers can (and SHOULD!) do unit testing on the bits of code they are working on before deliveries and the like.
- Most developers will not have a higher level view of the product and the areas that need tested. Most developers will default to unit tests like mentioned above and maybe a few other tests. But nothing comprehensive. This also means that the test planning phase that should be happening during requirements gathering is either not happening at all, or is probably pretty meager.
- Without a dedicated QA team, who knows how much duplication of testing effort is going on among the developers?
- Developers will not have the hardware to run scaled, heavy load tests.
- In no testing model is this recommended. The waterfall model has a QA department doing wide ranges of tests from prototyping stage all the way to release and beyond. Even in Agile Programming, you have a small number of testers on your agile team dedicated to testing (testers that can work with the testers on other agile teams to coordinate effort if needed)
I'm pretty much blown away that a company like Apple would let a development process like this happen on a product that is apparently very important to them. This isn't some startup working out of a a tiny office with 4 developers and a sales guy. This is freaking APPLE.