As engineers, we’re always looking for the best way to do things. This could mean many things and often takes the shape of some sort of combination of everything we use to evaluate the end result. These things range from the fastest, least lines of code, best memory usage, data model setup, or anything else the team you’re a part of values. While it’s great to value these things, we sometimes over-prioritize them to our detriment.
When building software it is important to be able to determine if the means to the end goal are practical or not. More than not, we tend to get too focused on the how as opposed to the why. While this may be satisfactory for the larger tech companies, in the overwhelming majority, most organizations can’t afford to have so much attention to the how. As it’s the “why” that will propel the company forward. That’s why we’re going over some things that can help keep that to the forefront.
Focus On The Deliverable
As aforementioned, the biggest issue with engineers in this department is spending too much time on the technical details. To be honest, no end-user particularly cares about the tech stack involved in the applications they use and love. The only things that matter are does it work well, how fast it works and does the uptime rarely dwindle.
All efforts should be poured into getting a working solution that solves that, not reinventing the wheel just because. If it’s not justifiable towards the end deliverable from a time and cost analysis, then it’s probably not the right choice.
Reposition Your Thoughts On Technical Details
Technical details and product deliverables aren’t mutually exclusive. When defining technical details, it is important to know how things are going to work and what possible future capabilities they’ll enable for the future. However, there is some balancing that comes into place by putting those details into the perspective of the end-product deliverable.
This balance comes from being able to properly translate the technical details into how they better enable the product. Being able to do this effectively takes doing a lot of things that improve the overall outcome. These include: basing decisions based on the timeline, identifying and differentiating between short-term and long-term goals, and translating technical capabilities into improved product specs, among many others as well.
Proper Functionality First
The first iteration of what you build is never meant to be perfect, especially if it’s a big feature. In fact, after some years of experience, you grow to realize everything is a few months away from needing a refactor. It’s just the nature of software development. So with that in mind, what sense does it make to focus too much time on trying to make things perfect? None!
Getting over this type of thinking is critical in shipping quality products efficiently and effectively.
Technical details are important. Having a strong grasp of the ability to research, plan, and deploy software is important. However, at the end of the day, end-users don’t care about what’s under the hood. To them, it’s very straightforward. Does this product do what I need or not. No amount of advanced technical abilities can hide that from them, so make sure to always keep that in the forefront of what you’re building.