Story points story

Leave a comment

For sometime there’s been debate on the use, or even the need of story points. Hmmm…. There are  multiple needs to consider:

1. Short term estimation, so as to commit for a sprint.

2. Prioritisation decisions

3. Release planning

Though controversial there may be another reason:  Productivity gauge (caution advised)

In this discussion I’m assuming you are executing projects using Scrum or some other short cycle iterative approach.

The two matters to consider are:

1. Do we need to do any estimation at all?

Well, unless you seldom have to prioritise a work packet over another, or have very large capacity you need to estimate (not exactimate) items. So for a vast majority, the answer is yes.

2. Should we switch to story point estimation?

If the current method of estimating is able to handle relatively small packets of work (enhancements/change requests)  taking into account the whole cycle from analysis to delivery (to staging) with reasonable reliability, there is no need to change to story points. However most projects don’t find themselves in such a happy state and story point estimates is a good approach. There are many reasons why story points are a superior choice (at least at the team level);

But finally the only good circumstance in which we can avoid estimating altogether is if we can always break items (or user stories) into small uniform sized pieces of work (taking just about a couple of days to complete). Then all we need to do is look at the business benefit for every story and count the number of stories. The velocity is given simply by number of stories done in an average sprint. This uniform and consistent division is not usually easily achievable.

Event report

4 Comments

A bit late, but I did attend the event  mentioned in the previous post. It was time truly well spent. So here is the report, with a bit of opinion thrown in.

The highlights were the talks by Dr Wintersteiger and Mr Tathagat Verma.

Dr Wintersteiger gave a very interesting talk on the landscape and development of this whole Agile business, around the world, including India. One of the key points is how the management approaches are still very 20th Century, while the behaviour as well as aspirations  of organisations, teams and indeed the younger generation of people is very different. How seating and office ambience is very different. This got some people thinking and there were questions during the panel discussion I’ve mentioned Lynda Gratton’s recent book. This discusses the changing nature of work and makes some predictions (not all of them brand new) and offers a sane way forward. Worth a read, even though I think the LBS fraternity generally tends to provide examples from large pedestrian and traditional companies. Q n A session at the end of Dr Wintersteiger’s talk was absorbing (yours truly asking many questions)

Tathagat’s talk was very interesting. Generally when people talk about/of Agile, I tend to go into an semi-slumber, often punctuated by mild irritation and sometimes dislike.  For a change it was a an enjoyable and informative talk. Excellent examples, context setting and explanations. Not common at all these days. I even learnt something very useful. He (With help of Linda Rising) explicated what is meant by mindset and what a mindset constitutes of. This word is used commonly but without a lot of understanding (A bit like ‘agile’, eh?) .  He compared the fairly opposing mindset of companies/people. This understanding is actually very critical. I hope everyone is better for this.

The rest of the conference was fairly decent, with Mr Nitin Dhall giving a very nice talk and honest (hence useful) QnA at the end. I’ve not attended a lot of other talks (which may very well have been wonderful) as I was busy talking to people whose interests overlap with mine.

Ciao

 

P.S: I’m about to give a talk at an internal conference and have half a mind to report on this as well.  But then I think enough of general reports, I’ll see if I can write on a particular problem/area soon.

 

 

 

 

 

 

 

Interesting Event brewing and opinion

3 Comments

Disclaimer: I normally avoid pure opinion, but here goes.

 

There is a conference brewing in Delhi. On 29th Jan, Unicom is hosting a conference on “Agile in Business“. It promises to be interesting, particularly the first two sessions of Wintersteiger and Verma. I’m certainly curious about what will be presented on the Indian Landscape-past, present, future.

Curious I certainly am, since my first real immersion in XP in 2001 in Ireland (one of the first larger XP projects in Europe),  it has taken a really long (about 10 years) time before any of these new wave approaches have gained currency in India. Only a couple of mid sized companies in India, even into the late naughties, did anything like what we did back then. I still meet far too many people here (India) who do Scrum badly and then say “oh we know/do Scrum”. Fortunately there is a minority which is interested to really learn this well. Now most people have heard of these methodologies…

