Category Archives: Software Architecture

How far should you look ahead?

I’m a consultant. So an easy answer would be, “It depends.” My real answer is more nuanced: only look ahead far enough to see some significant issue and a plausible way to resolve it. If you want to get better, … Continue reading

Posted in Agile, Software Architecture, Software Design | 1 Comment

Agile Architecture Myth #5: Never Look Ahead

Stop it! Stop anticipating! Get coding. Get that next user story working. Don’t. Ever. Anticipate. This seems to be a common agile mantra these days. Since we allegedly aren’t good at anticipating how code will evolve, well frack it, let’s … Continue reading

Posted in Agile, Software Architecture, Software Design | Tagged , , , | 4 Comments

An Architect’s Dilemna: Should I Rework or Exploit Legacy Architecture?

I recently spoke with an architect has been tuning up a legacy system that is built out of a patchwork quilt of technologies. As a consequence of its age and lack of common design approaches, the system is difficult to … Continue reading

Posted in Software Architecture, Software Design | 2 Comments

Agile Architecture Myths #4 Because you are agile you can change your system fast!

Agile designers embrace change. But that doesn’t mean change is always easy. Some things are harder to change than others. So it is good to know how to explain this to impatient product stakeholders, program managers, or product owners when … Continue reading

Posted in Agile, Requirements, Software Architecture, Software Design, Uncategorized | Leave a comment

Who Defines (or Redefines) Landing Zone Criteria?

Who should be in on discussions that set landing zone criteria? Because most landing zone have architectural implications, someone knowledgeable about the system architecture, in addition to the product owner and other key stakeholders should have a lot to say … Continue reading

Posted in Agile, Requirements, Software Architecture | Tagged , | Leave a comment

Landing Zone Targets: Precision, Specificity, and Wiggle Room

A landing zone is a set of criteria used to monitor and characterize the “releasability” of a product. Landing zones allow you to take product features and system qualities and trade them off against each other to determine what an … Continue reading

Posted in Agile, Requirements, Software Architecture, Software Design | Tagged , | Leave a comment

Introducing Landing Zones

On an aircraft carrier, the landing zone describes a small section of deck that a pilot must touch down in to land the plane safely. By analogy, a landing zone for a product describes a range of measurable attributes that … Continue reading

Posted in Agile, Requirements, Software Architecture | Leave a comment

Software Architecture Stewardship

On agile teams, architects do more than design and implement the interesting tricky bits. They typically balance a wide range of concerns: short-term goals, overall system design integrity, risks versus efforts, design expediency… The successful agile architects I know aren’t … Continue reading

Posted in Agile, Software Architecture | Leave a comment

Agile Architecture Myths #3 Good Architecture Emerges

Last time I left the cap off of the toothpaste, a small blob of toothpaste flowed onto the counter. No planning; it just emerged. Now I know that emergent software architecture is another thing entirely. We can’t anticipate everything about … Continue reading

Posted in Agile, Software Architecture, Uncategorized | 5 Comments

Agile Architecture Myths #2 Architecture Decisions Should Be Made At the Last Responsible Moment

In Lean Software Development: An Agile Toolkit, Mary and Tom Poppendieck describe “the last responsible moment” for making decisions: Concurrent development makes it possible to delay commitment until the last responsible moment, that is, the moment at which failing to … Continue reading

Posted in Agile, Software Architecture, Software Design | 1 Comment