comminus services
Our software development process is a hybrid between that taught by the Project Management Institute and those commonly referred to as Agile Development.
We begin projects with a Foundation Phase, in which we work with you to flesh out requirements and create user-interface mockups. We then develop your system over a series of incremental stages, each one demonstrating new, tested features, finishing with a full release.
Perfect software delivered too late or at too high a cost is a failed project. Budget and schedule are every bit as important as features in defining requirements
Likewise, there’s often a lot that is undefined when a software project begins. It can be simple things like whether buttons need to be red or blue, or complex issues like needing to define the API two systems will use to integrate. It’s impossible to know everything before beginning the effort to invent a new business solution.
There are uncertainties in every software project; it’s our job to make sure there aren’t surprises as well. We provide progressively refined estimates, both for schedule and cost, throughout a project so that you control your own priorities.
Our first phase, for which we don’t charge, seeks to determine the vision of your project. We will schedule a few conversations, get a sense of your overarching goals, and give you a rough ballpark range for what sort of budget might be required to meet your needs.
We call it the “foundation phase” because there’s so much more that goes on than just jotting down a list of features. This is the phase in which we come to really understand your business. We often will create a framework for supporting the evolution of the software solution beyond its first iteration, we’ll consult on process improvements in your organization, and we’ll address adoption and rollout plans.
During this third phase we build the solution in question. Much of the work is done in the code, but we hold regular status meetings with clients to maintain control, visibility, and to ensure we can accommodate changes in plans. Our clients are active members of our development team and have full access to the code, our development servers, and project management tools.
Custom software only works if its users love it. Our process follows elements of the Agile methodology: we often step through foundation-development-deployment phases, in iterative units called “sprints”, to ensure you and your team can see the software coming together, use it, and adjust course as the software evolves.
We learned early on to give enough time and mindshare to rolling out systems. Sometimes a deployment can be easy, but in times when a data migration or server issue arises, it’s always best to have a clear plan. Our team has worked with some of the most exacting IT organizations in the world: we understand that getting a deployment right is critical for a business.
It’s rare that a business solution is ever finished: your business evolves, and it’s important that your software can as well. We can provide ongoing support for projects we’ve deployed (sometimes for years) and continually modify them to suit the needs of your team.