scrum, really!? - gerson · scrum, really!? in software and test ... sprint, sprint, ... to get the...

9
Gerson R. de Almeida 2014/10/01 SCRUM, REALLY!? In Software and Test development a word in great vogue nowadays is SCRUM (sometimes confused with Agile). However, do we really understand all the implications of the method ? Can we do more or less using this framework ? Can we use something else or even can we still perform with old methods? To me Scrum is great, but there are issues outside the defined framework that needs to be addressed by other means and understandings. In this paper I describe some ideas that I have thought, learned and developed. I am sure that many will have some arguing points (good or bad) on those ideas and I would like to hear from.

Upload: buihanh

Post on 28-Jun-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Gerson R. de Almeida

2014/10/01

SCRUM, REALLY!? In Software and Test development a word in great vogue nowadays is SCRUM (sometimes confused

with Agile).

However, do we really understand all the implications of the method ?

Can we do more or less using this framework ?

Can we use something else or even can we still perform with old methods?

To me Scrum is great, but there are issues outside the defined framework that needs to be addressed by

other means and understandings.

In this paper I describe some ideas that I have thought, learned and developed. I am sure that many will

have some arguing points (good or bad) on those ideas and I would like to hear from.

1

Introduction

Many years ago, when I had little experience with Scrum,

someone told me that the name ‘SCRUM’ was originally from

the Rugby game; as a normal curios tester I checked in some

dictionaries and web pages to confirm this information, and to

my surprise, there were two main definitions (maybe soon, it

will be added the Software related one, making three). I guess

if you never looked for it, you will also be surprised, it is

almost a joke made on request.

One of the main idea in the Agile manifesto is to bring the focus back to the real points in software

development: the customers, the product and the producer (the team). However we must not forget that

it is still very important to know about processes and techniques before trying to implement an agile

(scrum) process, otherwise we will incur in a great risk of trying to reinvent the wheel (again..), or worse,

trying to force wrong wheels in wrong cars.

Below I give some of my reasoning’s about the need of processes and extra thinking. And have tried not

to be led by the ‘party feeling’ of some in the agile community and vendors.

In testing, there is no such thing as a silver bullet.

We can never kill the Werewolf, but we can seriously cripple him.

Sprint, sprint, sprint… or Marathon

Any runner athlete can tell that to run a sprint is a lot different from running a marathon. And it requires a

focus mindset, planning and preparation for the race. The same applies to Software development on

regards to what and how it should be done.

Having projects without knowing the past and not seen the future is good as dancing in a forest, we may

see our steps, but we don’t see the trees or the paths. For this reason a more stable and organized process

is necessary. The use of Scrum sprints to produce software is a good practice; if you are running small,

short or self-containing projects, but as we move to large and long developments, something more is

necessary: the long run planning.

This I would like to call “Marathon”, a holist view of a project and/or product, that need to be done in a

controlled way. To my view this is only possible to achieve if we use some structure management

processes (something like RUP, ITIL, Prince2, etc.). My main point here is that we need to have this

Marathon planning (the Holist approach), and this cannot be done by simplistic approaches. And do not

believe that scrum of scrums will fix the problem (it can temporarily, maybe), but is not a solution for the

main problem: Planning and Traceability.

Ok, you may say, we have the PO and he is normally someone that collects the User Stories (on our old

days, we called it Requirements) and set priorities, and we know how hard is to have good and defined

2

ones. There are also the needs for different visions and positions, as stakeholders are so different. And

what about customers, regulatory offices (ISO, Government, Tax, etc.).

And do not forget that changes are a constant and the only certainty in the development process.

My point is, The backlog is not enough, we need to have a better way to plan and control the whole

project from start to end, not from one sprint to another.

The Rapids

When we compare Waterfall and Scrum closely, we can see that they are not that different after all.

Almost everybody talks about Scrum as it was a new approach, but in reality it is a new dress for an old

problem: How to develop software faster.

First let’s see the definitions:

The waterfall method

The waterfall model is a sequential design process, often used in software development

