Category Archives: Agile

Agile Development

Agile and Wrong: The Problems with Emergent Design in Pictures

Many idealistic Agile practitioners propose the idea of Emergent Design: “With emergent design, a development organization starts delivering functionality and lets the design emerge. Development will take a piece of functionality A and implement it using best practices and proper … Continue reading

Posted in Adaptable Design, Agile, Software Architecture, Software Evolution | Tagged , , , | 15 Comments

On Anzeneering, Pride and the Definition of Done (DoD)

The concept of Anzeneering was created by Joshua Kerievsky, CEO of Industrial Logic and author of the book “Refactoring to Patterns“. It is derived from the Japanese word “anzen” which means “safety”. According to Joshua: “Anzeneers protect people by establishing … Continue reading

Posted in Agile, Efficacy, Psychology of Programming | Tagged , , | 2 Comments

Beware the Lean Feedback Loop: Over-fitting to Early Adopters

Today many software startups follow the ideas introduced by Eric Ries in his best-selling book “The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses”. Ries is responsible for the popularization of the concept of the … Continue reading

Posted in Agile, Lean Development | Tagged , | 3 Comments

Indefinite Optimism: the Problem with the Agile and Lean Mindsets

In the last decade we have seen a decrease of interest in Software Design and a sharp increase of interest in Agile methods. The first graph below compares the trends between Software Design and Agile. The second graph compares the … Continue reading

Posted in Adaptable Design, Agile, Lean Development, Software Architecture, Software Evolution | Tagged , , , , | 12 Comments

Talk: Adaptable Design Up Front (slides + video)

Last week I was invited to talk at the IASA eSummit on Architecture for Agile Software Development. My talk tries to answer the question: “How much Design Up Front should be done in an Agile project?” I present my approach … Continue reading

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

The Problem with Velocity in Agile Software Development

In my previous blog post about the “Real Danger of Quick-and-Dirty Programming“, I criticized some Agile practices such as measuring the Velocity and drawing Burndown charts. In this post I would like to extend and clarify this criticism, bringing also … Continue reading

Posted in Agile, Refactoring, Technical Debt | Tagged , , | 2 Comments

On the Real Danger of Quick-and-Dirty Programming

As in Dijkstra‘s quote above, when people criticize Quick-and-Dirty programming they are in general focusing on the negative impact in the system being developed. Software that is built following a Quick-and-Dirty approach will certainly have some serious deficiencies, which are … Continue reading

Posted in Agile, Programming, Technical Debt | Tagged , , | 11 Comments