Engage ― You call us with a business problem that requires a software solution.
We will immediately assign your project to one of our lead consultants as your point of contact. Based on our initial understanding of your problem, she will bring in the appropriate business SME or technical lead to work with her on the initial phases of your project. An initial meeting will be scheduled, and we may request any documentation you already have.
Discover ― We meet with you to understand the problem you are trying to solve.
At our initial meetings, we will work with your team to begin documenting the high-level requirements of your project. We will begin to discuss your ideas as to how you want your team to be involved in the project with ours. We will also discuss the technology stack and our Agile software development methodology. We are flexible about both.
Scope ― Together, we decide on the scope of the development project, including all the deliverables.
We want to scope your project immediately after discovery so that we can turn around an estimate and an SOW as quickly as possible. The scope will include a high-level roadmap, schedule and proposed development team. Because we use an Agile development methodology, the scope can easily be changed and reprioritized at the beginning of each development sprint.
Build ― We build a team, including its management, to develop the software solution appropriate for your business problem.
After deciding on the project scope and the schedule, we will build a team comprising the following roles: product owner, scrum master, developers and testers. We will also provide management oversight to guarantee that your software will be delivered on time, at the highest possible quality. At your request, we may also integrate members of your staff with our development team.
Develop ― We carry out a series of rapid-development sprints to quickly develop a solution for your problem with an emphasis on high quality.
With the scope decided and a team in place, we develop in two week sprints or iterations. You will receive working software at the end of each sprint. You will be in control of approving or not approving the delivered functionality. Any changes or additions will be incorporated into the next development sprint and reprioritized with the rest of the upcoming development tasks.
Implement ― We work with your team to implement the solution and support end-user testing.
As each development sprint is delivered, you will have access to the software in a UAT environment for ongoing end-user testing. Because each sprint builds upon the last, and the whole is a working system, by the time the last sprint is delivered and the final UAT is complete, you will have a system ready to implement into production.
Support ― We support your team and the software implementation period during the transition phase and through the first production cycles.
Every custom software development project is unique. It may require a set of tasks, such as a transition from a legacy system, data migration with ETL processes, etc. We will support you through this transition to the new system and work with you to complete these tasks in the most timely manner possible. The development infrastructure will stay in place, so we can continue ongoing development if needed.
Maintain ― At your option, we will continue to support and maintain the software into the future, continuing to work with your team.
We offer the option to undertake a program of ongoing maintenance and development of your system. We will set up a retainer agreement and keep a subset of our team in place for ongoing maintenance and support. This is a good option for a system that will require periodic updates and enhancements. It’s also a good option for you if you do not have the staff to maintain and support the system.