In every job, on every continent, in any type of company, this holds true: almost everything can be done, the question is if there is the will, the stamina and the funding to get it done.
For now, let me narrow it down to what I know, and know well: software engineering (also known as The Sklll Formerly Known As Programming).
When you talk to your customers, always keep in mind that they have been told by a licenced IT professional that something can not be done.
Which, of course, is bullshit.
Apart from pathological, fundamentally NP-incomplete problems, anything can be solved. Of course, explaining to the average program manager what NP-complete/incomplete means is left as an exercise for the reader. For the record, I am leasing certain windmills to practice on. Hands up, every CS acolyte who has tried to explain O() notation to a manager, forceable journeyman convert or plain incompetent. It just does not work.
So, we are left with a few premises:
Almost anything can be solved
Whether something can or can not be solved is not a decision to be left to those on the business/program management side of things.
That leaves it up to us, lowly code monkeys, to find a way to properly communicate the state of affairs to those who can not (rightfully, actually) be bothered by the why and the why not. I think programmers can do a much better job of communicating the possible and the impossible. I also think I have found, by trial and error, over the years, hiking a thousand miles each way, through sleet and snow, a way to do just that, and do it right.
The thing is to sell an attitude.
No, that’s not right.
The thing is to sell an attitude that can easily be taken as condescending, smug, self-congratulating and asinine.
The thing is to sell an attitude that can easily be taken as condescending, smug, self-congratulating and asinine… without actuallly being condescending, smug, self-congratulatory or asinine. And I say this with love. I have seen sales pitches (as it were) for this exact same attitude go down faster than the Hindenburg on a crack binge.
What I aim to do here is give pointers for those that feel the way I do and do not know how to sell it. Here goes:
You are right.
That does not make you God.
Being an asshole never sold anything. Not even a 25 cent glass of lemonade.
People want you to be right. Be right. Allusions do not count.
You have to deliver. If you have to skunk it, skunk it…. but without anything to show, you are just blowing smoke. And stinky smoke at that.
To put it another way, if something is not going the way you want it to at your current place of employment:
Do better. Why would anyone listen to you unless you prove you have a better alternative?
No talk. No pontificating. “And then they…” should be banned from your vocabulary. Flip sides. You know what any manager, any manager at all, thinks when you say that? “Yeah they did, and…”? If you evoke that type of sentiment, you have already lost.
If this seems like “work”, or “too much”, or “pandering”, I pray you find a FOSS project that will pay you. If not, you are in trouble.
To get back to the original topic…
Yes, anything the ask you can be done. The question is how much effort, time and money it will take. The question to you, as a developer, is how you sell it. There is more to this story, but it will have to wait.
This turned out far more random than I thought. Oh well.