The biggest factor in the success of a custom application development effort is a clear understanding of the project, shared between the development team and the customer.
This means having a complete and on-going understanding of the goals of the application and how it will support the customer’s needs. There are typically many options for how to achieve customer’s goals with an application. Through excellent communication, you can determine the best approach to deliver a great application, while collaborating to avoid problems and agree on variables that can impact cost and schedule. We have defined a process within our application development lifecycle to ensure this shared understanding and initiate a healthy partnership between our team and the customer. This process is called Discovery.
The Discovery Process
The discovery process is the initial stage of a custom development effort. It is a critical step for our technical staff, as they will need the information gathered to make informed technical recommendations for the development effort and to prepare an accurate cost estimate. Discovery aligns our team with the customer’s needs at the outset.
The activities and deliverables of project Discovery are integral to accuracy of project estimation and planning, and we recommend that they always be completed for complex custom applications with unknown and variable technical components.
Project Team for Custom Application Discovery
The membership of a Discovery effort can vary, however, our typically includes a Project Manager, a Business Analyst, and a Technical Lead. We also ask that our customers provide one primary point of contact; however, we encourage participation from as many customer stakeholders as necessary.
We understand that our customers have busy schedules, but also realize that limited or inconsistent customer participation will almost always result in project delays, missed requirements, and an unsatisfactory result.
Requirements and Goals Identification
The identification component of the IAR is driven by high-level customer input coupled with previous experience with similar projects. During identification, we conduct customer interviews about their goals and needs and review any existing documentation or artifacts relevant to the project. The information captured in this step is documented and shared with project stakeholders in preparation for the Analysis task.
Solution Definition and Analysis
Once our findings are documented, we review key aspects and provide critical functional and technical analysis. We perform a “deep-dive” to understand the interrelationships between proposed elements and define options based on our technical experience. During Analysis, we develop an objective vision of project components to support a technical solution.
Multiple options may arise from Analysis based on cost, time to implement, and other factors. We provide recommendations based on customer-defined criticality of function and priority. Recommendations can also identify areas for future enhancements.
Typical Discovery Process Deliverables
The specific deliverables for the Discovery phase vary by project, but are agreed upon by us and the customer before the project kick-off. Typical items include a high level functional requirements document, a project plan, and a cost proposal for complete system development.
High-Level Functional Requirements Document
This captures the high-level details of the project, to include: project vision and scope, user functionality, and basic user stories or detail for expected user tasks. It provides the initial project planning that we (or another vendor) need to conduct. It is essentially part of a standard software development effort.
Through the Discovery effort, we will be able to gain a clear understanding of the complexity and difficulty of designing and developing the custom application, and will be able to present a detailed project plan, to include preliminary timelines for delivery and milestone dates.
Cost Proposal for Complete System Development
At the completion of the Discovery phase, we should have all the necessary information to provide the customer with an accurate cost proposal for the design and development of the application. By investing the time in the Discovery phase, we minimize project risks associated with cost and schedule overruns.
Our Discovery Process is our best practice for the initiation of a custom application development project. It pulls critical and necessary steps from the software development lifecycle into a focused period that resolves uncertainty and establishes the kind of partnership between our development team and the customer that we feel is critical to the success of any project.