What's up with the name?

Oh, hi. I'm just trying to build something over here. Give me a minute.

Really? That's what you're going with?

It appears so. Why?

It's kind of a dumb name.

That's not a question.

Ok, I'll explain. I've worked in professional software development for over 20 years. I've built large-scale enterprise systems and larger-scale user-facing systems. I've run team retrospectives for almost 15 years. I can tell you what the complaints will be in a retrospective without even meeting the team or knowing what they're building. Most of the feedback boils down to: "I'm just trying to build something!"

Isn't that the job of software engineers?

Of course, it is, but this feedback doesn't just come from software engineers. Other people are also responsible for building something. Product managers are trying to build backlogs and feature sets that are compelling. Designers are trying to build intuitive, efficient, and (if there's time) attractive interfaces. Quality engineers are trying to build test infrastructure. Security engineers are trying to build ways of keeping data and corporate secrets safe. I could go on...obviously.

If everyone's "just trying to build something", then what's the problem?

The software industry is a bunch of competing priorities, preferences, standards, and opinions bundled up into a bunch of people who are just trying to build something. Usually, half the people feel like the other half of the people are getting in the way. Engineers, especially, will feel exasperated at the interruptions and time demands of coordination. In reality, everyone is trying to work toward the same goal. We just don't do a great job most of the time. I want to talk about that because we can do better.

Isn't this what [insert book/methodology/blog entry/tea leaves] solves?

Look, there's no single solution that will work for every team. A single solution doesn't even work for a single team over time. We need to humanize our software development practices because we're people, not machines.

Years ago, agile practices and extreme programming promised to solve all of these problems. The didn't. Every time someone suggests a more structured approach to some coordination or task, someone else always screams: "That's just waterfall!" We've demonized entire ways of working just because someone told us it was bad!

We can and should do better. The time for building software for its own sake is long gone. We need to build for our customers and users (preferably they're the same or closely related). More importantly, we need to build more and argue about the minutiae of process less.

So...software development process?

Yes. That's not a small thing. It involves product, design, development, testing, career development, and being a human being working with other human beings. If you're looking for deep insights are particular technologies, this probably isn't the place. If you want to build a more respectful, inclusive, rewarding software industry, I hope I can help.