CTO to Go: Custom Software Development is a Mental Exercise

All Articles Culture Data Management Level 12 News Python Software Development Testing

Building a mental model of the software

When any of our developers sit down to start a software project, we have to start with a mental model

Our mental model is not the code, rather it is our understanding of the overall picture of how all these pieces work together.

When we are building our mental model, we are thinking about things like good coding practices. We are asking thing like, “am I using the right format?” We’re thinking about data models. We’re thinking about all the context.

So we’ve got a whole mental model built of how all this software works together.

Software developers aren’t code monkeys

If you were to watch our developers work, you would probably see us typing 20% to 30% of the time.

You might be tempted to think we are wasting the rest of that time just sitting there.

But we are not. We are thinking about, “how do I move this code around in a way that is cohesive and has good architecture?” “How am I going to test this?”

“How do I actually write the code to do that in a way that’s valuable to the client but also consistent with the code base and what I know about good software development?”

We might be thinking about the client’s problem: “the way that they asked me to do the issue, now that I’m in the code, I see a disconnect. I see a problem with what they’re asking me.” Then we have to figure out if the problem is in the spec or if we need to do something with the code to make it conform.

This may look less productive than unleashing a team of code monkeys to punch out code, but we are thinking about the problem at a higher level and are anticipating problems our clients may not have thought about.

Productivity = building the right thing, not just making a lot of code.

Code Monkeys

All of those things can be running through the dev’s mind.

We have to wrangle them all as we think about, “how do I write this line of code?”

Because it’s not really about how I write the line of code, it is more like, “what line of code should I write?” That’s the biggest mental piece of it: “how should I actually do this? What is the best way?”

Managing risk by building software right the first time

The end result for our clients is that we build the right thing the first time.

The biggest risk in software development is building the wrong thing. This happens when the mental model does not line up with the client’s expectations and needs.

If you don’t do the mental work up front, you still have to do it, it is just after the project fails and you have to rework the software you took a year or more to build.

If you don’t want to entrust the monkey hoard with your project, contact us and we will be happy to help you think through what you need and how software can advance your business.

Originally published on 2020-07-24 by Royce Hall

Reach out to us to discuss your complex deployment needs (or to chat about Star Trek)