Rants

Core Developer Practices

Every field of engineering has a core set of practices that they follow and software engineering is no different. But what are they? The answer seems to depend upon who you ask. There is no overall consensus in our field about what the right standards and practices should be. We have many languages, many frameworks, …

Read More
Rants

SO what?

When I asked professional software developers in companies what software development and design principles, they follow I oftentimes get a blank stare. Our industry has not matured enough to be able to extract out the major principles of constructing software the way civil engineering has been able to extract out the major principles of constructing …

Read More
Rants

Still XP After All These Years

Are you humming in your head Paul Simon’s “Still Crazy After All These Years”? I am. And it does seem crazy. Crazy that some ideas that came out over 20 years ago in the fast-paced software industry are still relevant and valuable today. But they are. Kent, Ron, Ward, and many others who were early …

Read More
Rants

The Importance of Technical Practices (Again)

Software development has undergone many revolutions over the last few decades. The way we build software today is fundamentally different than the way we did just a few years ago. Our industry is maturing and we are beginning to pay attention to the quality of our work. No longer is just fulfilling the specification enough …

Read More
Rants

The Virtues of Laziness

Ok, I admit it. I am lazy. But laziness can be a virtue. I think it is humanity’s basic laziness that let us create computers in the first place. Computers take the drudge-work out of many tasks. My basic laziness has motivated me to find better ways to build software because I simply got tired …

Read More
Rants

Buy or Build

One question that I hear a lot of people asking is whether they should buy or build the software that they need to run their enterprise. This is often a difficult question to answer. One thing I can say having lived through many major software purchases is that the main cost was understanding a system …

Read More
Rants

Sharing Knowledge

In my early days of computing back in the late 70s and early 80s, having an interest in microprocessor design was unusual. I remember getting almost monthly updates from Motorola and Intel on their latest chips and my shelves were filled with technical manuals. Information flowed freely and it felt that we were part of …

Read More
Rants

Why XP After All These Years

I have been an advocate of Extreme Programming (XP) practices for well over a decade. To me, Agile software development means more than just an agile development process, it means that our code is agile and able to respond to change easily. This doesn’t happen by accident. It’s a result of following good programming principles …

Read More
Rants

Scrum and XP

I’ve been fortunate enough to speak at several conferences on Agile developer practices. I presented at many Scrum Gatherings both in the United States and in Europe. I’ve also presented at several of the big Agile conferences as well as the smaller technical conferences such as deliver:Agile and most recently Craft Con in Budapest. Most …

Read More
Rants

The Agile Community

Have you ever stopped to consider how fortunate we are? We are part of a community of Agile practitioners and there are many benefits to being part of this community. I am fortunate that I get to speak at many of the Agile conferences, including the big Agile Conference, the deliver:Agile Conference, Scrum Gatherings, Better …

Read More
Rants

What’s Agile Software Development?

For many complex processes, there are several ways to do them wrong and only one or a few ways to do them right. This is true with Agile. Many organizations claim that they’re doing Agile, but they really aren’t. Many of these organizations are frustrated because they’re not getting the benefits they expected but that’s …

Read More
Rants

The WIP Whip

WIP stands for work-in-progress. It’s a fundamental concept in queuing theory, which has become a central part of Lean Software Development. Some of us like to work on several projects at once. It feels like we’re getting a lot of things done sometimes but often that’s not really the case. Work-in-progress means that we have …

Read More
Rants

Playing Dumb isn’t Agile

I believe that Agile software development is ideal for discovering what really needs to be built and to build it in a way that it will last, but I don’t believe that Agile is required on every project. There are many kinds of projects and many reasons for not doing Agile. I’ve written quite a …

Read More
Rants

Forget About Velocity

I wrote about increasing velocity in my last post, but I just can’t let it be. I have to tell you about the dark side of velocity and why I don’t recommend that teams track velocity. Velocity is the amount of work a team can accomplish in a fixed period of time. It’s used to …

Read More
Rants

How to Increase Velocity

Do you want to know a trick to increase your team’s velocity? Now that I have your attention I want to tell you that tricks don’t work. I’ve seen people play tricks and sacrifice quality in order to get something out only to regret it later. So here’s my non-trick trick: Increase code quality today …

Read More
Rants

The Importance of Technical Practices

Software development has undergone many revolutions over the last few decades and the way we build software today is fundamentally different than the way we did just a few years ago. Our industry is maturing and we are beginning to pay attention to the quality of our work. No longer is just fulfilling the specification …

Read More
Rants

Two Big Things

I’d like to say that there are two big things we must achieve in software development. We must build the right thing and we must build the thing right. Building the right thing starts with what the customer wants so they can gain value from our work. The way we build the right thing for …

Read More
Rants

Success to Standish is Failure in Agile

The Standish Group’s CHAOS Report is the largest and longest running research study in the software industry. Standish looks at approximately 34,000 software projects in a range of areas. It includes shrink-wrap applications, operating systems, custom apps, etc. They picked a range of diverse projects to look at. Every ten years the study drops about …

Read More
Rants

Telling Smaller Lies

People like certainty but we live in an uncertain world. The future is uncertain and therefore it’s scary, so we tell ourselves stories about the future. We know they’re lies, but they’re good lies. They help us set our expectations. We can’t help but lie to ourselves. If we didn’t, if we had to live …

Read More
Rants

A Culture of Inefficiency

The web site Mental Floss recently reprinted a series of helpful instructions written in Japan for Japanese tourists planning to visit America (http://mentalfloss.com/article/55140/10-japanese-travel-tips-visiting-america). These ten sometimes funny, sometimes confusing bits of advice ends with this: “In Japan, there is great fear of failure and mistakes in front of other people. It is better to do …

Read More
Rants

Incentivizing the Wrong Things

History is full of examples of institutions incentivizing the wrong things. In 2007, in response to an increase in the population of wild pigs in the area surrounding Fort Benning in Georgia, the US Army sponsored a bounty program, paying local hunters from $25 to $40 per wild pig killed. All a hunter had to …

Read More
Rants

Creativity

In an industrial society workers perform rote tasks that are interchangeable with others so the faster a worker accomplishes his task the better a worker he is. That being the case, it’s not difficult to understand why so many industrial workers have been replaced by robots. But information workers are different. What we do requires, …

Read More