JP my good friend and local philosopher first introduced me to this idea when he told me about two different greek words for time:Friday, October 10, 2008
Two Times
JP my good friend and local philosopher first introduced me to this idea when he told me about two different greek words for time:Thursday, August 7, 2008
Interactive Technical Retrospective
On Saturday I am going to Social Dev Camp Chicago. In the spirit of the rules of Bar Camp I have signed up for a slot on Saturday to facilitate an interactive technical retrospective. I confess I wanted to talk in the Business and Culture track and share my story about my business WeaveThePeople.com, however, all the slots were taken so I signed up in the Technical Track and now that I have, I am getting quite excited about my session. Also a little nervous and feeling unprepared but I think that's okay!“Technology is therefore no mere means. Technology is a way of revealing. If we give heed to this, then another whole realm for the essence of technology will open itself up to us. It is the realm of revealing, i.e, of truth.”
“Where and how does this revealing happen if it is no mere handiwork of man? We need not look far. We need only apprehend in an unbiased way....Whenever a man opens his eyes and ears, unlocks his heart, and gives himself over to meditating and striving, shaping and working, entreating and thanking, he finds himself everywhere already brought into the unconcealed.”
Thursday, July 24, 2008
What is an Effective Requirement?
Chris from Telelogic presented a Webinar on Writing Effective Requirements yesterday. I noticed around 500 attendees, looks like there are several of us asking: “What is an effective requirement?”In my role as a solution architect I have to ensure that the technical teams and the business teams share a vision of what is being built. From my entrepreneurial experience I recognize the value of a compelling vision, a focused mission and measureable success objectives. Assuming all these are in place we then begin to gather more specific requirements.
The picture here shows that is well worth the time to create quality requirements early in a waterfall project phase. Agile does reduce some the risks of unclear requirements by providing feedback earlier, however, the guidelines Chris shared for what makes a good requirement, apply to both creating a requirement document in waterfall process and a user story in an agile process.
Let’s look at an example of a good user requirement:
The internet user shall be able to access their current account balance in less than 5 seconds.
Here we define a user type: the internet user. The “to be verb” is prefixed with “shall” which has a consistent meaning of mandatory (along with "will" or "must"), “should” means optional, “may” is desirable. The positive end result is “access to their current account balance”. Measurable success criteria is “5 seconds”
This example meets these structural elements of a requirement:
- Complete Sentence
- States subject and predicate
- Subject is a user type
- Predicate is a condition, action or intended result - Consistent use of Language
- Specifies
- Desired goal or result (User requirement)
- Function (System requirement)
- Constraint (either) - Contains a success criterion or other measurable indication of the quality
- Correct - Technically and legally possible
- Complete - Expresses a whole idea or statement
- Clear - Unambiguous and not confusing
- Consistent - Not in conflict with other requirements
- Verifiable - It can be determined that the system meets the requirement
- Traceable - Uniquely identified and can be tracked
- Feasible - Can be accomplished within cost and schedule
- Modular - Can be changed without excessive impact
- Design-Free - Does not pose a specific solution on design
- Positive - Written in the affirmative, not the negative
The challenge is seek out the user type, end result and success measure in EVERY requirement defined. This is one of the challenges I face working in a waterfall process is to hold the team accountable to follow these guidelines without slowing down an already very time consuming phase. I confess, I am often eager to get into the design and code phase and I let these things slip. One of the reasons I am choosing to write this post is to present guidelines at the beginning of the phase. I hoping Eric who is stepping up to fill a business analyst role will find these useful – let me know!
I asked Chris at the end of the presentation what is the difference between a requirement and a user story. He replied that they are basically the same and that these guidelines apply to both. The guidelines are useful, I agree, specifically on how to write a requirement, a user story, however is not the same. A user story in an agile process emphasizes the role of conversation and testing, in addition to the written requirement.
As Mike Cohen reminds of this and highlights further differences in a great article, Advantages of User Stories for Requirements:
User stories are not just these small snippets of text. Each
user story is composed of three aspects:
Written description of the story, used for planning and as a reminder Conversations about the story that serve to flesh out the details of the story Tests that convey and document details that can be used to determine when a story is complete
I see several other major differences with what we do with these requirements in agile approach vs a waterfall process.
- Agile prioritizes all requirements; waterfall typically groups them by functionally
- Agile only elaborates requirements when they are about to be implemented; Waterfall completes requirement details in the requirements gathering phase
- Agile welcomes new and changing requirements; waterfall discourages changes using change control processes.
In conclusion, I think there are some useful guidelines here for writing effective requirements that can help our teams within our current waterfall process and I think the competency will continue to be valuable in writing user stories in an agile process.
Want more? Check out these other interesting links I found:
We don't need no Stinking Requirments, reminding us agile processes still need requirments (also nice link at the end on writing requirments)
The 1997 article by Steve McConnell with a narative around the picture above.
Wikipedia links: User Stories and Requirements
Sunday, July 20, 2008
Two Loves
This was originally posted on my struggles concerning authenticity blog. This is concept I continue to struggle to understand, I like the image and I never got around to adding the words! I will return to this post and write a more thoughtful post, however, here is something so we can, at least, begin a conversation.Wednesday, July 16, 2008
Agile Lessons from Google
Martin sent me this link to an excellent video of a retrospective on Google's Scrum implementation by Jeff Sutherland. I found it well worth an hour of my time to watch. It addressed several questions concerning agile technology that I have been asked:Eryn asked me a few weeks ago: "Who is using agile?" Google for one! Other companies that were referenced in this presentation included: Nokia; Ford; Microsoft; Yahoo; BellSouth and Toyota. When asked if this scaled down, Jeff also mentioned he had worked with several start-ups and three people are enough to form a team and benefit from Scrum. By the way Eryn, I spoke to some of the vendors at Better Software and discovered that Kelley Blue Book and Edmunds are using agile (some partners and competitors of us here at Cars.com). Some other companies that I know you are familiar with include Salesforce.com and Endeca.
I have been asking myself, “How can I convince the executive management team to change to agile?” A great line from the video (minute 35) that I think will speak to the executives is how Toyota achieved 4-times the productivity and 12-times the quality than their competitors by shortening the cycle time. To go faster you have to run at higher quality. By shortening the cycle time, you force things to work. In agile software development, the lesson here was to bring QA into the iteration – touching on another question I am being asked about how QA fits with agile.
“When is agile not needed?” This is a question I have heard from multiple people and there is an assumption tied to this question that our waterfall approach is still useful for some of our projects. Well Jeff talks to this one (minute 49:30), he responds by asking another question, “Is there any reason for the organization to change?” and if the answer is “no” he will say agile is not needed. If this is the case and he senses that there is no motivation for change and says “as long as you have no competition you will be fine, call me when you have a need.” This reminded me of the two questions that Kent Beck asked potential clients “Do you have a problem?” and “Do you want to fix it?”, if either of the answers was no, he walks away. I am asking the change question here at Cars.com and a far larger percentage of people are seeing a need for change, than when I asked a year ago. The other point that resonates with me is that introducing agile approaches leads to organizational change, it is not just another software process that can co-exist with waterfall in an unchanging organization.
Kate asked last week: "Can I publish an interview with someone who has succeeded in introducing agile techniques to an organization?" I was going to share some notes from a great conversation I had with Matt from Endeca who in summary introduced agile to Endeca initially to a team of 50 developers, then to the organization and 2 year later no-one wants to go back. I think this interview is even more insightful, partly because you can watch it yourself! Here are some of the points from the video that resonated with me about how organizations transform to agile successfully.
Mark at Google started by asking the developers what their number one problem was, the answer: "Missing our dates." In response to addressing this problem (minute 22 on the video), and this problem only, burndown charts (this is the picture above) that some agile teams were using was introduced. The key point here is that the biggest problem was addressed, if something simple and easy is used to introduce agile you will not get the benefits. Mark knew this would not fix all the problems but would surface other problems, which it did and this naturally led to other agile practices being introduced when needed.
At Yahoo a single engineer went to Scrum training, started using some agile techniques on the Avatar project he was working on, the word spread which led to a 45 minute pitch to the whole management team and Yahoo went agile. The message here is that it can be a ground up initiative, the practices have a viral quality and unless it is squashed by management it can transform whole organizations, which is actually required before the true benefits can be realized.
Thursday, July 10, 2008
A Leader's Model for Change
I am having several conversations at Cars.com about changing our IT processes from waterfall to agile. Bill, one of the senior leaders, asked me how he and the executive team provide direction in a more collaborative agile culture. One of the keys to how the leaders provide direction is in a shift of attention from actions and structure to identity and tone, the inner two aspects of the flame model.Several companies have spent large sums of money bringing in consulting companies to address process improvements, only to discover after years have past and millions of dollars spent, the same problems exist. An explanation for this is provided by considering the flame model. This model is used in Dialogos' Leadership for Collective Intelligence program and is a varient of their Dynamics For System Intervention model.
ACTIONS: The top level of the flame is the most visible, what are people doing and clearly an essential focus in leading a successful organization. Easy to measure, easy to identify problems, easy to add a Next Actions agenda item at the end of meetings.
STRUCTRE: For sustainable change, the typical next place to focus is to improve the structure, the procedures, and the process. Working in IT, I have seen many process changes and am currently proposing we change to an agile process. I know that without changing the tone and identity of the IT department we will not succeed in bringing about sustainable change.
TONE: This is quality of the energy in an organization, the atmosphere, the mood. One way I feel it today is in the reactive fire fighting modes IT operates in – this actually fuels action but not in a sustainable way as it is often followed by burn out. Cars.com introduced a new branding message for our super bowl commercial “Confidence Comes Standard” – this is a tonal message. I would love to change the tone of IT to one of relaxed confidence.
IDENTITY: This is the core of the flame. When leaders of organizations focus on the core vision, mission and how they identify themselves, they can then set the desired tone, through authentic communications and actions. From this place creating structures and associated actions flow easily. All the successful entrepreneurial companies I meet in Chicago have a very well defined identity; examples that spring to mind are Threadless and Feedburner.
The agile approach does include some tonal considerations; specifically there is an atmosphere of collaboration and respect between IT development teams and the business product owner teams. For a change to an agile approach to be successful at Cars.com however we will need the support of our executive leaders to change how the company identifies IT and this may even change the identity of the company.
For leaders to use this model in introducing change, it is helpful to go down the flame in diagnosing the current problems, then up the flame to introduce the desired furture state.

Tuesday, June 24, 2008
Two Worlds

Mandorla is the name of this symbol of the two intersecting circles. The word Mandorla means "almond" the shape in the middle, which I have colored green. It is the intersection of two worlds:
- material and spiritual
- time and timeless
- conscious and unconscious
- divine and human
- it holds the tension of opposites.