However, the point is, at least as far as Scrum is concerned, far too many people are all too ready to say they do it. Most organisations gravitate to ‘scrum-but’ all too readily. The last couple of years has seen much dilution in the in-depth understanding of scrum. More and more discussion takes place around how Agile adoption fails, or how to do “Hybrid” or some such. All this at some level assumes that teams and organisations really understand how to use Scrum as a framework for delivering the best possible results in projects. There is no such evidence. I think Ken Schwaber’s estimate that only about 30% of teams will learn and use Scrum to achieve success. I’d say here in India the percentage  is smaller still.  I look forward to these sessions and hope to report later on.

 

 

 

 

 

 

 

Reverse Viennese Syndrome

2 Comments

Happening to read this, I was struck by how many people (within ICT industry)  in India have the reverse problem. As a Viennese resident remarks- “If you live here all the time, you have nothing to compare it to – and you don’t know how good you’ve got it.” or to paint a picture for a reverse problem “…. and you don’t know how bad you’ve got it.”!

I relate to this due to a similar personal experience on my first visit to foreign shores (London) when a local remarked how polluted London was. Arriving from Bombay (Mumbai), I remember thinking the poor fish lacked sense of any sort. But maybe it was me who lacked perspective.

What has all this to do with Scrum? Many, many people have no idea of how a well chosen and tended team can feel, perform and delight all. So many projects are in a death march mode or in an apathetic semi-daze for so long, that such a state seems normal! Just as the Viennese are inclined to overlook how well off they really are in their city, the s/w dev teams here are not exposed to how well (comparatively) things can be run.

Is this a plug for Scrum? Partly, but mainly it is an attempt to show that there are much better means to live within a software development project.

Is this relevant to the times? Yes, in spite of  all the huge numbers of people claiming to use Scrum, the percentage who do it properly is very small indeed. Scrum-but will not make your life better, Scrum will.

I’ll attempt to provide a sense of how one can help people see a brighter horizon. Most software development teams are under pressure to deliver on very optimistic estimates of poorly thought out functionality. On top of this teams will quickly settle into a habit of creating poor quality functionality.  All this leads to continuous rushed activity that results in comparatively little progress.  This is why people spend late nights in office. How they use their time in office is another story.  However too much overtime over extended periods will be accompanied with lower mental efficiency and strong tendency to make mistakes. Why do you think in competitive sports each team tries to put the other under pressure? To encourage mistakes of course. What are managements doing when they put pressure most of the time?

First thing you need to realise is that a normal day needn’t be tense and rushed. It can be comfortable but purposeful. Good planning to deliver a reasonable amount of functionality will provide best results.

A cross functional team results in testing being done very close to development, which means that we get a lot of feedback within a sprint. Also multiple perspectives help in detection of mistakes earlier.

More importantly we get serious external (customer/customer-representative) feedback at end of every sprint. Therefore we come to know how we are doing from a very early stage. At every step of the way we have a chance to improve at a reasonable pace. This is almost a dream in a waterfall project. Everyone pretends they are already very competent or even perfect. Then at the end, when they all are floundering, and then it doesn’t end….

Where as in a a well tended team, the support every one gets  is very enabling,  a good ScrumMaster is there to see to it. It provides a high level of ‘safety’. This supports people to very quickly get better, be open to learning from their mistakes. These may or may not be mistakes of individuals, but a culture of blaming one another is strongly discouraged.

To summarize: A good project delivery structure (delivery and feedback every sprint), a supportive cross functional team and picking up a reasonable amount of work per sprint will together result in a steadily productive, yet comfortable feel for Scrum projects. Do it properly and you’ll then realise how badly you’ve been having things for so long.

Case for starting with longer sprints

Leave a comment

At last something reasonably sensible here, from a big Indian services company regarding Scrum. I say reasonably, because the conclusions arrived at are largely correct, whereas a couple of points made in support reveal an underlying thinking which is slightly questionable. I shall proceed to answer the Q of an “ideal” sprint length before returning to take apart the article referred to above.

