Monday, April 9, 2012

Losing my Agile

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.


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.


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. 


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.

8 comments:

  1. Good insights Hoodja, cool to read into how you connect Faith + Software Development. :)

    ReplyDelete
  2. Jim - I like the post. I agree that it's important to remember that not all problems are solved and that discussion continues. For example, it wasn't all that long ago that folks were debating checked vs unchecked expressions in Java. Could we have been part of that? Could we have contributed in a useful way?

    ReplyDelete
    Replies
    1. Yes! That is a nice concrete example of how our careers are only a small part of the craft of software development; much like our faith lives are a tiny spec on the continuum of the entire history of our faith community.

      Delete
  3. It's a pretty good connection for us Secular Humanists, too.

    Honesty, integrity, and facing up to difficult truths are all tied in to this way of working for me. I don't think that the practices enforce the principles, but they do support them. You can always game your test coverage metrics, for instance, but if you simply use them as a guide to whether or not you need to improve how you test, they're even more valuable.

    ReplyDelete
    Replies
    1. Hey Erik,

      When I started this post I was worried about alienating folks. My purpose is not to exclude Secular Humanists (or any belief system) but instead to speak from my own experience. But you're right - the ideas aren't *exclusive* to my way of being.

      And to your point, Agile really rests on the ideas of honorable, trustworthy people who *want* to be courageous and good (whether thats how they end up behaving all the time). Reminds me of the prayer for discernment (http://goo.gl/dcJ3t) :)

      Delete
  4. Wonderful blog & good post.Its really helpful for me, awaiting for more new post. Keep Blogging!








    Agile Software Development

    ReplyDelete
  5. I like this post a lot. It's gotten me thinking.

    ReplyDelete