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."
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.
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 here...one 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.
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."
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.
Here Tyner Blain blog says this "...no 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
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.
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).
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?
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.
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 die...fail 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.
"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.
“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
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.
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.