Like most other professions, software engineering comprises a wide range of skills. Yes, you are hired to produce working, quality code, but to assume that is your entire mission at work is a mistake.
Programming as an end by itself, in the context of a business, is nothing special. I’m not trying to bash anyone with a passion for churning out quality code (as am I) but, if a company could make do without programmers while preserving its productivity, it would.
And why blame anyone for this? For managers and staff, developers are expensive, esoteric experts who demand top-notch working conditions for inscrutable work and sometimes questionable and unquantifiable results. Who wouldn’t express some skepticism?
Step back from this developer-centric view, however, and you’ll realize software’s no different from other skills; companies question the hours billed by lawyers, accountants, and marketing staff too.
Your job is to solve problems (and sometimes that involves coding)
There’s a belief among IT staff that software and systems should be beyond politics and the finance guys, which 99% of the time isn’t true. Instead of getting frustrated by the situation, consider that the tools at your disposal dwarf that of almost all other professions if you’re willing to go beyond technical skills.
If you can’t begin to convince customers of the advantages of having the right software for the job, how could they even evaluate your fees and salary? This is where having some people skills and empathy fills the gap. Few people get software, but everyone understands that a using a tool that improves your revenue or productivity beyond some point is better than not using anything in the first place.
So, why do so many people fail at the sales pitch? In my experience, three reasons:
- They can’t convince customers of the added value
- They can’t assuage the customer’s fears
- They promote specific products and projects instead of drilling into the particular needs for the task at hand
Does this sound familiar? Surely you’ve heard of the specialists with a knack for solving this problems: salespeople!
You need promotion to work at your best
Knowing your way around technology, fixing organizations’ problems using those skills, and being able to explain the benefits is a rare combination that makes you much more valuable than being just a technical expert. You can establish a bond with bosses and clients that few other specialists can, providing improvements and having leverage to patiently experiment and take risks that would otherwise be unacceptable. Doing software is exploratory and unpredictable, so deadlines will be missed, and experiments will be thrown away; so communicating that is a chance to provide better solutions than just reluctantly accepting what they ask for (or bailing out without explanation).
Cast aside any doubts on questioning requirements; your priority should be figuring out the needs behind a specification. You’ll find that even technically competent customers will have overlooked a critical piece of the job. Do it with tact and you’ll have a steady stream of work.