Thom Koomen: “As a software engineer, your job is to make yourself redundant.”
This means that the work you deliver should have such quality that future work is either automated away or transferable to a colleague at any time. Of course, it sounds controversial to work in a way that could potentially leave you without any work, but this also means your employer and/or customer can be flexible in using your skills in different projects and solutions. Any sudden need for your expertise in another project, any shifting in priorities (which moves current work to the backlog), or even any sudden leave/absence, should not prevent a colleague from picking up where you left off.
What does this mean for your daily activities? Besides communicating and documenting the decisions you make, the software you deliver should be thoughtfully and understandably designed and crafted. It should be clearly written and documented, it should have consistent style, formatting and syntax, and it should be properly structured and versioned. In short: this means writing well documented and easily readable code. The better you become at being redundant, the more valuable you become to your employer, or your customer.
So how does this come together?
Looking at the statements, we can distinguish two essential elements of software engineering: what you make and how you make it. On the one hand you want to build a reliable application with a modern architecture and on the other hand you want an effective design process and a streamlined software production toolchain. While often a tangible outcome (what you make) will be requested, both elements are of equal importance. Without the right foundation (how you make it), you won’t be able to achieve the desired outcome.
Curious about the work of software engineer at Itility? Have a look at my previous blog.