processes, in which progress is seen as flowing steadily downwards (like a waterfall)

through the phases of Conception, Initiation, Analysis, Design, Construction, Testing,

Production/Implementation, and Maintenance. http://en.wikipedia.org/wiki/Waterfall_model

Scrum Framework

Scrum is an iterative and incremental agile software development framework for

managing software projects and product or application development. Its focus is on "a

flexible, holistic product development strategy where a development team works as a unit

to reach a common goal" as opposed to a "traditional, sequential approach". http://en.wikipedia.org/wiki/Scrum_(development)

The truth is that both scrum and waterfall have a lot in common. Scrum is a series of small iterations (the

sprints) that are basically sequential by nature. We must have the Backlog before choose the Sprint-

backlog; we need to create some design before code and need to have some design (and maybe code) to

be able to test. The demo is the realization part. And we start all this process again.

These cycles or iterations are in reality making the whole process a sequence of mini-waterfalls. Then,

when you taking together the sprints, we will then have the Rapids.

3

There is no such thing a Scrum team

The people who advocate the use of scrum likes to tell us that there is only one team, and all team

members can or should be able to do all the tasks. The problem is that does not leave space or take in

consideration the different competences and specializations in the team.

The truth is that in a scrum team there should be at least 2 sub-groups: the first to implement the tasks and

the second to validate it. This does not mean that they are separated groups, isolated or antagonistic; It

only means that their focus is going to opposite directions (even though many times competences are

overlapping), making their work and results also to have different results.

I advocate a creation of a “Yin and Yang” concept in scrum, that is, the Development and Test are

to work together (and separated) for a common goal.

Below I present a schematic example on how we believe the team should work. When Development is

creating design, Test is creating TCs and checking documentations, during the coding phase, there is the

test execution.

Also, there are the problems with how to address some regression test, smoke testing, test of delivered

product at sprint demo, etc.

The 100-50% staff rate is an approach to show that for every 2 developers 1 tester is needed (but of

course, your project should decide it). This can implies that when a task takes 100 points (our hours, etc.)

for developing, the test will take 50 points.

4

2 for 1 Burn down

Following the previous reasoning, the burn down should be a combination of Development and Test as

parallel activities that are interdependent and part of a common effort.

Below I show one example on how we can approach this. Note that the main important point is the same:

to get the total effort to zero, but the burn down curve is the combination of both efforts. This can be more

complicated and time consuming, but it will show very clear the stages of both areas and its progress.

Also, I have added the notion of testing after code freeze, before and after demo. This is something

normally neglected by the community and I regard as source of bugs and delays for the next sprint. The

reason is that the demo is ‘never’ complete, and almost always has a last minute change, or worse, some

ghost presentation glitch.

Testing the Demo

If we assume that the test team has done all the necessary tests during the sprint, and the development

team has implemented and/or fixed all the issues, then the demo should be a breeze with no glitches. But

we know that until the last minute before the demo (and maybe beyond that) there will be still some open

questions or some last minute changes and implementations.

What we are going to do then? should we test more? Leave to the next sprint? Forget? (See the The

cycle of life)

My point is that the demo is not the final point for the test team; There are still some work to be done.

The priority should be to verify the last minutes changes, and may need for a post-testing time after the

demo day. This effort can be included in the next sprint, as a task, and making a small confusion, as the

5

team is still testing the ‘Sprint 1’ during ‘Sprint 2’. If some issues are uncovered during this task, what

will be the process? Most likely a bug issue will be added and need to be fixed (in which sprint?)

One solution could be to define a code freeze before the Demo day, and some questions need to be

answered: is the time enough, can all tests be done, code freeze is equal demo code, what development

will do during this time, etc. As you see, even this approach will not assure that the sprint delivery will be

ok and without bugs and misses.

Recurring tests in scrum

What about regression tests. When and How do we need to do it?

Surely it will take time for the test team to plan and perform it, and every new sprint the test team will

need to evaluate and redefine the test set. This is not a task that is related direct to a sprint, but an ongoing

process that is relevant to the entire project (and maybe after that).

Another issue is the Smoke test. I prefer it not to be part of the regression test, but a specific set designed

to prove the health of the delivery in order to star testing. During a Sprint it may be required to execute it

many times depending on the frequency of the released builds. This process needs to be evaluated,

planned and executed as part of the normal test process.

And what about Performance, Integration and Maintenance tests, these are not some tasks that can be

defined in a Sprint (normally), as they are more a continuous process and will certainly overlap many

sprints.

6

Scrum grooming

http://www.mitchlacey.com/intro-to-agile/scrum/release-planning-grooming

http://www.scrumalliance.org/community/articles/2011/march/how-to-hold-an-effective-backlog-grooming-session

One of the problems I have seem is the time and effort used to plan the next Sprint, called “Sprint

planning”. This sometimes take a day (and I have seen it takes 5 days). The idea is strait forward, the

team gets together , look in the base line and choose the top priority tasks for the next Sprint. Based on

the velocity, the team will know how much it can do. Clear and easy!

The problem is that, normally, almost no one in the team know about the next tasks and it’s needs, which

will need clarification. The points attributed to each task is therefore very empirical and based on gut-

feeling. Later in the process someone will need to clarify it, collect more information about the

implementation, test and other correlated needs.

My suggestion is to revert this time to a task done during the previous Sprint, having some members from

the team to get together with the PO and some others stakeholders, to choose and clarify the tasks for the

next Sprint, as well giving a preliminary point and collecting related information needed, like:

Development and Test environment, documentation, extra information from other projects, POC, etc.

My assumption is that in the end of a Sprint some people can be allocated to these tasks, as there is

probably not much more to do, the tasks are already under development/Test and the extra time needed is

already planned in the Sprint BL.

7

A good way to think when planning to do anything , these verbs are cyclical and part of the work (do and

repeat):

And always start the Sprint planning with a “Haka” dancing ;-)

http://www.bing.com/videos/search?q=rugby+haka&docid=608003589373233290&mid=0E93E0F3B9DC79A2

0F650E93E0F3B9DC79A20F65&view=detail&FORM=VIRE5#view=detail&mid=F563F188315908CBF8E0F

563F188315908CBF8E0

Are you the green, the white or the boll?

When doing scrum it is useful to think about the rules of a game.

As in rugby, we must understand the concepts of the game and

apply it to our profit; otherwise we can be defeated by a few simple

and commonplace problems. Here are some of the simple questions

we must answer before any attempt is made to implement scrum:

What side are we playing for?

o Customers, Market, Sales, our own job, etc.

What team do we support?

o What are our customers, internal and external?

Do we know the rules?

o Can we implement it, change, evolve, and combine?

o Have we competence in the techniques needed?

Are we trained enough?

o Training is never enough. Do we have planning and time to do it?

In a nice blog by Kurt Christensen “When is Scrum Not Scrum? “ (2007 - Yeap, that old! -

http://www.infoq.com/news/2007/02/scrum-not-scrum ), he points to some ideas that we cannot disregards.

Below I present these points. Try to imagine if those are applicable to your process and if you can come

with contra-arguments before you go and read his blog.

Why

What

How

Who

When

Where

8

Product owners are part of the team

Two-week sprints

Tasks are not measured in hours

Use of task boards rather than spreadsheets

Backlogs on the wall

Estimation meetings

Insistence on agile engineering practices

The Scrum Master role is not always necessary

Never mind the test plan

Think about that: How long takes to write a Test plan and Test strategy?

The problem is that normally it takes a long time to write, compile and review those documents, and in a

Scrum environment, it will be more than one sprint, and worse, probably no one will care.

Do we really need those docs? I guess not, the main reason is because we already have all the information

we need in Scrum, it is only a matter of looking in the right direction. Of course, the work evolution,

needs and learning will change the results, and we may need still to write a kind of documentation, but

only to keep the results and information in one place (which are dynamic)

Below I present the main points to be addressed by a Test plan, and were they are in the Scrum

framework.