Sunday, December 30, 2007

Not more info, but the right info

Here some dude says this: "This takes me back to Herbert Simon’s stupid idea that all we need is more information. What? Now, he’s dead we have all the information we could possibly get our hands on and the world is no better off! In fact, the more information we get the worse things become."


Sunday, December 16, 2007

The shortest distance

Is this totally Lean? You don't know what "you don't know" until you know it. So minimize your reliance on guess work. Use Occam's Razor and push forward. Do something, measure it, revise your model based on the new metrics, rinse and repeat. Keep speculation at a minimum.

Wednesday, December 12, 2007

Pragmatic Webinar

Steve Johnson presented a webinar on the Pragmatic Marketing site. It was worth the watch for quotes like:

"The real role of an Agile Project Manager is to force the project to leave the building despite the company's best efforts to prevent it."

And "I don't accept the premise of your question."

And this interesting formula: "Evidence * Impact = Priority"

Saturday, December 8, 2007

More thoughts on valuation

Somewhere on the Tyner Blain blog it says this:
"Financial benefit is what we have to base our decisions on - both hard ROI and soft ROI data. We can measure cost data, and even forecast it - taking into account both fixed and variable costs. But if we use the wrong cost allocation strategy, we will make suboptimal decisions. The success of a requirement is based upon the ratio of value to costs."

Many streams of thought conclusion is this; bad numbers are worse than no numbers. Maybe during the retro we should look back at the predictions and see how accurate we were, then apply that same percentage of correctness to future considerations.

Deep thoughts (better than Jack Handy)

This is very deep and might be cool (if it can be transliterated from "theoretical" to "actionable"). Read this link.

Contained is this quote; "Remember a rule of system thinking is to understand the whole in favour of the parts. So look at the situation and ask your self how are the different smaller level wholes related to make the bigger level whole."

Friday, December 7, 2007

BA's in the Agile process

This dude here is reasoning out the role of a BA in Agile development.

His main point are these;
Developers can't elicit requirements. I agree, not because they can't, but developers should be busy developing. I'm not advocating insulating the developers from the users, but provide them the opportunity to productively develop without the added burden of trying to elicit useful information from the requestor...unless they want to.

Stakeholders can't model and document their own requirements. This is true. If a requestor is not familiar with creating a "user story," or expressing "conditions of acceptance," etc. Then someone (in the BA role) needs to stand in the gap and complete these components of requirements gathering process.

You need analysis experts. I don't agree with this. The developers should be able to analyze the requirements to propose a technical solution. The key word being "should." But it seems as if they push-back, they just want to "know what to code." Not "figure out what to code." What am I missing? I'd like to have another perspectives.

Tuesday, December 4, 2007

Getting value faster

Here Tyner Blain blog says this " one is promoting that we maximize value - they (and we) have been promoting that we do the most valuable stuff first. Doing the most valuable things first does not result in getting value the fastest"

I think this is the perspective we need to adopt for project valuation and why we should attempt to compare effort to value.

The rest of this article is excellent explanation of "velocity points." Better than the nebulous explanations that are dished out thru most Agile training

The Most Valuable

This is the introduction of the "grid" concept of prioritization. I found it here and here is part 2. Both articles contain lot's of other useful links.

The article says "If you're in a situation where prioritisation is straightforward and you have a single decisive product owner, you probably need to read no further."

This is the problem...when prioritizing multiple opportunities between several departments and managing stakeholder interests there needs to be an objective system. My goal is to avoid arbitrary decisions.

This is the best method I've seen because it's simple and visual.

Monday, December 3, 2007

Thoughts on Kano

Kano appears useless for prioritization, but might be useful for evaluating user satisfaction once the product is completed. Could be useful in a retrospective.

Here's an flash tutorial

Small iterations

In 10 Successful Criteria For Software Development number "6" under "Success Criteria" is "Smaller Project Milestones." Smaller iterations are being realized as a best development practise outside of Agile.

Prioritization concepts

Read this it's really good. The blog entry starts by saying "The less we know about our client’s business, the more the requirements appear to be equivalent." All the more reason to aggressively depose stakeholders for specific value.

