The Importance of Perspective
Many people say that software development is a details job. If you're no good at getting the details right in such a precise and unforgiving medium, then this isn't the career for you.
They're half right. If the minimum order amount is £10, > 10.0 is wrong. It must be >= 10.0. A lot of people who try to learn programming struggle because they're not used to writing instructions that will be carried out so exactly. Computational thinking that takes a lot of getting used to.
But it's also very easy to get bogged down in the details and lose sight of the bigger picture. We, as a profession, are infamous for it. I've done it. No doubt you've done it. And that can be very expensive, as we battle to make a widget do a specific thing when we could save a lot of time by stepping back and asking the question "Does it have to be this widget?" So obsessed with the how, a lot of developers become "Why blind".
As we grow in confidence working with pieces of the picture, we also need to develop the ability to take a step back and see the whole. I've noticed that developers who think visually tend to be better at this, especially at visualising how the pieces are related.
This, I propose, is a key skill of architectural thinking - seeing the bigger picture and understanding the pieces in a wider context. Not just seeing how modules or components in a system are related, but how the system as a whole fits into an ecosystem of other systems, people and business processes.
领英推荐
That came to be known as "enterprise architecture", and - incorrectly, in my view - not a skill a developer needs. We can pay people to understand it for them. And, as any right-minded person knows, paying people to understand the context of someone else's work in a field that requires absolute precision is folly. Might as well pay someone else to revise for your physics exams.
When deadlines are looming and schedules are slipping, stepping back and seeing the bigger picture is a superpower. It enables us to see other routes to our destinations. Having worked at every level of system architecture, I think I find it easier to traverse them and see code in that wider context.
It also helps us to more easily see when things don't fit - when they don't make sense in that wider context. Having originally started out studying art and design, I know only too well that feeling when you stand back from the photo-realistic painting you've been working on for hours only to realise one of the horse's legs is shorter than the others.
While we focus on micro-problems in our code, we can easily miss the macro problems if we don't get into the habit of stepping back and looking for a wider perspective. Even the best teams mess up like that; the classic "Three CUSTOMER tables in the database created by three developers all focusing on solving their problem".
Recruiting better developers.
1 年Definitely seen this happen. As you allude to, it happens especially when the deadline looms and things are tight. This is where you really need your Senior Devs to step up and coach the rest of the team to "slow down to go faster".