6 comments

[ 3.4 ms ] story [ 11.9 ms ] thread
Easy, straightforward advice on running a project the agile way.
Is there a specific order that I can apply these techniques?
I have to disagree with this.

Agile is a great way to manage the project management for a startup but a dreadful way to manage the software development. Pair programming doubles cost with questionable and unproven gain in productivity (definitely not 2x). TDD is a nice idea in theory but you double development time with questionable ROI. Also startups need to be continuously evaluating and improving user experience. This doesn't happen so well with TDD.

If startups are developing at the same pace as large corporations (or slower) then they are conceding their biggest advantage. So I would leave the pair programming and TDD until you are no longer a startup.

taligent: spoken like a true suit.
I don't think skipping TDD is a good idea for a startup. The problem is that initial codebase is a spike, and then you iterate on it with no tests. Your idea then becomes popular and that spike lives on. There's no time for a re-write. Now you're developing on eggshells without the safety net of an automated test suite.
Pair programming is kind of team-by-team... ie: not every team is able to reap its rewards. So I understand if you've not had success with it. But I have worked on dozens of projects pairing, and I have seen the productivity gain. And that doesn't take in to account the gain is code quality or the developer training/learning that takes place.

As for TDD... if you think that testing doubles development effort then you're not doing it right, or more likely you've never done it at all. Ditto about TDD being incompatible with improving UX. That's just not true.