Every development project brings its own unique intricacies and challenges. The Two Fish Software team has taken enough ideas from concept to production to anticipate and mitigate risk—this results in delivering quality results on-time and within budget!
Our signature design process was built to increase customer involvement throughout the development process. Closer interaction with our customers leads to higher satisfaction and a noticeably better product.
This process starts with a requirements-gathering meeting, where the customer discusses their needs and how the product will interact with existing processes and systems. At this time, our goal is to understand as much as possible about the customer needs and to develop a vision of what the product could be.
Out of the requirements-gathering meeting, a design specification is completed. This document describes, in detail, each of the product’s features and how they are to be implemented. This exercise allows us to avoid surprises by identifying missing functionality and create a better schedule and action plan for the development. This specification typically includes the following kinds of information:
- Customer requirements, example use cases and limitations of functionality
- High-level design diagrams, showing product’s integration with its environment
- Wireframe diagrams of critical sections of the user interface
- External interface definitions, including electrical and communication protocols
- Control flow diagrams, showing operational flow of each software loop
- Complete list of detailed requirements
- Verification procedures
- Schedule and budget
After the design specification is completed, including having any wrinkles ironed out, the customer will agree to the schedule and budget, allowing the prototype phase to begin. The goal of the prototype phase is twofold: to mitigate as much risk as early as possible and to get a working prototype into the customer’s hands.
When a customer can touch and feel a product, they are best equipped to evaluate its fit for their needs. In some instances, after review of the prototype with the customer, new features or design changes may be identified. This may lead to updates of the design specification, schedule and budget, and a short revisit of the prototype phase.
After approval of the prototype, development of a production-ready system begins. At this point, design changes are rare. Delivery dates are locked down and development accelerates toward completion. Depending on the complexity of the project, and if the project lends itself to iterative design, we will continue to involve the customer in the development process as best we can. This includes providing early access to beta software and product demos.
The development phase finishes as all deliverables (including electronics, software and user documentation) are completed. The verification phase follows and includes thorough testing and verification.
The project is completed when all deliverables are in the customer’s hands and users are trained on how to use the product.