Software Creation Mystery - http://softwarecreation.org

Three Spirits in The Soul of a Software Developer

I noticed that three spirits are fighting in the soul of a software developer – Great Artist, Reliable Worker and Selfish Pragmatist.

Great Artist

If you hear a voice within you say, ‘You cannot paint,’ then by all means paint, and that voice will be silenced. – Vincent van Gogh

The first spirit is a Great Artist who pushes our fellow programmer to work on challenging tasks, invent new approaches and seek for self realization. The spirit gives power and desire to create state of art solutions and move forward with learning and practice. The Great Artist spirit is behind the best software; it makes the developer to think out of box, strive for beautiful code and forget everything outside the problem. It is powerful spirit but dangerous for ordinary business – there is no predictability and assurance that developer will remember what client really needs. The developer driven by this spirit tend to reject mediocre, but good enough solutions, will do stuff his own way and go far beyond what is necessary. This developer has zero tolerance to poor code and will refactor most important pieces of code even night before important demo… after testers go home to sleep.

Reliable Worker

No man is an island, entire of itself; every man is a piece of the continent. – John Donne

The second spirit is a Reliable Worker who puts interests of the team, company and client on the first place. The developer driven by this spirit completely dedicates himself to success of the project and Greater Good. The Reliable Worker spirit  suppresses creativity and code that is not sanctioned by management and could fail. The developer will stay late to meet deadlines and fix embarrassing bugs; he will test after testers and verify installation after administrators.This altruistic spirit makes a developer focused, accountable and disciplined citizen of the company, but sometimes cause stress, uneasiness and feeling of wasted talent.  The danger is that  Reliable Worker spirit can evaporate fast if a company don’t care about developer’s hard work and sacrifices.

Selfish Pragmatist

Life is what happens to you while you’re busy making other plans. – John Lennon

The spirit of Selfish Pragmatist is concerned about personal interests, financial well being, job security and career growth. This spirit forces a developer to accept shit and concentrate mostly on paycheck and managers recognition. The Selfish Pragmatist spirit becomes stronger with age as family and personal matters take over dreams of building great software and day-to-day problems kick out illusions about dedication and loyalty at work. Sometimes the developer influenced by this spirit starts to focus on stuff that is more beneficial for personal growth, produce tangled code for better job security and increase complexity for longer contacts or even work on own side projects, business or simply waste time on Internet. This spirit is fed by natural desire to achieve personal goals, secure own future and have life outside work. The danger of this spirit is that the developer could become counter-productive and don’t care about quality and long-term success of the project and company.

Each of spirits have positive effects: Great Artist provides creative power, Reliable Worker encourage discipline and focus on results and Selfish Pragmatist ability to meet personal interests. But there are also side effects:  Great Artist overdoes and misses real needs, Reliable Worker causes burn down and fear of change and Selfish Pragmatist downplays company and client best interests.

These spirits tear on pieces many poor developer’s souls and prevent peace in their minds. What is usual result of this battle of spirits?  I saw many developers who end up with one spirit rule (unfortunately often with Selfish Pragmatist) and no longer have much struggle. Other developers will flip between spirits depending on circumstances: some companies spark creative Great Artist and some provoke defensive Selfish Pragmatist.

The existence of the spirits is my subjective observation and theory, but it helps to explain many interesting phenomena in life of software teams. So, I have few questions to you, my dear reader.

Do you agree that these spirits exist?  Can you handle and balance them well? Did I miss any other important spirit or force in the soul of the software developer?

AddThis Social Bookmark Button AddThis Feed Button


Comments

Interesting.

I recognize myself as the reliable worker, though I have ventured into great artistry once or twice. I agree, being the reliable worker causes problems, especially when working for technologically backwards people. But when working with other programmers, I find it works fairly well. Great artistry can also be good, but maybe only in personal projects.

Comment by MarkTraceur | March 22, 2011 10:44 am

agreed so far, but if it comes to behaviour: which spirit drives people to answer questions in forums, provide examples and solutions, tutorials, how2s free-of-charge?

and if they do this for commercial products: are they just useful fools?

Comment by Uli Merkel | March 23, 2011 5:27 am

Definitely the spirits exist but I think trying to tackle this within the realm of software alone neglects the ecosystem at play here.

The soul of the Software Developer is just a microcosm for the soul of humanity.

We collectively (as developers, employees, governments, corporations, and a global community) are acting with reckless abandon and utter disregard for the greater good, at every level.

Dollars and cents, a figment of our imagination, is literally destroying our biosphere and destroying us in the process.

I think the infinitely more important question here is not how to place the interest of the client/company ahead of yourself, but how to use software to re-position the very survival of humanity ahead of all of this noise.

Comment by Nariman | March 24, 2011 11:32 am

@Uli,

>>> which spirit drives people to answer questions in forums, provide examples and solutions, tutorials, how2s free-of-charge?

Very interesting question! I believe both spirits are driving – Great Artist and Reliable Worker. Great Artist is using these channels to express himself and achieve recognition and Reliable Worker is seeing them as opportunity to serve large community of people (that is more rewarding than to serve individual company).

>>> and if they do this for commercial products: are they just useful fools?

I don’t think so, because they still contribute their expertise and help community with these products.

@Nariman,

>>> The soul of the Software Developer is just a microcosm for the soul of humanity.

What a global perspective! You are right, these spirits probably reflect developer’s attitude to the Big World issues – confrontation between Reliable Worker (Responsible Citizen of the World) and Selfish Pragmatist spirits inside one person. However, both are needed – pragmatists often solve problems more efficiently that altruists…

Thanks for your comments,
Andriy

Comment by Andriy Solovey | March 24, 2011 12:04 pm

[…] – ???? ?????http://www.jobbole.com/entry.php/618 ???Andriy Solovey ??????? ??????? ????? […]

Pingback by ????????????? « Gerry Blog | April 12, 2011 8:50 pm

Tre interesa artikolo!
????? ?????????? ???????!
Very interesting article!

Comment by palaman | May 11, 2011 3:36 pm

I read softwarecreation.org via google translate – look after up with the good stuff !

??????

Comment by bellaon | May 11, 2011 5:11 pm

This blog have little value without you and your comments, thoughts and discussions. Please, leave your comments. You are welcome to debate and criticize any idea, but, please, don't attack other people. Thanks for your contribution!

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Subscribe without commenting

Software Creation Mystery - http://softwarecreation.org
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License .