Category Archives: Agile

Agile Development

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 Agile, Design Patterns, Software Architecture, Software Evolution | Tagged , , , | 17 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, Software Evolution | Tagged , , | 8 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 , , | 9 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 , , | 13 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 , | 1 Comment

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 | 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, Requirements Specification | Tagged , | 7 Comments

TDD and the Gamification of Testing

The Test-Driven Development (TDD) methodology was invented to improve the way we test the code we write, with the final goal of increasing the quality of systems being implemented.  The basic idea is that the tests must be written before … Continue reading

Posted in Agile, Gamification, Psychology of Programming, Refactoring, TDD | Tagged , , , , | 11 Comments

Super-Productivity

In a previous post I discussed the reasons some programmers are much more productive than others. But the fact is that every programmer experiences periods of time when he is much more productive than average, and I think there are … Continue reading

Posted in Agile, Efficacy | Tagged , | 4 Comments

The Wisdom of Agile Development

What is wisdom? This is a definition from the Ethics Resource Center: “The ability to make good judgments based on what you have learned from your experience.” According to this definition, a wise man is someone with vast knowledge and … Continue reading

Posted in Agile | Tagged | 1 Comment