Category Archives: Software Engineering

Estimation is important for software developers. Software effort estimation problems are part of their daily lives.

Software Effort Estimation Problems

Software effort estimation is an important part of the daily lives of many software professionals. I have joined the #noestimates debate on Twitter because there is a lot to learn from a discussion on estimates. I’m not ready to fully abandon estimates but I am interested in discussing where, when and how to apply them — or not… Continue reading

A data repository is not a community of practice

Agile Community of Practice

I’m a strong believer in learning by doing. I also believe that learning will be better when supported by an agile community of practice (CoP). Communities of practice allow self-selected members to develop their “capabilities, build and exchange knowledge”. In my professional life, I am involved in several communities including larger associations such as IEEE and ACM but also more focused communities at work including on Enterprise Architecture, E-health and Agile.

Continue reading

Evidence Based Software Engineering

Is it possible to do controlled process experiments in software? That was the question asked in the Kanbandev group over at Yahoo groups. We need evidence to support the practices we use in software development. After all we are talking about a serious business with an annual value of about 500 TUSD.

How detailled should a test case be?

I sort of remembered a very interesting article about one-liner test cases at testzonen.se. I have blogged about it before, but perhaps it is worth repeating myself? The idea is that detailled (manual, scripted) test cases are uninteresting, limit creativity and are expensive to maintain. The solution is to create “one liner” test cases instead. What about test documentation? If testing actions are recorded during execution then the documentation can be created afterwards.

I guess this goes to show that there is no one size fits all in testing. The right tool should be used at the right time to reach the right goal – which of course is to find bugs early rather than late.

Test Driven Development: Ten Years Later - Steve Freeman, Michael Feathers

TDD Improves Quality

TDD improves quality! That might sound obvious, but evidently it isn’t. Test driven development (TDD) is often cited as a key agile practice (1,2). But still, the evidence has been equivocal until now. Continue reading

A selection of repeating tiles.

Regression Test Selection Twenty Years

Last year Regression Test Selection celebrated its twentieth year as a field of research. It was in 1993 that G Rothermel and MJ Harrold published their seminal paper on regression test selection. With Continuous Integration being the top agile practice, RTS remains important. How did scholars celebrate “regression test selection twenty years”? Continue reading

Planning poker is a first step towards improved agile estimates.

Improved Agile Estimates


Do you need improved agile estimates? If your agile process is heavily reliant on effort estimates, then chances are that you need to have the best possible estimates. Are your estimates already as good as they can be or do you need improved agile estimates?

Continue reading

Laurie Williams presenting a slide. She is the researcher behind the list of Key Agile Practices.

Key Agile Practices You Need

Laurie Williams has presented a “top thirty” list of key agile practices. The list defines what you need to do to be seen as being agile. Continuous integration, short iterations and done criteria are at the top of the list. Continue reading

Agile software development methodology.

Agile is NOT new and not enough

So people keep talking about the Agile – Waterfall dichotomy. About agile and un-agile practices. I decided to have an unscientific look at what Agile isn’t. If there is a true dichotomy between Agile and Waterfall, then things opposite of Agile should be either entirely out of scope for projects and software development or they should be characteristic of Waterfall methods. And since anyone would bother to mention them in the context of Agile, one would assume that this would be because they are distinguishing between Agile and Waterfall. Continue reading

Regression Test Selection

Regression Test Selection or RTS is essential for successful regression testing in larger projects. As long as you are running a small project and working with a small product regression testing is seldom seen as an issue. As your project and product grows and matures your regression test suite becomes increasingly larger and larger. After a while you will find that a full regression test requires forty testers to spend forty hours of testing just to run the test suite once. Continue reading