Most Scrum teams use two week sprints and a few even one week sprints.  In some organizations where iterations have been about 3 months, or more in length or even worse a classic waterfall (Before Scrum) teams have a real problem starting with two week sprints. Much of this is in the mind. It is common for people in such projects to feel (or even ‘know’) that nothing can be achieved in two weeks. So, there is considerable reluctance to pick a two week sprint. Now the question is what should be the length of the first few sprints?

Something of a storm in a tea cup, is how I see it; There is no doubt in my mind that a two week sprint (with suitably small units functionality as backlog items) is what the doctor ordered. However in these times of diminished authority, quite a few people seem to duck clinical instructions, let alone heed good advice. So, a logical (at least superficially) decision is made where in a much longer sprint length is chosen.  If it were of four weeks, that is still within the rules of Scrum, but not a good choice. I’ve even seen a two month sprint taken up as how to proceed with Scrum, which  really is a marvelous illustration of how NOT to do Scrum. Basically the underlying problem is once again the lack of realisation that Scrum is really a rather radical departure from the traditional waterfall way of completing projects. Not an embellishment of the old ways of working with the latest jargon, minus the real intent, which in turn simply results in Scrum-but.

So why is a long sprint three weeks or more a problem?

1) Loss of feedback (course correction opportunity): Essentially there are fewer opportunities for the PO and functional stakeholders to get to know the growing system and provide feedback.

2) difficulty of holding on to the “NO CHANGE RULE”, particularly the part where the sprint goal has to be held fixed; i.e no changes to the stories picked up by the team at time of SPM (sprint planning meeting) are to be allowed, is increasingly difficult to maintain as the length of sprint increases.

3) Effectiveness of retrospective: One of the most important environmental conditions for a good retrospective is that people should remember what happened during the sprint. The only other even more important condition is openness and assurance of safety. Most people cannot recall many (unremarkable, but important) details beyond last week. That’s a two week span. So once a sprint is longer than two weeks, we have a memory retention problem, unless the team maintains a detailed activity log. Yeah right!

4) Reduced planning effectiveness: As the time horizon increases, it becomes more difficult to plan for the entire timebox. It is substantially more difficult to plan a longer period of activity realistically than a short one. A weakness of long term planning ability exists in most software project groups.

In fact all the above means, it is imperative that teams improve their ability to plan (a major underlying factor is estimation, but that is another long story), make progress, correct and then build upon what has already been achieved.  Basically do the “inspect and adapt”. So in a way more opportunities the better. Hence a shorter cycles are better.

OBERVATIONS on the Cognizant article

(Overall I think the article is well written and has many aspects covered well)

Pl refer to table in the article.

A flawed line of thinking here is “Adaptation to uncertainty in story creation”, which talks about stories crossing sprint boundaries. This assumes that stories are going to be large. Actually they can be quite small. Short cycles can be handled if the organisation and team learn to break functionality into sufficiently small blocks (here is an interesting thought on this matter). This is a skill that needs to be developed, and time after time many people have discovered that the most complex application can be broken down into block that need a couple of people to work on it for a couple of days. So ideally for a two week sprint a team of about seven people about 8 to 15 stories (or sub-stories, if you prefer) can be picked up.

An argument made by armchair planners against short sprints is that the overheads will take up a greater percentage of time as a whole (as possibly being hinted by the above article; see 32,16,11 and 8 days). However for shorter sprint the planning, review and retrospective times will also come down;  Of course time spent arranging for these meetings may go up, since number of meeting per month will increase. However this is a matter of habit, if everyone soon gets used to weekly meetings (each meeting of shorter duration) this will actually be a negligible overhead, with a tremendous amount of learning and correcting being generated. So a shorter sprint is better than a longer sprint.  So item 1 “Ceremonial days” in the table isn’t quite right.

The other (more worrying) point made is that about procrastination;  Use of sprint burndown chart correctly will actually circumvent this! In fact very long sprints may just increase pressure on the team since there is a real possibility that team will struggle to meet sprint goals towards the end of a sprint. There is a real danger of falling into a serious waterfall mode every long sprint. Teams don’t seriously examine their way of working and change to get as far away as possible from the waterfall. In fact in this matter the article seems to lie on a resource (read people) utilization perspective and the worry that people are not going to be busy all the time, easily confusing activity for progress; which is fairly anti-Scrum in approach.

Another issue with the article is the point about “minimum number of days spent testing”! This is really puzzling.  Is less “testing” days better, or worse!?! I’ve no idea what this article considers better, let alone what the thinking behind this is. In reality it depends heavily on the context of the project, the abilities of the team members,  automation involved (rightly or wrongly)… so many ifs and buts. In fact Scrum does not even attempt to prescribe this.

So the main root point in favour of a long sprint is the comfort of the team and managers involved coming from a waterfall habit! This is really a question of willingness, understanding and realization of the people involved in the project. Not something to be sneered at, maybe a coach can help.  He/She must show sensitivity to this, and do all possible to show the team how to break down user stories into smaller blocks of functionality.

In closing…everything else points to shorter sprints. A two week sprint is strongly recommended and indeed used by many, many successful Scrum teams.

PS: The points made above may seem like a merciless slating of a deeply flawed article, but not so, the article itself makes many good points from a certain level of Scrum understanding.  I think it analyses the various factors of making the sprint length decision fairly well. Here I am simply attempting to provide a deeper understanding of how to think through this matter.

Retrospective: The driver for change.

8 Comments

Ensuring that the retrospective makes a real difference

This post is only partly in response to an observation made here that retrospectives were found to be generally useless. Having said that the practical tips in the above post are valuable.

I think the feeling (or even reality in some places) that retrospectives are a distraction is due to a few factors

1. The software development organisation, as a rule, doesn’t have a culture of self-improvement (neither developers nor managers)

2. Many teams struggle just to get to the sprint end date meeting the sprint goals and lose stamina by then (an important tip is covering this). Oh, yes I’ll not be in the least surprised if the cause of this is organisational pressure applied onto the development team. Similarly this pressure will lead to ineffective retrospectives.

3. Poor visibility, hence support for getting action items done (also mentioned and dissected here)

Retrospective is the driver for change generated by the team (and possibly anything that the SM points out). So after the lovely discussion how do we actually make the change? Hopefully the Scrum Master and the team have identified action items (not always easy, not always correctly done), but even so, some of them will be straightforward.

It is all a matter of perspective: Encourage all concerned to view the retrospective as a driver of change; and I think it’ll have a very different effect. At some point (ideally the beginning) of the project, or when the team is getting stuck, floundering etc., it has to be said “There are things that are not quite right around here. We need to change, bit by bit; Let’s use the retro”. Wonderbar! but how?

TIP: Suppose these action items were to be put into the Product backlog. This is an extension of suggestion here. A bit radical, eh what!?! as normally the product backlog is reserved to deliver something for the PO or external stakeholder.

caveats: Some action items need a lot of work/effort to be made and teams tend to drop these items from their to-dos, so these could go into the product backlog. Not all action items need go into the product backlog, as some can be done by the Scrum Master, some by the development manager (hopefully) and some are simple to do.

Coming back to the suggestion: What is the effect of putting retrospective items into the product-backlog? It certainly gets attention (visibility), and these items also get budgeted. More importantly a lot of careful thought based on experience WILL get acted upon. But there is something of a dilemma here, as then the PO gets to prioritize the action items! How would a PO react? What does the PO’s reaction tell us? Something of a litmus test, as to how well the whole team, SM and product owner understand the principles and imbibe the ethos of Scrum. This may often mean that the coach/Scrum Master will have some convincing/cajoling to do. However, while it may take time, eventually the team and organisation around it can see the effect of doing/ignoring retrospective action items (as there is greater visibility). Yes, it also gives the Scrum Master a great handle to encourage improvement via these action items.

