The Drug of Choice

February 25, 2008 – 7:01 pm
There is an addiction in the software development industry.  It is as real as any physiological dependency.  It is the obsession with “certainty” and extensive up front design and definition.   Some believe that, to a large extent, we can plan an entire software development project and execute to plan.  That we can deliver what we say we will deliver, when we say we will deliver it, within budget and quality objectives.  The Project Management Institute is a neighborhood pusher of this drug.    Inject yourself with this toxic drug and you detach yourself from reality.   Our dependency takes many forms.  Excessive analysis and requirements gathering, work breakdown structures, task breakdowns, resource assignment and management, PERT and Gantt charts.  Each promulgates the deception that we know, or can figure out, with reasonable certainty, what we are doing.   Worse, each takes a good amount of time to perform.  This chews up the market window on tasks ...

Figure, Ground, Focus

February 8, 2008 – 10:03 am
When a painter draws a portrait on a canvas, she not only defines the figure, but also implicitly defines the ground.  The ground is all but the figure itself.  In addition, the figure represents the foreground concept; the ground represents the less important contextual setting. Analogously, the software development process can be viewed as figure within ground.  How so? To answer this question, we reach back in time and across the disciplines to our cousins in lean manufacturing.  Pioneered by Taiichi Ohno and Shigeo Shingo of Toyota, Value Stream Mapping is a visualization tool used to identify, demonstrate, and decrease waste. In its simplest form, a value stream map is the decomposition of a software development or manufacturing process into each of its component steps.  Each step is then classed a value-add step or as waste.  By analogy, the process is the canvas, the figure correlates to the value-add steps, and the ...

The Theater of War

February 1, 2008 – 11:08 pm
How appropriate to begin a discussion of agile development with the analogy of war and the metaphor of theater! It is too easy to compare battlegrounds and warfare to new software development projects.   Many of the very same forces are at play in each.  Clouds of uncertainty and risk pervade each.  Advances in technology can radically alter the balance of power.  Flexibility and adaptability are necessary for survival.  Great skill is necessary to successfully prosecute the campaign.  Disinformation is a weapon in each endeavor.  Good intelligence can turn the tide.  Campaigns are begun with insufficient information.  Execution is of paramount importance.  I could go on, but I leave it to you to reap the value of extending this analogy. If the characteristics of warfare are similar to that of new software development, then perhaps we, in the software development community, can also learn from its accumulated knowledge.  After all, great minds have been ...

An Introduction - Symbolic representation (Part 4 of 4)

January 27, 2008 – 9:24 am
Please grant me one last word before I begin these chronicles in earnest.  This pertains to the style or approach I will take in my writing.  One of my favorite authors is a cognitive scientist name Douglas Hofstadter.  His writings often focus on what it means to think, reason and understand.  In his excellent book "Fluid Concepts and Creative Analogies", he discusses the importance of metaphor and analogy in learning.  I agree.  Everything we learn, we grasp because we are able to understand it in the context of knowledge we already possess.  Our minds are symbolic representational systems that work at the most basic level by this mechanism.  For example, when I say the word "dog", your mind conjures a representative image of a certain type of small furry creature.  If I say "cat" it fabricates a different, but in some ways similar, image.  If I were to describe to you an animal that I saw at a ...

An Introduction - The Agile Alternative (Part 3 of 4)

January 23, 2008 – 3:25 pm
Iterative development methodologies, commonly called Agile, seem to me to be a better way to develop new software.   There are many reasons why I think this is so.  I begin this blog to set out and explore those reasons with you.  But now is the time for grand overviews and not detailed justifications.  To that end, I will focus the next few paragraphs on some of the benefits of agile development without paying too much attention to supporting detail.  That detail with emerge from my stream of weekly blog postings.   No matter what you have heard, Agile is a disciplined approach to software development.  There are practices that may seem, at first blush, to be quite chaotic and undisciplined, but even those practices play a very fundamental role in the development cycle.  Most are designed specifically to accommodate rapid change.  If you hear a comment like: “Scrum is a justification for letting ...

An Introduction - Trials and Tribulations (Part 2 of 4)

January 23, 2008 – 3:25 pm
For quite some time now, I've been pressured to begin blogging. I resisted. Too much work. Writing is too hard. To now I've had a surfeit of reasons not to begin. But I've never demurred because I felt that I had nothing to contribute. Quite the contrary, I think about software development every day.The issues that interest me are organizational in nature. How does one organize teams of contributors, properly motivate them, facilitate working communication between them, and apply technology to build an efficient development process that turns out products of high quality. My journey to find the answer to this question began some ten years ago when I became a certified PMP (through the Project Management Institute). After ten years of architecting, engineering and building automated test systems I became disenchanted with testing as a means to quality. The works of Edwards Deming and Philip Crosby made an impression upon ...

An Introduction - Ego (Part 1 of 4)

January 23, 2008 – 3:24 pm
To begin, please allow me to get the absolute basics out of the way. My name is Scott W. Killen.  I live in Austin Texas.  I’ve been married for right at 30 years to the love of my life.  My kids are grown, productive, members of our society and both make me very proud.   I’ve been a software engineer, technical lead, architect, project manager, PMO director, and software development process engineer at one time or another during my career.  The curious can check out my resume.   I’ve spent the last several years of my life studying, promoting and implementing agile software development.  I’m a CSM and Founder and President of Agile Austin.   (to be continued)