Select Page

Object-Oriented Programming Considered Harmful

My tongue-in-cheek title is a riff on the 1968 Dijkstra essay, “Go-to statement considered harmful.” Dijkstra argued for structured programming, over BASIC spaghetti. Recently one of my friends expressed interest in becoming a computer programmer, so I...

Database Connection Pooling

I learned something interesting while examining behavior in a web application that uses a database connection pool.  It was discovered that as the maximum number of connections in the pool was increased, the application performance decreased (response latency...

Books Useful For Programmers

Recently I was asked if I could provide a list of some books that I had found most useful to my development as a software practitioner. I had developed a habit of sitting down and reading a book, away from a computer screen, long before computer screens became...

Offering Remote Pair Programming

I have been doing a lot of pair programming remotely for my latest client. We use join.me for screen sharing and either the VOIP provided by join.me or the telephone for voice.  It works very well for collaboration.  I am a big proponent of pair programming.  Its...

Developing without a DBA

Developing applications with a relational database requires specialized knowledge.  Traditionally, database knowledge was divided between database application developers and database administrators (DBA).  More than a decade ago, I took training at The Learning Tree...

Unholy Grails

A recent project I’ve been working on uses Grails, the Groovy-based Java web platform, patterned on Ruby on Rails.  Grails is a Java relational database to web stack built on the well established open source frameworks, Spring and Hibernate.  The design...

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...