Select Page

Concurrency in Java

Recently I had the pleasure of two sessions on programming concurrency on the Java VM by Dr. Venkat Subramaniam, at a No Fluff, Just Stuff conference.  The presentations were based on his recent book, Programming Concurrency on the JVM.  Two very different approaches...

Design as Knowledge Acquisition

Read this post by Alistair Cockburn on Design as Knowledge Acquisition. Developing application software, which is what I’ve done for a decade, always involves learning — acquiring knowledge.  We have to learn about the problem space (the...

Peter Naur – Programming as Theory Building

I was re-reading appendix B in Alistair Cockburn’s book, Agile Software Development, 2nd edition.  He has posted the entire appendix on his own blog. Peter Naur thinks it important to consider the sort of activity that programming is.  Because if it is...

The importance of retrospectives in agile development

A retrospective is a team meeting conducted at the end of each iteration (sprint) in which the team talks about how to improve how they work.  I believe that the effectiveness of an agile team strongly correlates with their ability to engage in productive...

Collaboration

Just a short post about what collaboration means in agile software development.  It means people working together at the same time on the same task, with continual discussion going on.  Pair Programming is the epitome of collaboration.  The people do not have to be...

Software Craftsmanship Movement

The idea of software craftsmanship seems to be gaining buzz recently.  Just now, Martin Fowler has also written a blog post about it.  The idea of software development as a craft vs. an engineering science isn’t at all new.  The book by Pete McBreen, pictured,...