Let’s start with an analogy to get a better understanding of what goes into having a custom software solution developed. Imagine you are having a custom home made for you and your family. There are 100s of decisions to be made, from the location to build on to the final decoration completing the home. To ensure the home is the exact home that you want, with the exact layout, interior design, and a stable & long-lasting structure, meetings, designs, and redesigns need to be had. Through the planning and construction of the home, changes are able to be made but they all take time and more material to be done. For example, repainting a wall is easy, moving a non-load bearing wall isn’t too hard, deciding you want a different floor after the floor has been laid that takes a ton of time and material. Additionally, the progression of the home will be delayed because other parts of the home rely on the floor being done to complete those tasks. Now imagine asking to have a functioning kitchen or bathroom moved to another part of the home. To move it it’s going to take a ton of time, material and reworking of the entire home. We can continue with examples, but you should get the idea of how much a change takes.
So Back To The Beginning: What Is Discovery?
Discovery in terms of software development is a process with the goal of collecting the exact requirements for an application to be developed. This entails, most importantly, the business requirements, then every step a user will have through their experience from the login to completion of using the app, the design of the full application and developing of written out Business Requirement Document(BRD). The BRD can be looked at as the full plan, it stands alongside the contract as the agreement that what the BRD states what will be developed
Why Do I Need Discovery?
To not have to deal with this pesky word, CHANGE CONTROL. What is a change control you ask? It is having anything in the application changed; it takes more time to make the change and when being charged hourly you are paying more. Sometimes, as in the analogy above, it’s as simple as repainting a wall or moving a non-load bearing wall, an hour here or there that is something that isn’t substantial enough for you to have to pay more to have it fixed. But what if you want to change how a process operates? That is like moving the bathroom or kitchen to another part of the home and having to relay all the pipes and plumbing.
By having discovery, we are able to take the time to think in detail and work out all the steps in the process that the application will do. Many times when a full discovery is skipped, we see when the operational staff begins interacting with the application, they always have changes that need to be made that the Business Leader overlooked. Discovery allows us to hinder the chance of that happening.
Will It Save Me Time And Money?
Yes. Yes. Yes. Did I say Yes? It’s surprising how much money and time will be saved by having discovery. The 10 to 30 hours of discovery + design time, that we have will allow for many of discussions to be had, problems to be thought about rather than making a quick decision, detailed business requirements to be made, detailed Server Architecture to be made, and get a complete design of the application. We are able to make tons of changes at this point because nothing has begun to be developed causing no additional time or materials. Even if you have a tight deadline, the extra time to take for discovery will help you hit that deadline or adjust it by all parties having the proper information.
Why Do We Recommend Discovery?
We want to save you money! SHOCKING RIGHT?!? No, it really is not surprising. Our business has grown year over year by the continual support of our clients referring us business! Sure, any change you want in your software we can make that happen. However, we don’t want you to have to pay twice especially when it’s something we could have discussed and solved before developing.
Discovery is there to protect you, it ensures you will get exactly what you want, it will help you keep from making additional changes, and it will allow the development team to have the best possible understanding over everything that needs to happen!
So, when in doubt, have DISCOVERY!
For more information, check out these posts: