Author Archives: John

About John

John Peterson has been creating and managing the creation of software for his entire professional life. During that time, he's been through many projects large and small, worked with a wide variety of people on a wide variety of technologies, made a lot of mistakes, and learned a lot in the process. The intention of this blog is to pass along the wisdom he has accumulated in the creation of software to those who may be earlier in their path of experience.

Who’s in charge? Anyone?

Many things about software development are unique, and attempts to apply techniques or thinking from other endeavors lead down the wrong path.  But there are quite a few things that are pretty universal, and I want to comment on a … Continue reading

Posted in Leadership, People, Why Things Go Wrong | Leave a comment

Have You Failed Lately?

Since we all want to be successful, failure must be bad.  At the very least, if you fail at something, you are obviously not being successful, and maybe it will make others feel that you are incompetent, not talented, or … Continue reading

Posted in Execution, Leadership | Leave a comment

Why this blog?

I started my career as a programmer at IBM and spent the subsequent 3 decades developing software and managing its development at 4 different companies in 3 different countries. During that time I have learned a lot and have had … Continue reading

Posted in Personal | Leave a comment

Catalyst for Change

There’s turmoil in the financial markets and lots of uncertainty in the world right now.  The world economy is in a major recession. The media is full of dire news.  As a result, our customers are spending less. I don’t … Continue reading

Posted in Agile, Execution, Leadership | Leave a comment

Theme for the New Year

We’re starting a new calendar year, and with it come big new challenges. Much could be said about this. Over the holidays I came across a brief article from Time entitled “Myth of the Fearless Entrepreneur” that makes a great … Continue reading

Posted in Execution | Leave a comment

Second Best, Tomorrow

That certainly doesn’t sound very appealing, does it?  But it might depend on the context, and it actually might be a pretty good idea in software development. During WW II, when the British were under attack by German bombers, they … Continue reading

Posted in Agile, Execution, Process | Leave a comment

Cross-Functional Teams (CFTs)

We’ve had a lot of great discussion here recently on the very important topic of iterative development and I suspect we are far from exhausting the topic, but let’s shift gears for a moment. One of the topics I mentioned in my article … Continue reading

Posted in Agile, Organization, Process | Leave a comment

Can We Iterate?

In my last article I asserted that iterative development is one of the key practices that will improve development effectiveness.   I speak from personal experience on this, and there is abundant literature that supports this claim.  So why aren’t we … Continue reading

Posted in Agile, Process | Leave a comment

You Can’t Test Quality Into the Code

… yet it is surprising how much we still rely on testing as our primary defence against defects. To produce quality products consistently, the process must also have the objective of removing all defects before test entry. The objective of … Continue reading

Posted in Execution, Quality | Leave a comment

What Makes a Great Team

Years ago, when the PC first came out and for some while thereafter, it was actually possible for a single programmer to create a meaningful software product. But those days are long gone now. I don’t know of any non-trivial … Continue reading

Posted in Organization | Leave a comment