You Have a Personal Software Process

You probably haven't thought about it, and you almost certainly couldn't articulate it to another engineer.

A bad system will beat a good person every time.
- W. Edwards Deming

You probably haven't thought about it, and you almost certainly couldn't articulate it to another engineer, but no matter your seniority you have a personal software development process. So what is it? And how do you know if it's getting better?

As a junior engineer it might be to hear about a problem and immediately proceed to StackOverflow. As a more mid or senior engineer it might be "look at the problem and know how to solve it" so you immediately cut code to resolve the issue. Or at least what you think the issue is. Working with your team it may be "get the rough "it should do x from product" and solve for x off the cuff.

The problem with all of these is how do you know you're getting better? You can see it after months or years, but week by week, how do you know the little changes you're making to your process are resulting in you getting better?

You can't see it at the micro level unless you've articulated and adhere to a personal software process. If you can't articulate it and adhere to it, you can't refine it or teach it.

Most software engineers have a personal software development process that is an ad hoc, informally specified, bug-ridden, and slow implementation of half of a decent one.

Take some time this week to articulate your process. Then tell me how you're going to measure it to see if you're getting better?

Failing that, sign up to get updates on the work I'm doing with a methodology for each of the fundamentals of software engineering.