Every solution we develop has a beginning and an end. During the time we are creating your solution, we will move through various stages that define what we are doing and your role in that process.
There are two classic and proven project step progressions: linear and extreme. Linear is the classic discovery to design to development to testing to support model. Extreme is a more interactive and iterative process. We’ve blended the two and lean on whatever method best suits the situation and your working style.
Linear progression stages occur one after the other. This model requires more attention to the discovery and design stages in order to minimize rework in the development and testing stages. A robust set of use cases helps to mitigate such risks.
At the start of any effort, the current process is explored, assessed, and bounded. It is important to fully understand the steps that are causing an extraordinary amount of time to complete or increasing the propensity for erroneous results. Equally important is understating the user’s cognitive model of the data and the process of working with that data. The overall objective of this stage is to develop a clear and descriptive target goal that resolves the known pain points and optimizes the user’s experience. This is also the time to define and bound the project scope to ensure a clear path to a successful conclusion. This stage culminates in a project scope document including time estimates.
This stage takes what was learned in the discovery stage and, with additional analysis of the internal processing and user experience, a design is created documenting the user interface, the internal data storage, and the process architecture. At the start of this stage and if not already done as part of the discovery stage, multiple use cases are documented. A use case is an example scenario the final solution will face—it defines whatever is necessary to perform the application’s part of working that scenario. As the design develops, it is important to revisit the use cases to ensure that they are still accommodated by the evolving design.
This is where the rubber meets the road. Where we put code to work and leverage our years of experience, network of expert developers, extensive pre-existing code libraries, and powerful code generators. Our overall goal during this stage is to produce quality code that is well-documented and easily maintained. Not to mention fast and sporting as lean a footprint as we can muster. It isn’t always easy and challenges happen—but we’ve never met a challenge we couldn’t handle at the end of the day. And, if getting there requires a few trips to the library, that’s on us.
We perform numerous unit and limited integration tests well before you see the results. But we also rely on you, your team, and your end users to help us with this stage. It’s imperative that we push all the buttons, pull all the levers, and cram as much junk data into the work in progress as possible while we are in the thick of it and reworking code is easy. We would rather fix everything now versus getting a call a year from now.
But, if something comes up that slipped by us and the testers, we’re definitely not going to leave you high and dry. We guarantee all of our work for as long as you use our solutions and will fix anything without charge as long as the work is within the original project scope and isn’t a result of an unpredictable change in Excel functionality as new releases are produced. You have our word.
Extreme development or programming takes the above stages and iterates through them repeatedly and quickly, with the emphasis shifting to a cycle of designing, developing, and testing as the solution develops and matures. The advantage to this method is that feedback is possible earlier earlier in the process which, if executed smartly, leads to a solution more optimized to the nuances of the process being automated. Most of our projects lean heavily on an extreme progression.