I'm a big fan of Agile software development. I love pair programming. I feel uncomfortable writing new code without first having a failing test. The continuous integration server is like the brother I never had. And I feed on the buzz of a lively and collaborative team room filled with big charts, card walls, pairing stations, and customers guiding my every move.
But why does this way of working -- a way that frustrates or even infuriates many others -- strike such a chord of harmony with me. Am I special? Gifted in some way or another?
And I answer: Nope. Not gifted.
I have an idea though. This realization washed over me slowly while I was sitting at Sunday Mass.
It's my faith.
Agile software development is easy, meaningful, and real for me because it harmonizes with my faith and, in turn, the way I try to live my life each day.
Below are a few ways I've seen this congruence manifest itself:
Iterative
Each iteration produces something useful, and later iterations build on the work of previous iterations to produce a better result.
As a Catholic leaving the church each week after Holy Mass I am releasing a new version of me; each week's version aims to be a bit better than the previous.
As a Catholic leaving the church each week after Holy Mass I am releasing a new version of me; each week's version aims to be a bit better than the previous.
Constant Improvement
Teams will change process, tools, and practice in order to get better.
A priest's homily each week will usually include an invitation to make some change in my life in order to be more Christ-like; in order to be a better person.
A priest's homily each week will usually include an invitation to make some change in my life in order to be more Christ-like; in order to be a better person.
Respect of the Past
As software craftsmen we carry with us an understanding of our origins. The first breath of our founding document reminds us that we are "uncovering better ways of developing software". It is not the only way; it is not the way we all must tread; it is a discovery of an improvement. Healthy discussion continues today among our thought-leaders on the appropriate mix or influence that XP, Scrum, Lean, Kanban and others have on how we develop software.
The Catholic Church enjoys a bit longer history than Agile software development. But that history is speckled with both dark and bright spots. Right now -- Easter season -- we tend to look back to remember and appreciate where that ancestral journey has taken us. And this history fuels the deep philosophical and theological dialogue that will drive us forward.
The Catholic Church enjoys a bit longer history than Agile software development. But that history is speckled with both dark and bright spots. Right now -- Easter season -- we tend to look back to remember and appreciate where that ancestral journey has taken us. And this history fuels the deep philosophical and theological dialogue that will drive us forward.
Value Oriented
The measure of our work is based on the value it provides to our customer. What good is a perfect product nobody uses?In my faith I focus each day on who I am right now and who I intend to become. The measure of my life is summed up in the person I am right now not in isolation but in relation to all those with whom I live, work, play, and relate.
Retrospective
At the end of each development iteration we stop to reflect on what happened with an intense focus on improvement. We systematically root out inefficiency and waste.Likewise at Holy Mass I reflect on my own faults, identifying the places where I hurt myself or others and the times I chose to turn away from my commitments to God. And through grace afforded me by the Holy Spirit I work (or am challenged by those around me) to eliminate the temptations that lead me away from following God.
----
But that's not all! In my next post I'll lay out a few more intersections -- larger leaps perhaps -- between my faith and how I choose to work in software, and I'll try to clarify why this was an interesting insight for me.
Do you find balance by working in a way that is in-tune with who you are or what you believe? Or do you segment belief systems between work and non-work without struggle or conflict? Either way I'd love your feedback, so leave a comment below.