“If you don’t know where you are going, you might wind up someplace else.”
This blog is intended to be a place for me to combine my passion in Computer Science with my experiences in military operations. In order to kick this off properly, I’ll begin with one of the key principles of military planning: all operations must stem for a clear, concise mission statement. According to Joint Publication 5-0, the mission statement is developed following analysis of the problem and should outline the who, what, when, where, and why along with the essential tasks that must be performed. This is similar to a “Commander’s Intent”. During the chao and fever-pitch of battle, every Sailor, Soldier, Airmen, and Marine should be able to have a clear understanding of what it is they need to be doing in order to meet the Commander’s Intent for the Operation.
The beauty of a clear mission statement, is that it keeps you honest. I’ve participated in numerous joint planning meeting where the mission statement gets printed posted on the bulkhead. Anytime someone felt we were running down a rabbit hole and losing sight on the “main thing” it was very easy to point to the mission statement and say “is any of this helping us meet our mission statement?” If not, then we table the issue and get back on track. The same concept applies to coding. It is very easy to find yourself down the track of trying to make a method work at all costs. I’ve waste hours trying to get a function to work, even commenting out other sections of previously useful code, only to end up no closer to my goal. By having a mission statement to pull me back to reality, I find I have a check that encourages me to pull back out and look for another solution that’ll get me to my goal. All that being said, this Blog needs a mission statement. I think this covers my intent:
Mission Statement: Using this blog, I will detail, with examples and a bit of levity, application of military organizational processes to the field of Software Development in order to highlight practices for framing, dividing, and conquering complex tasks.