Thursday, September 5, 2013

God, the Product Owner

Who is your master - Sin, or Jesus?
I James, am a slave of God and the Master Jesus, writing to the twelve tribes scattered to Kingdom Come: Hello! Consider it a sheer gift, friends, when tests and challenges come at you from all sides. You know that under pressure, your faith-life is forced into the open and shows its true colors. So don’t try to get out of anything prematurely. Let it do its work so you become mature and well-developed, not deficient in any way. James 1:1-7 – The Message 
In a software development environment, the role of Product Owner has an important job to do.  There is something called a product backlog - which I will touch on very briefly here - that the Product Owner is responsible for adding items to, removing items from, and prioritizing items in order of importance for working on.  Consider this as the master to-do list, the one that the entire team looks to for work to do, put in order with the most important things on top.

God is the product owner.  God informs us of the most important things in our lives that He wants from His team. During prayers, and during other times, it is up to us as His servants to ensure we're working on the right things in the backlog.  Thankfully, we have an open view of His backlog - it is not a secret for us, He makes it very clear what He wants, and when He wants it.

So, as I sit here considering the concept of a God-Product Backlog, I wonder what the first thing on my list is, in terms of things that are not yet on my "in progress" list. I think as Christians it is not enough for us to be content with what we're already doing, but also to look for things that we could be doing in the future.  God's product is "Humanity", and His message must be spread to all of His creation about His Son, our Savior.

So, I recently took something off of the backlog, and it's now in progress.  Actually, the thing that's in progress is a pretty discrete item - explaining why I see God as the Product Owner.  If the task had a title, it would be "Write a Blog Post About God as Product Owner".  It's description would be, well, you're reading it's description right now.  It has high priority, at least I think it does, because I feel inspired by the Holy Spirit to write about it.  In fact, all of this writing is coming to me easily, mostly because He is in control of it, and I know the Agile process well enough to help Him for my words.

Seeing as I've been inspired to talk about the Agile God, the interesting thing about an Agile backlog is that it's not static.  At any given time, the Product Owner can evaluate the product backlog items, prioritize it, add items to it, and remove items from it. It's also up to the Product Owner to ensure that when the team, or the scrum master, have questions or concerns that they are managed as swiftly as possible.  If the action item requires it, the team and any interested members can leave notes on the action item for the active team member to consider.  Interestingly enough, all of our product backlog items also have notes in them - in the form of The Bible.  Sure, we could rely on other members of our team to provide us with additional notes, but to hear His message for Your life, first, pray, then devote time to The Bible.  It's helped provide me with clarity about this idea of Agile God.

I've not yet really expanded my horizons for the "God" part of the Agile God concept, outside of using The Bible for inspiration on how to tie my ideas about agile development into my faith.  Of course I would certainly welcome any and all feedback as I start this journey with God and Christ, as my understanding of both God and Agile development can certainly gain more subject matter expertise.  I'd hardly consider myself a prime authority on either subject.  That said - I'll go back to the product backlog, and how God is in control of the Life product backlog.

Challenges, triumphs, defeats, war, peace, and all of the things that God has declared have their time and place, have been put into His backlog.  Who knows, this conflict with Syria is floating around in His backlog, too.  I don't know how He has prioritized military conflict in this Syria situation, and I know that God would not advocate bloodshed.  However, He knows why this Syrian issue is happening, and He knows the best way for it to better serve His plans.  Hopefully the people involved in the critical decision making process are praying about their questions related to their "in progress" faith tasks.  Hopefully they've gone to The Bible to find His comments about what is happening.  And, hopefully we, the people of God, have enough of a voice to have it heard in the places where it needs.  For, another concept of Product development is team size.  The ideal team size, as studied for optimization, sits at or around 7.  Which is interesting, 7 is a very important biblical number.

There's no possible way that in a nation of millions that we can all assume that one person can be truly held accountable for all of our deeds. Jesus was the Son of Man. No human can make that claim.  We need to start taking the time to look at Product backlog of life and making sure that we're delivering the most valuable items to God, as He has called us to do.  And, we also need to rely on those that are absolutely closest to us to help keep us accountable to Him.  And by closest, I mean the people that know every little thing your life in Faith includes.

I don't know what is in your backlog. I don't even know yet everything that is in mine - probably because it's not been fully formed yet, neither has yours.  I do know that I can trust the people I'm closest to to keep me accountable for the backlog items I choose to work on.  I'm doing my best to open up my life to the people closest to me for inspection and constructive criticism.  It's really the best way to prove that I am worthy of calling myself a Christian Man.

I think I'll focus next on the second part of the trinity, Jesus, who I see as the Scrum Master.  As a brief snippet, the Scrum Master is the liaison between the Product Owner and Team - removing impediments that get in the way.  Here's a hint - our impediments are called Sin. We all have them, we all do it, Jesus makes sure that God understands that, while these things are not the right things for us to be working on, He will help us course correct, because He has taken responsibility for our Sins.  Thank God and Jesus for that.  I'd hate to be on any development team that didn't have a good working relationship with the Product Owner.

Sunday, September 1, 2013

God for Geeks

Simple Scrum Diagram
I think it helps people have a good relationship with God if they create a personal metaphor that gives them a more direct perspective on His work, and His plan.  In the case of most of the faithful I know, they also happen to be passionate about writing computer software.  One of them even gave me a great idea for helping me shape my personal understanding of God a little better, which could easily turn into multiple blog posts spanning several paragraphs.  See, something I'm extremely passionate about is the concept of agile software development, specifically in the desire of moving towards continuous delivery.

I was having a faith conversation regarding predestination and free will with a fellow developer who I'm also working on agile practices with, and came to an interesting theory.  God, to me, is like the ultimate agile developer - He definitely gave each and every one of us the free will to work on his Life product however we so choose, and while he has every single epic perfectly planned, the sprints that we go through do not get planned until it's implementation time.  He even has a great backlog of user stories that he has certain individuals assigned to.

I italicized some terms that are part of the concept of agile development, I can, and will, write about God as a Product Owner (another one of those buzzwords), about how Life is a product, not a project - also an important distinction - and all kinds of other things that combine agile development theory with my strongly increasing faith.  I don't know yet how long this blog series will carry me - I'm not really doing it for me, I'm doing it because He assigned this user story to me, and He wants me to carry it out.  I'm going to do my best to move out of His way, and let Him work through me and my understanding of software development to explain His purpose for me, and for Life.  I don't know yet exactly where this journey will take me, nor do I know all of the technical implementation details of the user story.  All I know is that the final result will be His story, told through the eyes of a developer that loves Agile practices.

I'm not sure yet what a good starting point would be.  Scrum is a simple concept, with so many complex and interacting components that each one could certainly grab my attention for the length of one, or possibly many, blog posts.  I guess I just need to move out of the way and let Him give me some guidance on where to start first, seeing as He is the Product Owner (He owns Life) and His Son is the ultimate Scrum Master (Jesus removed Sin as the ultimate impediment).  Maybe that's a good place to start - explaining what a Scrum Master is, or what a Product Owner is, and explaining why I see God as the Product Owner of Life.  I'll pray about it a little bit, but I've been inspired by the Holy Spirit to keep working on this - and while He is patient, He also has a reason for calling people to action.  Thank God for his inspirations!