The goal of software development

Photo by Victoria Heath on Unsplash

Why would anyone do it? I mean, let’s face it. We, programmers, are picky. We want to work on what we please. We want to go to expensive conferences. We feel entitled to call the shots.

I guess one of the reasons is that we produce software — eventually.

Yet, we keep forgetting why are we doing this. We forget why do we get paid.

And no, it is not because we type weird stuff.

The goal of software development

(Did I just write a subtitle using the post title? You bet I did).

In short: the primary goal of software development is to reduce the lead time to deliver business value.

(“Lead Time” as in “the time elapsed between identifying a business opportunity and providing the tools to fulfill it”. Or this.).

Also, the goal of software development is to do so in a sustainable pace. Not once, not for a week, but for an indeterminate amount of time. That’s critical.

To goal of software development is not technical excellence. It is the other way around. Technical excellence is the best way to provide value through software over time.

The goal is not producing software

In an ideal world, more software always leads to more business value. But we all know that’s not true.

You could then argue that more software translated to more business value.

However, we know that more software means more maintainability, more defects, more effort needed to understand it.

Thus, to provide more value, we’d need to reduce the amount of code.

Thus, we’d need to produce less of what we just agreed that gives us value.

Thus, writing code is in conflict with its primary goal. A lovely paradox we got there.

Code is not an asset

If that’s true, then code cannot be considered an asset. Right? It is not something you want to pile up, to have a stock.

Code is the cost of getting that business impact. It is what gets in the way between us and creating that value.

Code is the way we came up with to achieve this goal — for now.

And we must not confuse the end with the means. Yet, more often than not, we do so.

This is / This is not

Software development is not about updating tickets in Jira. If only software development had nothing to do with Jira…

Software development is not about over-engineering stuff. It is not about feeling smart because it is cool and because lets you look at people over the shoulder.

Software development is about sustainably reduce lead time to business impact.

Originally published at https://afontcu.dev on May 14, 2020.

--

--

--

Words matter – Software product development, Front-end, UX, design, lean, agile and everything in between. https://afontcu.dev

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Using ActiveAdmin as a backend in Rails 5 application

Recovering Data of Oracle VM VirtualBox Virtual Machine (*.vdi,

EP6. Receiving input from the user

Analyzing the Python typosquatting malicious “request” package

LeetCode 47 — Permutation

Basic Introduction to Numpy

An Introduction To Spark and Its Behavior.

Linux: Hard Link vs. Symbolic Link

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Adrià Fontcuberta

Adrià Fontcuberta

Words matter – Software product development, Front-end, UX, design, lean, agile and everything in between. https://afontcu.dev

More from Medium

Five benefits of making your developers talk with your end-users

Benefits of Agile Principles in Software Development

An Intro To Agile Development

Why Agile Software Development with Scrum is so Awesome?