Photo by Mimi Thian on Unsplash (Edited)

The value of a software engineer

A quick note about keeping us accountable to users.

As a software developer I take a great deal of time to try and further develop my skills and understanding of computers, software, the architecture thereof running software in production and measuring the success thereof.

Understanding each other

All computer problems are, fundamentally, human problems. Perhaps uniquely so as software developers we sit atop an entire stack of our forebearer’s ideas about not only software, but about life, the nature of relationships between teams, the relationship to the user and how we should talk to each other.

Understanding the market

Mapping domain specific expertise into software

The value of software is not in its inherent nature to do a thing repeatedly, but that this thing does something of value to us. We use software for a purpose; to derive a value from it.

The skills required to ship code

It is here that I would place the skills that I have previously spent so much time refining; the engineering aspect of our discipline.

The skills required to run code reliably

Lastly, while it’s a simple conceptual model that we simply build and ship our software it is not quite how software pans out once it gets in front of users.

In Conclusion

The building of software is, unsurprisingly, the vast majority of a software developers requirements. However, the building of software does not happen in a vacuum and the complexities of life, of people and their cultures and of the complexity of the problems we’re trying to solve all go into determining whether our built product will be successful. We as engineers need to reach beyond the borders of simply committing code to try and understand the context in which we operate and hold ourselves accountable to ensuring that our users are actually deriving the value from our software that we imagine they should.