Do you feel guilty when you write code without tests, without test-driven-design? Are you shamed when only you can read your code, only you understand how a feature is implemented? Do you have a nagging feeling as you over-engineer a solution, when you find yourself writing a framework?
Or do you feel contented when you implement a feature with clean code, peaceful when you refactor the smelly? Are you quietly happy when your team finds it easy to read and extend your work, when you’re an anti-hero?
These feelings are driven by Developer Conscience, an inner feeling of right and wrong that drives our work.
Conscience derives from the latin word conscientia which means “with knowledge”. Religions typically believe that the “conscience [is]…linked to a morality inherent in all humans, to a to a beneficent universe and/or to divinity”. Seculars believe that our conscience is part of our genetic make-up, imprinted within us as part of our culture.
In Hindu, conscience is the…knowledge and understanding a soul aquires as a consequence of completion of karma over many lifetimes.
Buddha links…conscience to a pure heart and a calm, well-directed mind
As developers we can’t look towards divinity for direction, our conscience isn’t part of our DNA. Instead we read the books, blogs and tweets of people we respect. We attend community events where we talk to our peers. If we’re lucky we get to work with them.
Confucianism indicates that conscience….assists humans to follow The Way (Tao)…a mode of life for goodness and harmony
In Catholicism conscience is “a judgement of reason which at the appropriate moment enjoins [a person] to do good and to avoid evil”
Through continuous improvement we form principles, values and practices that are the basis of our professionalism and integrity. They help us write code, interact with our users, delivery value to our customers.