process

How to Inherit Somebody Else’s Code

Every developer faces a situation wherein an application requires an update—for code the developer didn’t write. For many developers, going to the dentist for a full day’s worth of drilling without anesthesia would be more welcome than working with code of dubious origin and uncertain quality. It’s not that the other developer purposely created a [...]

4 Reasons Developers Resist Code Review (and Why They Shouldn’t)

As Captain John-Luc Picard said after he was assimilated by the Borg, “Resistance is futile.” His point? You can’t change the path of least resistance. There are some inescapable truisms, whether you’re traveling at light-speed on the U.S.S. Enterprise fleeing from the Borg or you’re ruminating about meta-classes as you toil away creating fabulous software. [...]

Capacity Planning on a Cocktail Napkin

Normally, after eight hours on my feet with an audience, I’m both exhausted and wired; what I really want is to fall face down on my bed until I recover enough to order room service. I was in Chicago teaching a course in web-systems architecture, and several of my students insisted I come with them [...]

Encouraging User-Centric Development – But For Which User?

Too often, software that is ostensibly designed to serve the user is designed for the wrong user. The people who sign off on your software – the client who pays the bills, or the executive committee that decides what the business needs – may be happy. But the person who spends all day doing data [...]

Less Process, More Discipline

It started, as these things often do, with someone coming into my office. We’re close to shipping a product after a long struggle with all the usual issues – hardware difficulties, operating system bugs, personnel changes – but we’re beginning to see the light at the end of the tunnel without the chug-chug of an [...]

How to Improve Communication Between QA and Development

A couple months ago, I perused an online article which purported to tell developers what they should learn in order to communicate better with testers. Number one on the list was, “Learn to use the bug tracking system.” After I screamed, I resolved to float some more useful ideas. Programmers know they need to get [...]

Why QA Must Have Its Own Databases

Starting a software QA cycle? Standard references tell you that you need to control the test plan, hardware, operating system, application, test scripts, and result reports. As widely-accepted as this checklist is, it leaves “data” invisible. That’s a mistake, but one you can correct. Three reasons data emerge from the QA shadows First, let’s be [...]

An Agile Pace

Anyone who has been in software long enough recognizes an ongoing need for overtime as a “process smell,” a sign of an organization needing rescue. Once there is a mandate for exceptional, regular, weekly overtime — officially instituting a “death march” project — it is past time to pull in an Agile process consultant. A [...]

Three Years of Scrum at Socialtext

It seems that you can’t swing a dead cat without hitting someone who is trying to sell you advice on “Transitioning to Agile with Scrum.” That’s important work, and I’m pleased someone is doing it, but that’s not this article. Instead, I tell the story of one very specific Scrum transition — at my employer, [...]