Publications & Reviews

Written requirements in the age of agile development

Many of today’s agile software projects are characterized by a lack of written requirements and other documentation. The rationale behind this is that requirements change “too often” to be written down. Project management might also be afraid that writing documents consumes too much time of developers and stakeholders. However, my personal experience is that projects with…
Read more

What Architecture Means for Agile Development

In contrast to some discussions we observe in the software community, agile development is not about cargo cult adoption of Scrum or any other process, toolkit, or methodology — although we certainly observe this and consider it a problem. The essence of agility is responsiveness, learning, and sufficiency. Agility is reflected in sustainability and quality…
Read more

Is your team really agile?

Most teams purporting to be doing agile software development are not applying the level of technical rigor necessary to succeed at it. Most “agile” teams have actually only adopted Scrum’s project-management practices and have failed to effectively adopt “the hard disciplines” like test-driven development, refactoring, pair programming, simple design, and continuous integration. Jean-Raymond Abrial, Faultless…
Read more

David Parnas: Most of the software we see or buy is ugly

Nevertheless, in spite of such helpful articles and many textbooks on software design, software jewels remain rare. Most of the software we see or buy is ugly, unreliable, hard to change, and certainly not something that [Niklaus] Wirth or [Edsger] Dijkstra would admire. If published papers contain the secret of success for software, shouldn’t we…
Read more

Niklaus Wirth about complexity

On both sides of this fence, complexity has and will maintain a strong fascination for many people. It is true that we live in a complex world and strive to solve inherently complex problems, which often do require complex mechanisms. However, this should not diminish our desire for elegant solutions, which convince by their clarity…
Read more

Exceptions: Andrew Hunt/David Thomas vs Robert C. Martin

There is a subtle difference between what Robert C. Martin recommends in Clean Code and what Andrew Hunt / David Thomas recommend in The Pragmatic Programmer. Martin encourages you to always use exceptions if the normal program flow is interrupted to avoid if statements (or even worse: forgotten if statements and mixed result types) while…
Read more

The Clean Coder

I’m currently reading The Clean Coder by Robert C. Martin. Here are some of my favorite quotes: Caffeine “There is no doubt that some of us can make more efficient use of our focus-manna by consuming moderate amounts of caffeine. But take care. Caffeine also puts a strange jitter on our focus.” Arrogance “Programmers tend to be arrogant,…
Read more

Google’s Sean Quinlan about GMail and GFS

I recently read an interview with Google’s Sean Quinlan about GFS and the problems they faced with interactive Web applications like GMail, which require a certain maximum latency time. The original Google File System design was focused on batch efficiency, not latency. Although the interview is quite long, there are two remarkable paragraphs I would like…
Read more

Combining SOA and Cloud Computing

To my surprise, the combination of SOA (Service-oriented Architecture) and Cloud Computing (basically outsourcing the server management/using many virtual machines) was described as something new in IEEE Computer’s October issue (“Software Engineering Meets Services and Cloud Computing”, Stephen S . Yau and Ho G. An, pp. 47 – 53). Besides the fact, that this is…
Read more

Guidelines for Software Development Estimation Effort / IEEE Computer

An analysis of 32 factors that influence the software development estimation accuracy can be found in Computer’s October issue (Dirk Basten, Ali Sunyaev, pp. 88-90). In my opinion, these are the most important results: Try to exclude candidates with a high general degree of optimism as well as optimism in the estimation process Split larger tasks…
Read more