WHEN NOT TO RETROSPECT: (ideally a separate post, but I’ve the first quality of a programmer)

I’ve as a coach often observed  teams which struggle to meet the sprint end deadline and led and facilitated their retrospectives. A team that takes it’s commitment seriously is at a disadvantage, as they have been working overtime for the last few days (nights!!?!). This usually means that their sprint review meeting, in such circumstances doesn’t go like a bomb, (don’t bother this link if you are from the UK/antipodes). By the time they are done with the review they are tired, somewhat dispirited and possibly uninterested. TIP: Give the team some recovery time. Don’t hurry into a retrospective under such a sepulchral atmosphere on the same day. Don’t hurry the retro to get on with the next sprint. You almost surely will be failing to learn. An ineffective hurried retro is time wasted, a longer one with sensible action points (which get acted upon) is valuable learning and a “velocity+morale” booster. If you must, hold a 30 min debrief. Especially, if the next day is a working day, people will be late, and the retrospective must be conducted well. So the main body of the retrospective should be around lunch the day  and concluded after lunch. This is to give team members time, discuss formally(during meeting) as well as informally (over lunch). In case the sprint ended on Friday evening, we can conduct the retrospective on Monday morning (with a long coffee break in between). But do make sure that at least three action items are identified and people commit to acting upon them (maybe put them into the product backlog). There must be visible progress over time, else each following retrospective would become more useless than the last (ironically, the reverse result for the retrospective itself, opposed it it’s intention for the project).

I’ve generally seen teams benefit from decently conducted retrospectives. As time passes and the retrospective action items become larger and more difficult this improvement slows down. This is where higher visibility (as suggested here) and perseverance will pay dividends. Good luck and God speed.

An extended entertaining tete a tete

2 Comments

I had the pleasure of meeting Jeff McKenna last weekend. I took him around the city a little bit and had lunch with him as we chatted about various things, with discussions about Scrum taking up about half of the time. He was very engaging. He started programming in the sixties as a young teenager and talked about a seven pass compiler! Blimey! Glad I didn’t have to go through that wringer. Must have been fun in someways, but surely not pure joy when an error was thrown up on the sixth pass. He was also among the vanguard of the Smalltalk community. That is why meeting him was also a privilege. Such a spectrum of experience! He has I’m sure a store of stories to narrate and observations to make, only a small portion I could listen to.

In any case, one of the points he made really well was how you can always break a seemingly big story (feature) into much smaller parts. Many people who come from a traditional background seem to struggle with the idea of taking a functionality from description to implementation in just one sprint.  They think “well, our application is complex (glossing over the fact that complex and complicated are different) and we can’t implement anything meaningful in a two week sprint”. Indulging in some levity he makes the point thus “you can break it down to a few keystrokes!” Touche! But the point is serious. You can take it from people who have seen a really wide range of computer software applications, many times more that the average Mac, that one can always, always break functionality down to a couple of days of work. Surely within a development environment this is possible. There may be other organisational barriers that mean that the implementation cannot be taken into pre-production (or whatever) within a two week timebox, but the point of Scrum is to remove as many of these barriers as possible.

More on this later .

The VOC, but who is the customer?

Leave a comment

A recent post encouraging proactive steps to gather the VOC leaves the issue of “who is the customer?” well alone, since a generic answer would be vague, it is heavily context sensitive. Many good ideas are presented here.

An intriguing point made here is that, these are solutions to a situation “…particularly where there is little time to do any early user research”. You must consider what is underlying such a train of thought carefully.   I hear this sentiment sometimes and it is almost surely leading to building of the wrong product! So lot of activity will ensue, but progress in terms of generating ROI may is certainly not ensured! In other words it is a case of leap before you look. This is not to say what’s written in the above mentioned post is wrong, or that it is recommending ignoring user research. It just is trying to work around a poor decision.

