Due to the role I play (and not only) I talk with developers a lot. Mostly co-workers, but not only. Some of them work in the same company or for the same client, but quite often I have an opportunity to chit-chat with people who I didn't know before, complete strangers who deal with completely different platforms, languages & who produce applications for markets that are more or less unknown to me. And surprisingly many of them express the same shared, common opinion:
"90% of developer's work is completely uninterested, boring & repetitive stuff; my everyday job feels like standing in front of conveyor belt."
Well, actually I can't really say that it applies for me (not even in the slightest), but if so many of them claim the same, there have to be at least some truth, right? And doesn't it sound like wasting their creative potential? But why? What are the reasons?
I have some of the most frequent situations listed below:
A. We're Factory
That's the actual idea your employer has for the development process:
- standardized, procedurized, uniformized, rutinized
- repeatable, foreseeable, splittable into well-defined, effort-equal units of work
- estimable, easy to plan & with a minimum risk in delivery
You have a template / script for everything, stuff you do everyday is so similar, that you barely have to think. This company deals with problems by increasing the "resource pool".
B. Design. Outsourced; Thinking. Outsourced.
You receive a very clear, detailed & descriptive documentation & you nothing without it:
- data structures in XLS files
- class definitions, state transitions - all in UML diagrams
- algorithms in DOC files (as pseudocode) etc.
What you do is to code what has been designed in docs. You've never seen an actual user or a business owner - this is all analysts' job (yes, the people who've made the design).
C. Interesting stuff is done @ Google
"Sorry, hombre, this is not Google or Facebook. We do software for a bank, insurance company of internet retail market. Can you think about anything interesting that happens in a company like that? Some calculations of questionable sense, attack of the cloned web forms & tons of validation procedures - this is what happens here."
You're reconciled to your faith - interesting stuff happens only in Silicon Valley. You're doomed to run with your wheelbarrow, godspeed.
D. "STFU, you're stupid"
You had a lot of ideas, you've noticed a lot of possible improvements that could make sense & add some actual value, but ...
- either you were told that there's no budget for that & you have to focus on actual functionality
- or this is not your role -> there's some "super-duper-extra-team" / "his-highness-architect" / "architecture-committee" or some other authority that will take care of that. Eventually. One day. Next available timeslot: approx. 2016. Fall 2016.
Get back to your cubicle.
E. It's the tech, it's always the tech
You'd like to do something innovating & interesting, but it's technology that prevents you from doing that:
- this pesky Z-- language doesn't support dependency injection
- the language you're using is not functional & everyone knows that you can't TDD when not using functional approach ...
- well, how can you be innovative if all in the end persists the data in ol' good, relational LegacyDB; if one they you could put your hands on NoSQL, object database - it would be a different kind of story
So yeah, QED, it's tech that makes your life miserable. Nothing can be done about it.
F. "Dunno how, dunno what, no-one told me, *cries*"
Well, you'd like to do something more interesting, more challenging, but ... you simply don't know how & what. No-one told you, no-one directed you, no-one guided you. You're so, so, so eager, but ... what can you do - your company / project / boss is not giving you the opportunity. They didn't build you a proper runway to start taking off with a blast. It's not your fault then, right?
Do these sound familiar? Is it why you've already given up? Are you convince that the only exciting stuff happens in the cloud and / or is done by the Open Source Heroes?
Part II can be find here.