Make sure your software project sucks: 10 tips for failure

Does software development have to be difficult? In my experience the answer is usually yes – only one of the places I have worked had a development process that worked well.

Software engineering is quite a young discipline and we’re still learning how to best do it.

We have different models like Waterfall, V Model and Agile – and then we have the great anti-model: cowboy coding. Waterfall, V and Agile all have their strengths and weaknesses, they can all be put to good use on the right project with the right team.

Regardless of which model you use there are some sure fire ways to make sure your software project is as difficult and painful as possible for everyone:

  • Don’t use source control – All those branches and tags are just meaningless. What’s wrong with a shared directory anyway?
  • Ain’t got time to unit test – Unit testing is just something you do at the end of a coding task if, and only if, you’ve got time. We’ve got a test team who test our software anyway.
  • Don’t specify – The people defining what the software must do don’t have time to write anything down or talk the coders through the details – people should know what they want.
  • Don’t design – Diagrams and design documents are for n00bs. Just get on with the code, things’ll get done quicker that way.
  • We’re all individuals – Don’t let your programmers waste time telling their peers what they are working on or asking for their advice or ideas. They have their own work to do. You don’t have time to share.
  • Users know nothing – The users don’t know what they want. Never ask them. The programmers know best.
  • Test team just pick faults – The test team are evil. Do not trust them. They spend their life picking faults in your code and they love it, love it.
  • Pick a ship date – Pluck a go-live date out of your ass and let your team know. Stick to it and never ever move it, no matter what happens. Do not ask the team for their work estimates – they are always wrong.
  • Re-invent the wheel – Don’t use open-source or any other solution on the market for your project – you need to write everything from scratch to make sure it’s yours.
  • Don’t use Java – It is slow and it sucks.

Leave a Reply