All Articles

Samsara on Software Development

image One of the books that touched me deeply was "Siddhartha", a novel written by Herman Hesse . I wish I had been aware of this book earlier in my life. What motivates me to write this post, is a concept that this book has introduced me into: Samsara.

Briefly, at some point of his life, around 40, Siddhartha believed he had fallen into a state of Samsara, which in Sanskrit (the primary liturgical language of Hinduism) means ignorance and confusion. Siddhartha, an extremely spiritual person in his childhood, was becoming an ordinary person in a gradual way. He became materialistic and ostentatious, practicing vices like drinking, gambling, etc.. He was obfuscating and denying his spirituality with mundane activities. Throughout all these years of "success" with signs of great wealth, the life of Siddhartha was in fact shrinking in terms of meaning. One day, Siddhartha gets tired of his life, one that he consiedred as empty and meaningless, and decides to return to a path of spirituality. It's this state of confusion that Siddhartha defines as Samsara.

In terms of software development, I believe we (as an industry) are also in a Samsara. At least for me, sometimes I am really confused with all the technologies I can use, and with the speed that things changes. We, as developers, love technology, and tend to wish to experience the ultimate edge technology in our project. The market players themselves, such as companies that sell software for developers or open source communities, send us updates and new products in very short time cycles. And we, as lovers of technology, are continually pursuing them. I understand that this is a way to influence the the market in terms of supply, which otherwise would stagnate. But the real question I want to ask is: are we really producing better software than 20 years ago? All this volatility and “wealth” in our development toolbox allows us to actually produce better software? Maybe not! Eventually we are producing software that is more complex, but is this all complexity really necessary?

I think that we have lost the north by amusing ourselves with technological onanistic practices, which don’t contribute to the improvement of software development. Undoubtedly its really cool to use X or Y, and at the end of day we can eventually add a few more skills on LinkedIn profile. “Yeah, I am really geek!” But the thing is, why do we write software? Yes, Why we do write software? We (should) write software to achieve a particular goal, typically the resolution of a problem for those who will use it. And one thing is certain, if someone pays us to write software, that same person wishes to get their money back (Return on Investment) in the form of value. Typically, he/she doesn't care about the technology stack used to developed it. Instead, we should be concerned in solving their problem(s), and ensuring that what we produce has a low maintenance cost, and a quick resolution time on error situations. With this in mind, I agree with Jack Dorsey, founder of Twitter and Square, who wrote a few weeks ago a post “Let’s reconsider our users”, where he mentions 

“ all of our work is in service of our customers. Period.”

He goes further, and he decide to abandon the term ‘User’, replacing it everywhere in Square by the term “Customer”.

Many times,we throw more technology into to the solution, just because, or just because the community says so, or because I'm a fantastic geek. The truth is: this doesn’t solves anything, zero, nada, zilch. Worse: it's one more technology that will have to be maintained and learned.

And with all this technological Samsara, we are dazzled, and lose focus from our goal: to solve the customer problem.

But do not worry, I'm sure that one more month, some company will  release a new IDE  or a new Framework to the market that will solve all of our problems.....

Let's get more focused, and nominate yourself as a "Problem Solver".

Published Nov 26, 2012

Cloud Solutions and Software Engineer. Married and father of two sons. Obsessed to be a continuous learner.