Skip to content
Finding better ways of developing software

Meet you at XP2006!

May 18, 2006 by Artem Marchenko

The 7th International conference on eXtreme Programming and Agile Processes in Software Engineering is going to take place on June 17-22, 2006, Oulu, Finland. According to the program, despite its name the conference is going to be focused more on the Agile Processes, than exactly on XP.

Among the speakers there are Kent Beck, the father of eXtreme Programming; Mike Cohn, the founder of Mountain Goat Software - strong Scrum supporter; Michael Feathers, author of Working Effectively with Legacy Code and a lot of other Agile Alliance founding members and board members.

Lowest defect rates - faster schedules

May 3, 2006 by Artem

We are not rich enough to buy cheap stuff.
- Russian proverb

Did you know, that the products with the lowest defect rates have the shortest schedules?

Definition of 'Done'

May 1, 2006 by Artem

During the last Agile SW Development Practices Seminar in Vantaa the participants shared a set of stories about how the switching to the agile development methods proceeded in their companies. A reasonable amount stories included a mention about that without the agreed definition of "done", nothing was completely done.

Own experience

Few weeks ago, when starting a new project, our team decided to try figuring out what our 'done' means. It was a total surprise to discover that within a small and rather coherent team of five persons we had three different points of view.

We have to be good at being wrong. Architects can help

April 28, 2006 by Artem

Anssi Piirainen raises the idea about the need to be good at being wrong in order to create good software. The core idea is good - you have to be ready that the first implementations might later look not very well. However, Anssi also presents the micro case study describing the problems with the "just-in-time design" approach. The changes required appeared to be unexpectedly difficult to not that experienced programmers.

Just-in-time design is not a silver bullet. It is just yet another good tool that can be rather useless until it is used with the correct support practices.

Mocks, stubs and fakes

April 25, 2006 by Artem

I am rather new to the Test-Driven-Development (TDD) and continuous testing in general. Therefore I quite often experience the terminology difficulties: how to call fully functional alternative object, how to call almost empty stub objects, etc. It looks like I am not alone.

Martin Fowler highlights the Gerard Meszaros's proposal:

The generic term he uses is a Test Double (think stunt double). Test Double is a generic term for any case where you replace a production object for testing purposes. There are various kinds of double that Gerard lists:

Good design ghosts

April 24, 2006 by Artem

I can recall several cases, when a seemingly clean'n'simple class appeared to be a huge and difficult to debug entity with loads of underlying asynchronous logic. The simple and small public interface hides the implementation details and according to the good Object-Oriented style all the underlying details are private. Or is it a good style to hide the implementation details into many private methods?

As it often happens, the problem comes from a good idea overused to the extent, where it inhibits another good idea. The encapsulation makes it easy to use your classes or systems externally, but it should not make you forget the internal structure of the class. As Michael Feathers tells

It often means that there's some other abstraction hidden away inside the class that might be useful to pull out.

Waterfall in schools

April 23, 2006 by Artem

Grig Gheorghiu tells about the funny experience of interviewing the graduates for a QA position. All of the candidates have been taught only a waterfall method.

He said they spent a lot of time writing design documents, and since they *only* had one semester for the whole project, they almost didn't get to code at all. I couldn't help laughing at that point, and I told him that maybe that should have been a red flag concerning the validity of the Waterfall methodology.

Process over the individuals

April 9, 2006 by Artem

Individuals and interactions over processes and tools © agilemanifesto.org

Lately on a Russian programmer forum I've read a story about the usual victory of a process over the individuals.

One software development company had Windows and Unix stations. As a result from time to time the wrong endline characters leaked into the repository and caused the build breaks. There were two ways to overcome the problem:
1. To oblige everybody to check the files before the commit

Why premature optimization is the root of all evil. In the management language

April 8, 2006 by Artem Marchenko

The program optimization is performed in order to reduce the execution time, memory usage, bandwidth or some other resource. Optimization essentially means sacrificing the clear, simple and understandable code architecture. As a result the level of complexity increases, debugging and restructuring becomes more time-consuming and more expensive.

It is simply a lot cheaper to get a clear working and testing code before the start of the optimization. As a side effect, a set of unit tests (if you practice them) will protect you from the potential regression coming from the optimization actions.

Being evil is expensive

April 5, 2006 by Artem Marchenko

Once upon a time in a continent far-far away (from Europe) there was a mighty spreadsheet software vendor called Lotus Development Corporation. Their product Lotus 1-2-3 dominated the niche with its almost 100% market share. There was a neglectibly small competitor product named Microsoft Excel. The Microsoft's product better met user needs, integrated well with the word processor and in general was a good product. Unfortunately the Lotus'es overwhelming user base left not a lot of chances for any competitor whatever good he was.

The Microsoft worked real hard to lower the enry barrier. They mailed demo packages by post, built the Lotus-to-Excel convertors, even created a special version of the Windows OS, that could be started without the installation and could run the MS Excel trial only - pretty much everything, that could eliminate the trialing efforts. And the most cunning trick of the Microsoft generals was to introduce the really good Excel-to-Lotus convertor. Yes, you heard it right, Microsoft released the tool that customers could use to switch back to their old good Lotus 1-2-3 whenever they decide that Excel isn't worth any further trials.

Best of AgileSoftwareDevelopment.com