Although this article is about prioritizing features, it holds a lot of truth about prioritizing for any project. Including validating ROI over preference (let's keep it objective).

Visual cues

For visual representation chart value items in color.

Red (hot) to blue (cold) depending on executive support.

Or increase size if it meets strategic goals.

The difference between TDD and FIT

Here James Shore makes a great differentiation below:

"...Fit examples are not unit tests. Fit examples are just that: examples of a business rule in action, from a business perspective. In TDD, I write tests for every line of code that can possibly break. In my Fit examples, I try to talk about every possible business case. That's a bigger net than TDD, and without TDD, my code wasn't well tested."

James calls Fit "Storytest-driven development" or "STDD" (despite the stigma) I think it sounds like a super Agile concept. So is this where the "user terms of acceptance" from the nebulous "user story" get converted into arguments in the FitNesse wiki? This is a good picture of executable documentation. (Now this is where imagination is needed) How can all the varied and complex features of a solution be represented in a Fit test?

How can this be re-paid?

According to this article, AES improperly exploited a subsidy program to collect $34 million from the government. How can they payback that amount without it drastically impacting their business?

Saturday, December 1, 2007

Idea origination and ownership

Introducing the Market Requirements Document and the Product Requirements Document

This is an interesting commentary of solution scope from the Tynerblain blog. At Ed, the business unit probably creates the MRD (intellectually if not in writing) both these and is likely to include S&S or engineering in the process. From this article it doesn't sound like the norm, but I'm not sure Systems and Solutions or engineering has the resources to assist in these decisions.

Maybe the answer is here

Agile's biggest weakness...isn't

Tyner Blain blog lists these items being "Agile’s biggest weakness[es]." I don't know if he's serious or not, put none of these seem like legitimate complaints.

He says Agelists "minimize forecasting." I believe that forecasting is not minimized it's optimized. You forecast until you have as much of forecast as you need to move forward. Is there something wrong with that? You don't know what you don't know until you know it, so get there as soon as possible.

Here's the list from the Tyner Blain blog;
1. Most companies today, when they commit to a million dollar project, want to know what they get for their money. - The purpose of agile is fail faster and defer commitment (until the last responsible moment). Spend some money to remove some doubt. Spend some more money to remove more doubt. With each iteration you're getting more "committed" and eliminating the big doubts up front. Always gaining more assurance of success without (over) committing resources. Lean, right?

2. They want to know when they get it too. - Don't we all, but who can say? And how do you know they're right? You don't know without metrics. So do something (complete a user story), see how long it took and you've determined velocity. Now multiply that velocity against the rest of the stories, not only did you get something done, but you've got a real metric.

3. ...they want to know before they sign the check. - That's the wrong perspective, if you're signing a single check for a project then you're over committing. Agile to the rescue - pay as you go, you're never over committed.

4. The less planning you do at the beginning of a project, the less you know about the end of the project. If you believe Occams Razor then the simplest decision is the right one. Too much planning is futile since you don't know what you don't know until you get there. Pretending that everything is (accurately) knowable is folly. Determine the next step, execute and then re-evaluate. Have a loose plan, but don't make it your constraint. Stop going forward when it's no longer fruitful, find a new approach or let it faster.

5. This is hard for non-Agile companies (or executives) to swallow. No it's not, it's simple to explain and painless to buy. "Hi Mr. Stakeholder, we are only gonna spend what needs to be spent." This does not preclude a budget, it only precludes wasting a lot of time on pretending to know how much a project is going to cost.

6. By minimizing the upfront planning, Agile teams minimize their ability to forecast the pending results. Wrong, agile teams minimize there ability to make flawed decisions based on overly confident forecasts.

I'm really glad that the Tyner Blain blog stated these "perceived" Agile weaknesses in such a specific way. It makes it much easier to refute them. Most Post-Agelist or Anti-Agelists use some vague metaphor, which doesn't really address the project conditions.

Refuting Lean?

How come most bloggers trying to refute Lean concepts and Agile methodologies sound like Durwood Fincher?

Requirements gathering

Some dude says this here

"If you believe that customers are responsible for defining their requirements, you will primarily employ interviewing and 'elicitation' techniques to obtain requirements. The definition of elicit is 'to draw or bring out or forth; educe; evoke.' The customer often perceives this as 'extraction' or even 'extrusion.' Using this method, you are at your customers' mercy--you know only what they tell you. Requirements will almost certainly be incomplete. Even if customers appear unable to define their requirements, you may believe that they are not only able to do so, but that they are responsible for doing so. You may believe that the correct elicitation tools and techniques will achieve success."

It sounds like he's saying customer's don't know what they want. I agree that is frequently the case. Showing them "concepts" can help them see what a potential solution looks like.

Fail Faster

“I have not failed seven hundred times. I have not failed once. I have succeeded in proving that those seven hundred ways will not work. When I have eliminated the ways that will not work, I will find the way that will work.” - Thomas Edison

Don't forget to leave room for the failures and leverage the development process so you fail faster

Start quick fail faster (be lean)

Kent Beck says this (Tyner Blain blog):
"...customer’s don’t know what they want, we should start building stuff right away, with the expectation that by seeing tangible results (good or bad), they will have epiphanies about what they really want. This approach treats requirement extraction as an emergent process, like strip-mining. With each new layer of mining, we unearth a new set of hidden requirements."

Build first ask questions later goes too far. I think we can prototype (hi or lo-fi) and show customers a vision of what they've requested. From that we can help them discern what they need. This makes me recall a session from Agile 2007, when we demonstrated functionality by each person playing a different role (replicating the technology) and users interacted with the interface. It made for fast process adjustment to user feedback.

Two soft concepts

This may be an interesting article on ROI. ROI is both hard and soft. For an automation hard costs could be a savings of man hours...very calculable and very predictable. Soft ROI numbers should be discounted 60% to 90% according to Tom Pisello.

I jacked this from the Tyner Blain blog: It's where another soft concept is introduced, the concept of utility:
"Agile software proponent Kent Beck argues that people don’t know what they want when you ask them. There may be some scientific support for his argument based on some research cited by Barry Schwartz in The Paradox of Choice: Why More is Less. Schwartz references psychologist Daniel Kahneman’s studies of how people remember events, in an explanation of how people measure and assess utility. To sum up, here’s the flow of events: A person has an experience, and recognizes some satisfaction from it. This is known as experienced utility. This is the function that economists reference when defining the indifference curve. When remembering the event later, a person will remember incorrectly. Their memory of their level of satisfaction is their remembered utility. The problem is that the remembered utility never precisely matches the experienced utility. This poses an interesting problem. Even if we find people who have experienced exactly what we’re trying to analyze, they will be unable to correctly tell us how much satisfaction they derived in the past."

Here's the Tyner Blain blog conclusion:
"The value of a requirement or feature is a function of user satisfaction and the financial benefit of having that requirement implemented. The user satisfaction can not be quantified in advance because we have no framework for reliably predicting satisfaction - even based on past experiences. "

That is very interesting, as much as user's demand certain features without being able to provide a cost justification for their demands.