You can find part I here.

Let's sync the summary of part I:

  1. your job (as a programmer) sucks
  2. but we've got the culprits: management, technology, users, management & management

There's a nice summary-word for that: it's called victimship. You're looking for cheap excuses, because finding an obstacles removes your guilty & justifies stopping trying. I'm not suggesting "Lone Developer vs The World" approach, but honestly:

In a "Factory"...

... you can re-shape the mundane reality for your own advantage quite easily. The tendency to uniformize the manual work can be easily turned into automating the uniformized work. Repeatable, templated activities are exactly the kind of work that easily submits to automation efforts. Either by:

  • code generation
  • using template engines
  • excluding shared kernels / services
  • or even simple macro'ing

a smart developer with a lazy-enough attitude :) will use this techniques to increase development speed & get rid of dull stuff.

If you think that banking / insurance / retail is boring...

... you are partially right. If you do it "the old way", just by copying "the best practices", using the "xyz-in-the-box" model, then it may be very boring. In such case, business executives will feel that IT doesn't distinguish your company in any way, so the path to innovation leads somewhere else -> IT will not be the perceived as a "game-changer". It happens quite frequently & IT people are among the ones to be blamed (obviously, it's not 100% their fault usually, but still) - why them? Because they (architects, IT managers, experienced developers) are the ones supposed to present the capabilities of technology & show its usefulness in business context!

Yes, we are all salesmen - technology is not meant to be just cool in a geeky way. It's supposed to serve reacing some business goals, but don't expect business people arrange the puzzle on their own. Know the palette of options, be up-to-date & KEEP LISTENING / WATCHING for an opportunity to make a difference.

The shadow of "Super-Team"...

... is the best place to assemble the proper assault to take their title over :) It's always better to ask for forgiveness than for permission - start improving on your own, step-by-step, gradually, during the on-going project, as part of refactoring activities. Just make sure that:

  • you're not carving something that's totally perpendicular to the official direction of change
  • you're personally convinced that your ideas make sense (yes, consulting them with some knowledgeable peers is strongly adviced)

It may sound rebelious (hey, did I just ask you to do something hidden from your supervisors? hellyeah), but it's nothing new. In the best IT project management book ever ("Peopleware" by T. DeMarco & T.Lister) it's presented as "Skunkworks projects" - and don't get fooled by the name, the perception on them is clearly positive.

If you perceive Tech as a key problem...

... sadly I don't have one simple answer for you. As Techs vary, options for them vary even more. For instance: if you're stuck with something that's practically dead for ages - like SmallTalk, Pascal or COBOL - the community is very limited & you're basically limited to stuff you make yourself or some white-bearded legacy. But in many cases it's not that bad - you can do magic even with something that does not really belong to "bleeding edge" category:

  • either by bridging with other Tech, ...
  • by creatively using what you have, ...
  • ... or just by creating a new "beachhead" (new opening, with a new technology, in a separated module / application)

Sh*t in, sh*t out

If your role is boring & unimaginative by design - for instance you're expected to turn pseudocode in DOC to something that returns values from XLS file - then I have just one simple advice. Leave. Now. There is no hope.


My point is very basic: it's really quite easy to end-up endlessly shaping the same looking windows forms. Ctrl+C, Ctrl-V. But the truth is that if you're motivated, full of ideas & have the understanding of both technology & business domain you work for, you can seriously impact the reality:

  1. Statement that the only interesting stuff happens in Silicon Valley is bullshit. You can create fascinating software in fascinating way wherever, for whatever business domain - but for that you need skill, imagination & understanding of business domain.

  2. Not doing anything because you're not encouraged / empowered / trained is a cheap excuse. Initiatives with a potential of changing the world can be invented & started by anyone, not just top management people.

Regardless of whether you like it or not - whether your job is boring or not depends mostly on you.