How much crap you are keeping because “You might need it in future”?
I am planning to move to a new house in a couple of weeks, so I started packing things and throwing away unnecessary stuff.
In the process of identifying unnecessary stuff I realized how much crap I am keeping in my house thinking it might be required in future.
But I only came to know that I have these things while looking for waste to throw away. Lots of stuff..CDs/DVDs with JDK1.4/1.5, Eclipse 3.2, Spring 2.5.zip, MySQL4.x, WebLogic Server 10, Utilities(AVG 2007, MS OFFICE 2003, Winamp/VLC players), broken DVD Writer and HardDrive and lots of clothes which I can’t wear anymore, many other electronic goods which are not working and many more.
While cleaning up all these things and throwing away all unnecessary things I got a thought like “Aren’t we doing the same mistake while developing software?”.
First we keep adding unnecessary features assuming we might need them in future to support all types of *bilities(Scalability, Extendability,Maintainability etc). After a while “That future purpose features” becomes a “Dark Room” where no one knows what exactly in there and many people don’t even bother to know why it is there in the first place.
Even horrible thing is you might be in a situation where “whenever you add some new required feature you might have to add some code/configuration in that future purpose module as well”. You don’t know why you have to do it or you have to do it just because to pass the build.
Moving to a new place quickly is painful when you have unnecessary luggage. Being Agile is very difficult if you have unnecessary future purpose code about what you forgot a long time ago.
Less luggage, more comfort. Applies both to personal life and Software Development as well 🙂