Two types of work decomposition in IT projects

Any business stands on two legs — you need to be able to do the job, sell the outcome, and get the money. That means you always have two cycles — the first is the contracting and payments cycle, and the second is the delivery cycle.

And here comes the trick all project managers know of. The final result is clear and explicitly shown in the contract. But how do you break it down? As you have two cycles, you can decompose to offer the customer value you deliver so the user clears the payment to you before the customer, and that’s the features/sprints/increments approach. This approach is clear to the user and customer. Still, it requires your team to think within their discipline (coding hi-load backend in Java) and user domain (processing payments analytics). If both fields are complicated, it’s an almost impossible job to do. Or you can decompose it within disciplines of the method, and you go for a phasing/stages approach. And that puts your customer in a position where she needs to know and understand your method and domain enough to understand what you have promised for the current phase. It is very similar when you buy medicine — you must understand all the medical terms to check the prescription. If you don’t, you have only one option, and that is to trust the doctor. So, you can choose any work breakdown, anyway one side will be unhappy and need to learn more things than it is necessary to fulfill the job.

And that’s why Agile v. Waterfall is an utterly wrong opposition. Project phasing explains how the job looks like from the inside of the project. Increments explain how the job appears to the user and the customer. The first one is how the job is done. The second is how the job is paid. You can negotiate it either way, but you need to understand what the trade-off is. Phasing and discipline-based planning, aka Waterfall, does not exclude Iterative development, testing, and delivery, aka Agile. It is just two ways of job decomposition and representation, one is for the team, and the other is for the user and the customer.

Also, there is an economical way to think about Agile v. Waterfall. Agile admirers are like abstract logistic specialists who are trying to use courier delivery at any occurrence. They argue it is flexible, and you can fire and hire at your demand. But you cannot deliver 1.5 mln. tons of goods with Yandex Delivery. Waterfall lovers say those container shipments are the best (if you consider USD per ton per mile). But you cannot deliver a small package with that. Real specialists in the logistics business use multimodal shipments. And it goes the same for IT project management in the wild. You will get Waterfall and Agile where it is proper, case management, and process management. It all will be adapted to the situation at hand.

And here comes an important question — what type of contract should it be, cover all required practices and disciplines? How do we manage the full scope of work in IT projects (not only SW but HW, training, support, in the brownfield environment)? What questions do we need to ask ourselves?




I’m systems engineer and project manager for technology and software projects.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Moving from Docker for Windows (Hyper-V) back to Docker Toolbox (Docker Machine + Virtual Box)

Let’s Learn Blazor: Building your first Client-side WebAssembly Blazor App

Making a gravity simulator using Python

Beginning with player movement in Unity

Clādēs Cimicum — The Bane of Bugs

What is Cloud Computing?

How we deliver with GCP at the BBC

Introduction to GraphQL

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alexander Turkhanov

Alexander Turkhanov

I’m systems engineer and project manager for technology and software projects.

More from Medium

The Black Community and Its Entirety

What is the difference between let, const, and var in Javascript?

Koinsandkash Weekly Wrap-Up for Week ended 18/12/2021