Decision making is not so trivial in software development. We follow a systematic approach for decision making in our software development environment that helps in fast decision making. Even though decision making can not be automated, but helps a lot to make a decision or justify a decision.
In Enterprise Software development, it is required to deal with alternatives and trade-offs in every stage of the development. We need to choose the best alternative by keeping the current situation and future direction in mind to achieve customer satisfaction.
- If we don’t make proper decisions about the usability of the product, it builds dissatisfaction about the product for customers.
- If we don’t make decisions in proper time, it may add significant delay and additional cost to the project execution. Some times we may loose important customers also.
If we don’t make decisions by keeping the future direction of the product in mind, it may leads to major redesign and some times scraping the existing code.
Making all the decisions about all stages of the project before hand is practically impossible. It can be due to changing requirements or awareness about the more alternatives during the course of development. Some times some decisions deferred in one stage of the software development may become significant during the next stage and these decisions may have bubble impact on previous stages. The difficulty in decision making is more visible in distributed teams than a single team working in one geographical location due to the limited communication among the team.
In Innominds, we follow a systematic approach to handle any trade-off by analyzing the solution in three dimensions.
Dimension #1: Usability
Usability of a software solution is very important, to reach the customer satisfaction. We need to target for the solution that gives the best usability for the product
Dimension #2: Scalability
While choosing an alternative we need to analyze weather the solution is scalable or not when the size of the problem increases. If we don’t consider the realistic scalability requirements, product may pass the quality check in our lab environments but it may fail at very first customer.
Dimension #3: Time-To-Market
Time-To-Market is very important for any software product. To meet the time requirements it is acceptable to sacrifice the scalability aspect, but it is not recommended to sacrifice usability.