April 2, 2006
Mortgage-driven Development
From time to time I come across people who seem hellbent on making things as complicated as possible. It's no secret that I'm a fan of Test-driven Development, and have adapted the basic principles so they can be applied to metrics and process improvement.I love the idea of setting testable goals, and then doing only what you need to do to satisfy the goal.
Do the simplest thing that could possibly work
So you can probably imagine how frustrated I get working with people whose mantra appears to be:
Make the biggest mountain you can out of any molehill
Spring is here in the UK, and last week I was enjoying a coffee by the canal in Camden Town with my erstwhile brother Antony.
Anyhoo, we were bemoaning those people who make things as complicated as possible, and it suddenly hit me like a bolt through the brain - what if these people really are doing the simplest thing that could possibly work, only their goals are not what we think they are?
If you want to deliver working software in a timely and economical manner, for example, then hiring dozens of inexperienced "cheap" developers makes no sense. It'll take them much longer to deliver and the software will be crappy, full of bugs and will need an even bigger team to maintain it after the first - almost certainly very late - release, and it'll cost many times more to boot.
Like I said, if your goal was a successful project, then this strategy would make no sense. But what if your goal was to pay off your mortgage? The longer it is before you're not needed any more, the more payments you can make. All of a sudden, the strategy makes perfect sense. It's a simple way of paying off your mortgage by stretching projects out and making yourself indispensable for as long as possible. You might even be earning a cut for every team member (that's what we call "advanced Mortgage-driven Development").
They're not as stupid as they look, y'know...
(Next time I'll talk about Mortgage-driven Architecture)
Posted 16 years, 1 month ago on April 2, 2006
Navigation
Blogs I Read
Sections
Third-Generation Testing
Agile Development
Apes With Hobbies
Application Lifecycle Management
Apprenticeships
Architecture
Back To Basics
Bletchley Park
Boffoonery!
Books
Codemanship
Code Smells
Complexity
Continuous Inspection
Education
Events
In The News
Innovation
Legacy Code
Metrics
Microservices
Multithreading
Music By Programmers
Site News
Nonlinear Management
Podcast
Post-Agile
Products
Professionalism
Reality-driven Development
Refactoring
Reliable Software
Requirements
Small Teams
Software Craftsmanship
Software Process Improvement
Test-driven Development
UML
User Experience Design
Agile Development
Apes With Hobbies
Application Lifecycle Management
Apprenticeships
Architecture
Back To Basics
Bletchley Park
Boffoonery!
Books
Codemanship
Code Smells
Complexity
Continuous Inspection
Education
Events
In The News
Innovation
Legacy Code
Metrics
Microservices
Multithreading
Music By Programmers
Site News
Nonlinear Management
Podcast
Post-Agile
Products
Professionalism
Reality-driven Development
Refactoring
Reliable Software
Requirements
Small Teams
Software Craftsmanship
Software Process Improvement
Test-driven Development
UML
User Experience Design
Props: