We often talk about being engineers and not developers. It may just sound like semantics but it's actually quite fundamental to what we do.
At its heart, engineering requires a birds-eye view of how an enterprise system is used - all in the context of the business. How do people use a system? How does that fit in with other processes? How does it help people achieve their objectives?
But the practicalities of the above are more complicated than they may first appear!
The new project
A recent project with a longstanding client illustrated the above well.
In a nutshell, we were invited to work on a new product/service feature. It was part of a larger offering by our client. This new feature would be used daily by some of the world's largest tech businesses - many of them household names. So there was a lot of focus on its success.
A feature like the one being discussed goes through several planning iterations with the involvement of many teams. Lots of debate on what to include and how it should work. On this occasion, we were invited in at the point development was due to start.
Building it right the first time
As we’ve said before, if you just need something ‘developed’, we might not be the right team for the job! We want to make sure things are built right the first time. Part of this is asking a lot of questions. As engineers, we’re always working back to the business challenge and purpose.
With a deadline in place, we of course got started straight away. However, with the client’s permission, we went through the process below. Some of these steps can be quite delicate, particularly the first one!
1. Ensure you know your stakeholders
On this particular piece of work, our point of contact was focused on the delivery of the feature. They weren’t as close to the business challenge itself. With their permission - and without slowing down development - we asked to speak to another key stakeholder.
It was very beneficial. With greater understanding, we were able to far better understand the business context and the ‘why’ of what we were being asked to do. We were able to build a better, more appropriate solution that would work for the future as well as for now.
2. Understand the big picture
By speaking to a new stakeholder, we could understand how the feature fitted into the wider enterprise system. This was extremely valuable, as we were now able to make better recommendations.
It turns out that a critical requirement for the project had been poorly translated through layers of the business – we were building the wrong thing! When we understood our clients’ technology roadmap, we were better able to tailor the solution to meet elements of this roadmap. Win-win.
3. Truly understand the business challenge
When things are less rushed, understanding the business challenge is our very first step. Everything flows from here. The business challenge is your north star.
Although the first three steps outlined can sound extra-curricular to the task at hand, they’re what truly makes us an extension of the team.
We found there was a more fundamental business challenge to the one we were working on. Understanding this allowed us to make technical recommendations as experts in our field. Ones that actually ensured we could protect our clients' budget, rather than spend it!
4. Give direction and be influential
The reason clients stay with us is not just because of the great systems we build. It’s the direction we give them on current and future projects.
With a clear understanding of the wider system and business challenge, we’re able to draw on the wealth of team experience to provide great long-term recommendations.
In this instance, we recommended a fundamentally different approach. It was revolutionary rather than evolutionary. It resulted in a completely new component. By using modern architecture, we also ensured future development would be easy.
5. Find opportunities for further improvement
At its core, we’re driven by solving problems. Part of giving good advice as an engineer is being able to see potential challenges or bottlenecks in their existing processes, and how that relates back to their business challenges.
One client told us we were great at ‘upselling’, but that’s not how we were viewing it!
Of course we’re a business, but spotting and solving problems is where our focus is. A successful business has simply flown from that!
Adam Arkley, Principal Software Engineer