Lowell Ballard, the Director of Geospatial Solutions for Timmons Group, takes a look at effectively engaging clients for GIS projects. In this article, he examines “waterfall” and “agile” in the context of client engagement.
All projects need successful communication in order to develop properly and meet clients’ expectations. Keeping clients engaged during a project’s discovery and development process is the key to a fruitful partnership. Whether it’s a GIS needs assessment, data management project, or application development effort, all projects need client engagement to be highly successful and for the team to feel accomplished when finished. Engaging your client throughout the process doesn’t just strengthen your relationship, it aids in its success.
There are various project management approaches used, typically for application development projects, which take very disparate approaches to client engagement and project delivery. Two that I will examine are “waterfall” and “agile” in the context of client engagement.
Waterfall Project
On a typical “waterfall” GIS project, the development team would spend a good amount of time upfront to gather information and requirements. After several months of development, the team would deliver a version of the product to the “client”. The client would typically be a team of people with various roles ranging from technical to non-technical to project management. The client team would react to this delivery and, as expected, there would be many requirements that weren’t captured quite right in the beginning, requiring rework and adjustment. The number of these requirements may be large and is typically directly related to the length of time since last review (e.g., typically, a long interval between client and development team equates to more rework and adjustment based on work completed). While the waterfall approach works in some cases, and instills an initial sense of comfort that we’ve collectively “captured the requirements” – it typically doesn’t work well on most development projects. A major contributing factor is the time lapse in the process and lack of a defined “Product Owner” to make more timely decisions.
Agile Project Management
The role of the Product Owner is most closely aligned to the “agile” approach to project management. The agile approach is very different from the waterfall project management approach. The agile approach uses a few tactics that I believe are most important in leading to enhanced GIS project success. The first is the sense of a defined project team with roles for the client and delivery team with a defined Product Owner on the client side. The role of the Product Owner is to make critical business decisions. The right person having the ability to stay connected to the project and being empowered to make decisions is fundamental to project success. The Product Owner is typically a business user – not a technical point of contact. Their role is more about the why versus the how.
The second key to the agile approach is to deliver early and often – typically in 2-week iterations. Rapid delivery enables the Product Owner to stay engaged in the process and to make quick decisions that may be impediments to application developers. If impediments are not removed – product is not delivered in that interval. Reacting to lack of delivery in a 2-week span is very different than reacting across a 2-month span. Our agile projects typically include some upfront time for capturing requirements and the development of a “product backlog”. A “product backlog” represents large pieces of functionality to be prioritized and delivered. These larger pieces ultimately get broken down into smaller requirements (“user stories”) and, most importantly, gets prioritized by the defined Product Owner. The Product Owner decides what comes first and they see it sooner rather than later – these are keys to success. They are highly-engaged and able to react quickly to what they see and are empowered to make decisions. Based on this reaction, they reprioritize remaining items in the product backlog and user requirements.
In the agile approach, the development team will meet daily to discuss impediments in the project. Impediments that cannot be resolved within the team will be presented to the Product Owner very quickly to resolve. If the Product Owner is not able to answer questions, make decisions or ultimately remove the impediment, product delivery does not occur or is not fully completed. The agile approach does not eliminate the issue of bottlenecks but it does force the Product Owner to be highly-engaged and quickly react in order to continue the development process. This efficient process ensures that the client and delivery team are both on the right track to delivering a successful application.