How do we as a software development company ensure that our software will be successful as defined above?
- We make sure that software (virtual environment) matches the real environment as much as possible. The software process must match the real world conditions as closely as possible. The software process should not just match an ideal workflow, it should match the actual workflow. This provides a clear path for improvement.
- We work directly with the people that will use the software. The software users effectively become software designers. They are much more likely to support and use the software if they are involved in the design. It virtually guarantees success.
- We either learn everything possible about the business process the software will support, or ideally, we participate in the design of the business process itself.
- We keep the software as simple as possible, excluding all features that are not completely necessary.
- We add features and functionality at the pull of the customer. By customer I am referring to the entire user base that will be using the software, not just a customer champion. It is very important that the majority of the users are ready and requesting new functionality to get the maximum benefit. Unnecessary features and functionality is wasteful. It takes valuable time (to the developer) to create, maintain, and test features that are not immediately useful. It adds unnecessary complication for the user when they are presented with more functionality than they need. It just slows the learning curve. Our typical customers use about 85-95% of the features that are present in our software. That is an exceptionally high percentage when compared to typical off-the-shelf software.