I am glad to see InfoQ have posted a writeup about scaling agile teams using feature teams rather than component teams. This includes a downloadable chapter in the latest book by Craig Larman on the subject. We used to call this working vertically or horizontally. It has also been called cross-functional teams. I have always preferred to work vertically for the following reasons:
- Less people needed to reach a consensus about interfaces between layers of the application.
- It helps to give you the big picture of the application which is something that most of us developers strive to see.
The w3 Principles of Design is an interesting read. In particular, the Principle of Least Power is interesting. This principle doesn’t seem to get much attention these days in software design with DSLs being often embedded. That is “internal” rather than “external” (in Fowlers terminology). This makes the languages harder to analyse and therefore tools are harder to build.
I’ve read the original Worse Is Better article by Richard Gabriel a couple of times now. I discovered it via my interest in programming languages (Lisp in this case).
Jim Waldo reminds us that Better really is *better* in Artima article Worse is worse.