agile focus frugality management product management trade-offs Worth reading

Software architects and strategic decisions: Build, buy, open source, or partner?

When planning a project, the world of specifications and agreements can sometimes run into collisions with Agile methodologies. What’s your experience with how this works in practice?

I had a conversation today with a former colleague about implementing mission-critical software, and the cost assumptions of Agile methods. He cited “Balancing Agility and Discipline: A Guide for the Perplexed” as an analysis which says Agile assumes as an axiom that the cost of change is constant (in the front end engineering processes, not in remediation, fixes in the field, etc.) Frankly, I suspect that’s because Barry Boehm is a classic “programming in the large” guru, but I haven’t read the book yet. 

This is true (that Agile assumes constant cost of effort) in the sense that it’s held constant in the same sense of any other “assuming all other things are equal, we vary this.”  I see the point, but it seems to me that it’s not true in practice, in my experience, but then, I don’t think many people implement Real True Pure Scrum or Lean or XP or any other agile practices; they typically implement some kind of composite methodology, which merges specifications and design artifacts in the outer feedback loops of (for example) Scrum.

But he did have an excellent…nay, *superb* point: without explicit architecture work as an input to software development, development frequently gets caught in a cycle of relative local improvement, without being able to leap beyond the limitations of the existing or incrementally developed architecture, and sometimes that just won’t get you where you want to go.  I personally believe that these outer feedback cycles, including project kick-off, are the best integration points, and that most people practicing Scrum are working away with the “release and below” of the feedback loops, and neglecting release and multi-release planning entirely.

(I personally like the XP-style feedback loop diagrams on this page…to me, the architectural inputs belong in the outer feedback loop, with tweaking and involvement from the architecture team in the inner loops.)

To me, the point is that as software professionals, we have to be able to make decisions about what we’re going to build, buy, or integrate with, and this meta-decision can easily be a part of the Scrum, XP, or other Agile processes, and we don’t have to model the cost of the estimate purely by (for example) planning poker, especially when there are other costs involved. However, many organizations FAIL to make these decisions, instead always choosing to build, which leads to massive expense overruns, because they are trying to solve the wrong (software architecture) problem.

I’m looking forward to reading the book to see if it provides suitable guidance for practitioners in the field, both that I can use myself, and that I can reference to customers and employers. I generally find (both when working directly for an organization, or as a consultant) that some kind of ‘made to fit’ methodology is what’s really needed…and I haven’t seen that codified. Might have to do it myself, we’ll see.

Comments, insights, or experience are always welcome. More later after I read the book; I’ve always enjoyed Boehm’s work, so I’m looking forward to it.


By Dak

Father, leader, writer, scientist, visionary.

Technical software development leader (CTO, VP). Excels when improving and turning around teams, putting better tools and software architectures in place, and getting better outcomes.

3 replies on “Software architects and strategic decisions: Build, buy, open source, or partner?”

STILL waiting for to deliver this book. Unusually slow for them, this is disappointing.


Software/product development needs to be completed with a measureable objective in mind. For example, increasing performance by ‘x’ percent, increase sign-ups by ‘y’ per month. Once that goal is achieved you move on to the next thing.

On the other hand, if it appears that the planned development is not achieving the goal, or it’s taking to long to achieve the goal, then the team needs to “pivot”: to change the approach, or think outside of the box.

Traditional software methodologies take too long to get to the pivot point, and when people reach it, they’re too affraid to pivot because of all the time and money invested to date – as illogical as that seems.

In my view Agile Development practices are the fastest way to get to the pivot point.


Ah. The book has arrived. I’ll have a post up when I can; there’s a lot of good stuff in this book, and alas, some straw-men arguments. This is going to take a little longer than I expected.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.