« Back to blog

Ready Made v Ground Up

Now this is a debate ragging in my head for quite some time now. I just completed a project for my college's website. The website was built using Drupal. We are now looking for a fully functional website for the college alumni. And there again, we are looking at Ning as a platform. Drupal wass used by a group of students to build a website. They did not have the time to build the whole thing from scratch. Why? Because they were busy with their projects and assignments. When it came to working professionals building a similar website, time became even more of a luxury than before and we moved towards a more ready made platform. And in all this i am not even talking about the time spent in developing the product. But like all software pros, i am talking about the time spent in testing it, making it bullet proof and then maintaining it. Now, this entails a lot of time. When you come to think of it, if and when someone starts paying you for something like this, it becomes a full time job. But then again, that is a big "if". At the same time, while working as a software pro, i realise the power that custom built software has. The flexibility that it has to offer is too much. You can change anything to anything. It gives you the power to do what ever it is that you want to with a website. Having said that, it requires time. Time which we do not have. So, have we finally come to a point where we are ready to be dependent on someone else all-together for our software solutions? I doubt it. We are still pretty much the same when it comes to wanting something: when and if we want it, we get it. So this is the real challenge in front of us today. We are at a point where we do not have the time to achieve the world, and we are also not ready to settle for anything less than that. And this is the most fundamental challenge we will face in the coming years and this issue or problem or what ever it maybe, will only compound and we have the information growth rate to thank for that. Software solutions from now on can not be addressing specific problems anymore. What does that mean? It means that we cannot restrict ourselves to a set of demands or requirements. While the work domain by itself may hardly change, the dynamics and needs will, and beyond changing, they will grow! This is where i have to divert a little and point out that the very purpose of requirement analysis from now on is not understand the requirements of the business that we are going to serve as software engineers, rather it is to preempt for ourselves, so that we can avoid changing the systems and code (which we provide as products), as far as possible. This brings me to another point about custom made software. You do not want to change it too much. It is true. When you write a piece of code, you do not want to keep modifying it too much. You would rather get it right the first time and be done with it. So in a very basic sense, the very purpose of the custom code is defeated. After all, what is the whole point of have custom software when you cannot, or would not like to bring in any change in it? So i guess all you need is to tweak existing systems. That suffices it seems. So there in lies the trick and the solution. I think there is not point writing software anymore. It is time to start writing meta software. Makes sense?