Over a million developers have joined DZone.

No One Has Time to Tell You How to Do Your Job

People have a very immediate and visceral reaction to wrongness. Next time you have the opportunity to critique someone else's work, take a moment to observe just how natural and subconscious your perception of wrongness is.

· Agile Zone

Learn more about how DevOps teams must adopt a more agile development process, working in parallel instead of waiting on other teams to finish their components or for resources to become available, brought to you in partnership with CA Technologies.

Casper’s (yes, that's me) first law of enterprise states that:

No one has time to tell you how to do your job. Everyone will make time to tell you how you’ve done your job wrong.

We’re born into this world with a very innate sense of when things are wrong. “What do you mean I have to breathe my own air?!” is quickly followed by much screaming in protest at this sense of wrongness. It’s the first in a line of protests that will extend long into your working career.

If you ask people to tell you how something should be done, you’ll often get vague and half baked answers. The only way to be able to provide a complete answer is to have already solved the problem, and how many times do you have the luxury of asking the advice of someone who has had first hand experience of exactly the problem you are trying to solve? In my experience, such mentors are few and far between.

Yet if you ask someone to tell you if something was done wrong, they will have no trouble pointing to the many and various flaws in your implementation. I don’t like the border applied to this button. Where is the unit test for this function? Why does the application force me to click through this dialog when all I want to do is [x]? This documentation makes no sense.

People have a very immediate and visceral reaction to wrongness. Next time you have the opportunity to critique someone else's work, take a moment to observe just how natural and subconscious your perception of wrongness is.

The disparity between the significant amount of effort it takes to create something, and the effortlessness of the criticisms that are then leveled at that creation, is a point of contention for developers. To have spent weeks developing a beautiful API, designing a redundant and scalable infrastructure and validating the whole system with comprehensive unit, integration and security tests only to have that guy from marketing criticise the choice of fonts displayed in the UI after using the application for 30 seconds is incredibly irritating.

Unfortunately one of the reasons why it is so irritating is because it is probably true. In fact, a lack of appreciation for just how much work it took to get to the point of even displaying a UI is what makes the wrongness of the font selection so apparent.

One of the hardest aspects of my career as a software developer has been to accept Casper’s first law of the enterprise, and find ways to embrace it.

Minimum viable products (MVPs) provide an excellent way to capitalize on people’s effortless ability to identify wrongness. I don’t feel so bad about people ripping my project to shreds if my only goal was to create a MVP that I could put up for review.

Thinking of comments made by others as coming from some kind of automated criticism robot is another useful mental trick. I admit this sounds strange, but as a developer I am quite accustomed to a machine complaining at me all day long. Actually, I have come to rely on it (oh how I miss those compiler error messages when trying to quickly punch out some JavaScript). So when I see a code review comment that says “the use of whitespace in this function is terrible”, I trick myself into thinking that this was just the programmed response of an automated system.

As a side note, I’m sure this mental trick is actually a recognised physiological phenomenon, but I have never found it described anywhere. If you know what this phenomenon is called, please leave a comment.

Finally, I’m slowing coming to realise that the only person invested in the notion of my being an infallible, god like developer is me, and that investment is only bringing me misery. As I work on increasingly complex projects, I am inevitably exposed to more people who will always be able to effortlessly call out something that I did wrong. Accepting this truth means that I can spend less time worrying about how those criticisms undermine my perception myself as a developer, and get on with the more enjoyable task of conquering the world one line of code at a time.

Accepting and embracing criticism is not easy, but ultimately any environment that does will produce better results faster. But it is as much a personal transformation as it is a corporate culture shift.

So the next time someone rips into your creation, visualise them as a mindless robot flailing their arms about saying “danger, danger”, don’t let it undermine the good work you know you did, and accept that you’ll never be free of criticism, so you might as well take it on board and use it to ensure that your next creation is just that little bit better.

Discover the warning signs of DevOps Dysfunction and learn how to get back on the right track, brought to you in partnership with CA Technologies.


The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}