Category Archives: Agile

Agile

Simplicity in Software Design: KISS, YAGNI and Occam’s Razor

“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” – Antoine de Saint-Exupery Simplicity is a desirable quality attribute in any software system. In this article I try to … Continue reading

Posted in Agile, Software Architecture | Tagged , | 32 Comments

IASA Israel meeting – Hayim Makabee on Adaptable Design Up Front

The International Association of Software Architects (IASA) in Israel organized a special event with the participation of Hayim Makabee, who talked about “ADUF – Adaptable Design Up Front”. Synopsis: This talk tries to answer the question: “How much Design Up … Continue reading

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

The Myth of Emergent Design and the Big Ball of Mud

Software developers following Agile methodologies often ask themselves how to adapt the traditional Design phase to an iterative software lifecycle. The basic question is how much design should be done before starting the implementation. There seems to be a consensus … Continue reading

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

Adaptable Designs for Agile Software Evolution

“It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.” – Charles Darwin Big Design Up Front (BDUF) is considered a very bad … Continue reading

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

On Developer Wisdom and Software Quality Attributes

What is wisdom? In order to answer this question, we will look into some ancient Jewish texts. From the Talmud (Tamid 32A), compiled 1500 years ago: “Who is wise? He who discerns what is about to come to pass.” In … Continue reading

Posted in Agile, Efficacy, Jewish Sources, Software Evolution | Tagged , , , | 10 Comments

Illusory Superiority: Are you a good programmer?

Programmers are known to be proud of their work. Some developers even feel that writing elegant code is a form of art, and thus they call themselves “software craftsmen”. I am sure that the desire to perform outstanding work is … Continue reading

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

Planning Poker: Avoiding Fallacies in Effort Estimates

Many years ago I was working as a software developer in a team with three other programmers. We once had a meeting in which our Team Leader said: “You are late again! All of you are late! Actually, you are … Continue reading

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

Communication Problems in Software Projects

The cartoon above is the best illustration I know for the so usual communication problems in software projects. This difficulty to capture the customer needs and correctly translate them in the form of requirements, design and working code is one … Continue reading

Posted in Agile, Requirements Specification | Tagged , | 2 Comments

Events for Software Developers in Israel

Something very nice is happening in the Software Development Community in Israel: People are organizing meetings to share their knowledge, but not only with their colleagues in the workplace – these are meetings open to the public, including engineers from … Continue reading

Posted in Agile, IASA Israel, Israel | Tagged , , | 1 Comment

Hanukkah and Iterative Software Development

Hanukkah is a Jewish holiday that is celebrated during eight days. The tradition is to light candles every day, starting with one candle in the first day, then two candles in the second day, and continue adding one candle a … Continue reading

Posted in Agile, Jewish Sources, Requirements Specification | Tagged , , | 7 Comments