At Amadeus Consulting, clients bring us projects from many different industries and with different technology needs. The common theme? They are hard projects. At times they are projects that other companies or individuals have failed to complete. We have developed a project process over the years that allows us to deliver challenging technology projects for our clients while still managing costs and timeline. We have incorporated elements of agile development over the years – elements like sprints and frequent demos, but we’ve resisted switching to complete agile development because we firmly believed (with a few exceptions) that it wasn’t in our client’s best interests to run projects in that fashion. What were our key reasons for this decision?
- Cost Control
- Client Needs
You always need a good upfront understanding of a project. This is essential whether you use waterfall, agile, or a hybrid methodology. You need a combination of technical, creative, and functional design at the beginning that allows you to lay the ground work for a solid system – it’s a short step from there, on many projects, to creating comprehensive system design. That is how we have done it, and how we will continue to do it, in many situations. This approach works great for large and small clients who need a ‘fire and forget’ style of project. Our clients are busy people. They are successful entrepreneurs and senior managers who come to us with a vision, a little bit of time, and the need for a service provider to own the outcome. For such individuals we have, and probably always will, run their projects in a hybrid process– we take advantage of small, precious windows of free time to get a design in place, and then we run the project with frequent deliverables, but minimal course corrections, based on an initial plan. The world, however, changes. Clients now ask for and desire agile development (with cost control measures, of course). We in the services industry need to adapt, while still maintaining what has made us successful all along – delivering outcomes and managing costs. There are a number of issues to work through when you are considering adopting agile development in a services environment. The issues that make it different for a product company or large IT shop center on a few key business challenges:
- Sales and Initial Client Expectations
- Client Integration
- Project Budget Management
- Doing What’s Right for Our Clients
These all have significant differences from the product or project lifecycle at a different kind of company. In a services-based company we need to manage our clients scarce dollars in the best way, while delivering a product that exceeds their expectations. For many years our approach to this was to use a hybrid process that allowed us to understand, at a deep level, the project so that we could set early expectations. But for certain kinds of clients this does not work, so I want to spend some time in this series exploring the choices we made along the path to providing an agile development model for those clients who want or need it.