Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Understanding Scrum [closed]

I have been working as a .net developer following the waterfall model. When working on, say a 12 months project, usually my team follows Analysis, Design, Coding and Testing phases. But when it comes to following the Scrum process, I don't really understand how I need to deal with it.

Consider a sprint for 4 weeks and the backlog has 10 items. Let the sprint start now. If developers are working on some backlog items for the first 10 days, I don't know if testing (both SIT and UAT) will require JUST the remaining 10 days to complete the work. And now our sprint does not have any time to do last minute bug fixes and only few bugs could be fixed IN THE PLANNED SPRINT.

And when we do development, how can we make sure that we keep the testing team busy apart from just preparing test cases and waiting for us to deliver the functionality?

This raises a question if we need to deliver the first task/feature within the first 3 days of the sprint, so that testers might be ready with their test cases to test that piece.

I also need to educate my client to help in adapting the Scrum process.

I need some guidelines, references or a case study to make sure that our team follows a proper Scrum process. Any help would be appreciated.

like image 977
SARAVAN Avatar asked Jun 24 '10 14:06

SARAVAN


People also ask

How do you close a Scrum project?

You do not "close a project" in Scrum. You retire a product. You can organize the work in groups of related Product Backlog Items to define a "project" and as such each Product Backlog would be used across many projects. Projects are not part of the Scrum framework.

What happens when Scrum is Cancelled?

In Scrum Guide we can find: When a Sprint is cancelled, any completed and "Done" Product Backlog items are reviewed. If part of the work is potentially releasable, the Product Owner typically accepts it. All incomplete Product Backlog Items are re-estimated and put back on the Product Backlog.

Does Scrum Master close the sprint?

In JIRA, sprint completion is primarily handled by the Scrum master when the Sprint timebox expires. Sprints in JIRA must be managed to close sprint in JIRA.

How do you close a sprint in Scrum?

Go to the Active sprints of your Scrum board. If necessary, select the sprint you want to complete from the sprint drop-down. Note that if you have multiple sprints in the Active sprints of your board, the 'Complete Sprint' button will not appear until you select one of the sprints. Click Complete Sprint.


2 Answers

In an ideal Scrum team, testers and developers are part of the team and testing should occur in parallel of the development, the phases are overlapping, not sequential (doing things sequentially inside a Sprint is an anti-pattern known as Scrumerfall). And by the way, contrary to some opinions expressed here, an ultimate Scrum implementation produces DONE DONE stories so testing - including IST, UAT - should be done during the Sprint.

And no, testers don't have to wait for Product Backlog Items (PBI) to be fully implemented to start doing their job, they can start writing acceptance tests scenarii, automate them (e.g. with FitNess), set up test data set, etc (this takes some time, especially if the business is complicated) as soon as the Sprint starts.

Of course, this requires very close collaboration and releasing interfaces or UI skeletons early will facilitate the job of testers but, still, testers don't have to wait for a PBI to be fully implemented. And actually, acceptance tests should be used by developers as DONEness indicator ("I know I'm done when acceptance tests are passing")1.

I'm not saying this is easy, but that's what mature (i.e. Lean) Scrum implementations and mature Scrum teams are doing.

I suggest reading Scrum And XP from the Trenches by Henrik Kniberg, this is very good practical guide.

1 As Mary Poppendieck writes, the job of testers should be to prevent defects (essential), not to find defects (waste).

like image 69
Pascal Thivent Avatar answered Oct 03 '22 06:10

Pascal Thivent


You definitely don't want to do all development in the first half of the sprint and all testing in the second half. That's just a smaller waterfall.

Your stories and tasks should be broken up into very small, discrete pieces of functionality. (It may take a while to get used to doing this, especially if the software you're working on is a monolithic beast like a previous job of mine that moved to using scrum.) At the beginning of the sprint the testers are developing their tests and the developers are developing their code, and throughout the sprint the tasks and stories are completed and tested. There should be fairly constant interaction between them.

The end of the sprint may feel a bit hectic while you're getting used to the methodology. Developers will feel burdened while they're working on the rest of the code and at the same time being given bugs to fix by the testers. Testers will grow impatient because they see the end of the sprint looming and there's still code that hasn't been tested. There is a learning curve and it will take some getting used to, the business needs to be aware of this.

It's important that the developers and testers really work together to create their estimates, not just add each other's numbers to form a total. The developers need to be aware that they can't plan on coding new features up until the last minute, because that leaves the testers there over the weekend to do their job in a rush, which will end up falling back on the developers to come in and fix stuff, etc.

Some tasks will need to be re-defined along the way. Some stories will fail at the end of the sprint. It's OK, you'll get it in the next sprint. The planning meeting at the start of each sprint is where those stories/tasks will be defined. Remember to be patient with each other and make sure the business is patient with the change in process. It will pay off in the long run, not in the first sprint.

like image 36
David Avatar answered Oct 03 '22 05:10

David