As usual since my blog is about Scrum,  here I’ll try to relate this situation with the product owner’s role. To cut a long story short, it’s the PO’s responsibility to bring the VOC into the project. Identifying and engaging with customer(s) or potential customers and the difficult balancing act that may be needed is in the PO’s court. Again it is difficult to provide general advice that is practical but it certainly helps to make as much activity around this as visible as possible. The transparency of such interactions will mean a very significant reduction in dysfunctional behaviour. So as far as the teams are concerned the PO is the customer, albeit,  one who follows the rules of Scrum.

Strictly left footed right wing striker

2 Comments

Background: The Pune vodQA 2012, where I was involved, but not entirely committed(A frivolous reference to Scrum lore, about commitment, chicken and pigs) in more ways than one, was interesting instructive and illuminating! Read about it here.

Mr Chaitanya Nadkarny, a senior member of Thoughtworks consulting gave an opening talk, covering among other things which factors are going to affect the lives and careers of testers. One point he made was with regard to how testers can be generalizing specialists, or specialising generalists. It took some time for the audience (at least I did take time) to get it’s collective head around this.  Mr Nadkarny’s point here was that

One could be a performance tester (specialist), but also interested in expanding capabilities (therefore generalising) to do general functional testing, manual etc.

OR

A tester (generalist) now wants to be more skilled and focus on an area of testing, for example usability (specializing).

MAIN POST:

Since I see the world through Scrum tinted glasses, I’ve been struck by how Nadkarny has put in a nutshell the possibilities of how people develop, become more valuable and competent. Many years ago a programmer was doing most if not all activities in relation to developing systems/applications, including testing. As the field developed people became more and more specialized. Eventually in the noughties, we have extremes of specialisation. Even being a tester isn’t enough of specialisation, one is now a manual tester or an automation tester, or a performance tester. The side effect of the industry moving in this direction is that people are squeezed into ever narrower roles, even though this isn’t required and actually creates inefficiencies. Finally we have the equivalent of a striker who can only play on the right wing,  kick with his left foot, but will not head the ball into the net, even if the ball is at eye level, straight ahead and the keeper is out of position!

This attitude is so entrenched  and pervasive in some places that even managers have often fallen into the trap. People are type-cast and given no opportunity to learn new things. The Scrum team, essentially being cross-functional, would struggle to succeed if a group of super-specialists have to work together, even if they are initially willing to collaborate. Why so?

Firstly: There is little understanding of what the other person does and needs.

Secondly: Load balancing at different points in a sprint is a nightmare, as work of a given type isn’t evenly loaded throughout the duration of the sprint.

Thirdly:  Majority of work in any organisation is done by generalists, because much of the work doesn’t need a too much of specialization. How often have you visited a general practitioner vs a specialist?

Lastly and very importantly: it encourages the continuation of waterfall habits.

Time to generalize. A cross functional team would need generalizing specialists.

On the other hand, once they get there, they might then need to be specialising generalists, as well… and so it goes.

Developers are people too!

1 Comment

I happened to come across this absorbing article: Whales are people too! and in then the word speciesism (a one word tongue twister, say it out loud, quickly, twice in a row!)

Now, I’ve lost of count the number of managers/executives who proudly say that their organisations are doing Agile (whatever that means ) and refer to people as ‘resources’. In light of Mr D. Adams’ observation (that humans are the third most intelligent species on earth) it is possible that these enlightened managers are right after all. We are all resources.

However, on a serious note, it is worth considering, since dolphins have a strong claim to rights, if our developers also need some rights.  Also more pragmatically, always keeping  this in mind makes management effective, and true; Not a wished based glossing over the real people development and attitude issues and avoiding necessary but difficult conversations until it’s too late. A team of people, are not simply a summation of individuals, and their interactions can easily be unpredictable, someone leaving the team, could result in a productivity increase, or even velocity increase. If only developers were people.

N.B: Prima facie this is tangential, but on second glance quite central to Scrum. In this article I’m not being sarcastic, but tongue-in-cheek. (Note on N.B to some readers: These things have to be explained to most ‘resource managers’  in the ICT industry)

Older Entries

Follow

Get every new post delivered to your Inbox.