Importance of extensibility in Software development

Importance of extensibility in Software development

Always there should be a plan when starting any thing to end it up in success. The same should be followed in the software development process too. And of course it is followed. But how many you guys are planning about the future requirements and improvement???

I have seen some guys who really codes well. Easily writes the logic for the solutions. But they never think of what if a new requirements comes in the future and how the solution should be designed for the future extendibility. Their goal and focus will be on completing the current requirement which will lead the outcome to be limited to add new requirements in future. Actually this should be done it the architect level itself.

Just think of a simple example. You are planning to build a single floor house. And you have given the contract to a construction company. They have prepared the plan and started to build the house without thinking about the future extensions. Now the house is completed. You are happy now. But later after few years you want to build another floor on top of it. But the house built does not supports the new feature. Now there is only one way demolishing the existing house and building a new house with two floors. Just think of the cost and time took to add the new feature to it. Will you prefer the company which build the house earlier for you?

The sample criteria will suits the Software industry too. When you want to make many changes to the existing system to add the new features that means you have not build the product in efficient way. The cost of adding new feature will go high. This brings the lost for the both side, you as well as the customers. This might be a threatening to the good relationship between you and the customer. And also you have spend more time and resources in building the new features.

"Prevention is better than Cure" suits the Software Industry. Thinking about the extensibility instead of worrying later is better

Before starting the development think in you about the extensibility.

For examples :

  • What is the main goal of the customer? What are the features needed in future to develop the customer's business not in the current requirement?
  • What if the customer prefers migrating the product to new technology? (like migrating to cloud environments)

The central theme of extensibility is to provide for change while minimizing impact to existing system functions.

The extensibility of the system can be achieved By Implementing A strongly Designed system with the best design patterns suited for the job.




要查看或添加评论,请登录

Yogarajah Vithushan的更多文章

社区洞察

其他会员也浏览了