Duct Tape Programming

Joel tells the story of The Duct Tape Programmer, and Uncle Bob offers his response. Now these are two pretty smart guys who know a lot about software development. But when we receive fundamentally different messages from a couple of industry luminaries like Joel and Uncle Bob, we’re left wondering – “Who is right? Who […]

Agile Architecture, Lean Principles

Most of my discussions surrounding agile architecture have been focused on exploring how modularity helps increase architectural agility. I claim that modularity is a required (and to this point, missing) aspect of agile architecture. The basis for this claim follows: Architecture is design, but not all design is architecture (ala Booch). Design is architecture if […]

Modularity & Architecture

I recently wrote about eliminating architecture, and there were a few comments, especially by folks on JavaLobby, who thought I had my head in the clouds. Too much theory. Too many abstract concepts. Not achievable in a real world development scenario. That I’m making a play on words. Let’s take another angle. Defining Architecture There […]

Agile Architecture Presentation

The slide deck for my upcoming presentations at SpringOne 2GX, Agile Development Practices, and OOPSLA is complete. This presentation doesn’t spend much time talking about the “softer” side of agile architecture. I don’t make silly statements about avoiding the ivory tower, delivering solutions that work, or embracing change. These are given! I intentionally avoid the […]

Eliminate Architecture

I believe: The best way to deal with architecture is to eliminate it. Architecture’s Goal Let’s start at the beginning. First, by defining architecture. Second, by understanding the goal of architecture. I’ll offer two perspectives, one from Fowler and the other from Booch. First, the Fowler statement. In most successful software projects, the expert developers […]

Modularity Pattern – Manage Relationships

Recently, I posted an entry introducing 19 patterns for modularity. The first of these patterns was ManageRelationships. ManageRelationships is a simple pattern stating that we should design module relationships. I categorize this as a base pattern, meaning it’s a prerequisite pattern for many of the other patterns in the list. For example, the Dependency Patterns […]