2Before we start… Paavo Pekkanen Today’s topics: Graduated from EVTEK 2006NokiaScrum masterToday’s topics:Software development processes in generalScrum software developmentRolesPracticesArtifactsToolsValues
3Waterfall process What’s wrong with waterfall? Why can’t we use it? If it’s not broken, don’t fix it!But… Have you ever had any of these problems?Things didn’t go exactly as planned?Delivered software wasn’t exactly what the customer neededDelivering new features to your software takes too much timeWell… Of course… But you can’t avoid these problems, can you?You can, if you have the right tool for the right purpose. Maybe you should try Scrum or some other agile method?
4Lean, Agile, Scrum – what’s difference? Lean – a “philosophy” to optimize everythingScrum, Kanban & XP – agile process tools with lean characteristicsAgile – a project management methodology
6Scrum in a nutshell Scrum defines: Set of practicesRolesSplit the work into short iterative cycles - “sprints”Typical sprint length is 1-4 weeksEvery sprint produces potentially shippable product incrementNew releases are shipped frequently, but with “small steps”Scrum doesn’t have to be about software development
13Scrum roles Scrum defines four roles: NO project manager! Business ownerProduct ownerScrum masterTeam memberNO project manager!
14Scrum Roles Business owner “The boss” Supplies resources to the team Sets the direction of the business
15Scrum Roles Product owner Sets the direction of the product Collects the new requirements from all of the stakeholdersPrioritizes the requirements“The voice of the customer” for the development teamDoesn’t have a permission to interfere the daily development workIs NOT a manager of the team
16Scrum Roles Scrum master Responsible for the scrum process Facilitates Makes sure the Scrum principals are obeyedFacilitatesTakes care of the practical things“Servant leader“Removes impedimentsAnything which prevents or slows down the working of the development team“A team’s bulldozer”Acts as a buffer between the development team and the rest of the worldShields the team against any external interferenceKeeps everything visible!Is NOT a manager of the team
17Scrum Roles Development team (scrum team) Typical size: 5–9 people Responsible to deliver the product incrementCommits to the sprint goals agreed with the product ownerSelf-organizingCross-functionalProtected against any external interference Allowed to be concentrated to work only on things it does the best – delivering the product increment of the current sprint
18Can one person have more than just one role? QuestionCan one person have more than just one role?
19Scrum Roles Avoid situation where one person has more than one role Sometimes it’s not possibleScrum master + product owner = conflicts of interestScrum master + team member = no real scrum masterMake sure everyone understands the rolesWhich responsibilities belong to each roleCommon mistakes which ARE NOT TRUE:Scrum master is the “Project manager”Product owner is the “Project manager”Product owner is responsible for the businessScrum master controls the requirements (user stories)Team members report to scrum master in daily meetings
20Recap – any questions? Business owner Product owner Scrum master “The boss”Product ownerManages the requirementsKnows what the customer wantsScrum masterEnsures the scrum principles are followedEnsures the development team is fully functional and productiveScrum team / Development teamOrganizes itself and its work
21Scrum Practices – Sprint planning Product backlogCollection of “stuff” to be done “someday”Typically a list of requirement specifications for new featuresCould include also “studies”, “issues”, “bugs” or any work which takes the development team’s timeSingle requirement is called PBI, Product Backlog ItemAnyone can add new items into the product backlogItems must be prioritized“Features A, D and G are the most important!”Product owner is responsible for the priority orderRequires close collaboration with all of the stakeholdersPriority must be updated frequently!
22Scrum Practices – Sprint planning Sprint backlogA subset of the Product backlogList of the requirements for the current sprint“These are the most important requirements - today!”Content agreed together with the product owner and the scrum teamPO doesn’t have the power to decide the content aloneScrum team has the power to “no, that’s impossible”“What’s not in the backlog, doesn’t exist”No one can ask the scrum team to do anything outside the sprint content
23QuestionA big boss enters the development team’s room saying: “I have a very important demo with a customer next week. I need you to implement this sales statistics feature asap!” What happens?
24Scrum Practices – Sprint planning Product Backlog Item (PBI)Typically a requirement for a new featurePBI must haveA user story, which describes the itemAn acceptance criteria, which defines the Definition of Done (DoD)Additionally PBI can haveSize estimationStory pointsTeam votes the sizeAccuracy improves slowlyBusiness value estimation“How much we want it?”“How much it hurts us to not to have it”MySQl daily backup and restoration mechanismAs a customer, I don’t want to lose my data if the MySQL server crashes.Acceptance criteria:There are automatic daily backups done for all the data in databaseRestoration scripts are manualAfter incident occurred, solved and servers running, data restoration should be possible to do in 1 hourThese new features are documented internallyAll these features have been tested and no open bugs remainOther parts of the system has not been broken by these modifications
25Recap – any questions? Product backlog Sprint backlog Collection of work to doSprint backlogA subset of Product backlogDefines the goals for the current sprintProduct Backlog Item (PBI)A feature requirement or any other work which takes time
26Scrum Practices – Sprint planning Task listTODO list of everything one must do during the sprintTasks are created from the content of the sprint backlog itemsShows the status of the sprint progressKeeps track of the daily development work
27Task list example – Beginning of the sprint User storyNot startedIn progressDoneImplement the UIAs an end user, I want to… blaa blaa blaa… so that I can… blaa blaa blaaAs an end user, I want to… blaa blaa blaa… so that I can… blaa blaa blaaWrite the test casesRun the test casesTask AAs an administrator, I want to….Task BTask CTask D
28Task list example – In the middle of the sprint User storyNot startedIn progressDoneWrite the test casesAs an end user, I want to… blaa blaa blaa… so that I can… blaa blaa blaaAs an end user, I want to… blaa blaa blaa… so that I can… blaa blaa blaaImplement the UIRun the test casesTask AAs an administrator, I want to….Task BTask CTask D
29Task list example – In the middle of the sprint User storyNot startedIn progressDoneWrite the test casesRun the test casesAs an end user, I want to… blaa blaa blaa… so that I can… blaa blaa blaaAs an end user, I want to… blaa blaa blaa… so that I can… blaa blaa blaaImplement the UITask ATask BAs an administrator, I want to….Task CTask D
30Task list example – At the end of the sprint User storyNot startedIn progressDoneWrite the test casesAs an end user, I want to… blaa blaa blaa… so that I can… blaa blaa blaaAs an end user, I want to… blaa blaa blaa… so that I can… blaa blaa blaaImplement the UIRun the test casesTask AAs an administrator, I want to….Task BTask CTask D
34Who assigns the tasks for individual team members? QuestionWho assigns the tasks for individual team members?
35Scrum Practices – Sprint in action Daily ScrumDaily stand-up meeting for the team to share informationThe meeting must be so short and efficient that people don’t have to sit, 5 to 10 minEvery team member is asked:What did you do yesterday?What will you do today?Do you have any impediments with your work?When it’s not your turn to speak, SHUT UP and listen!Scrum master makes sure the discussion keeps on track
36A team starts to use the daily scrum practice, what will change? QuestionA team starts to use the daily scrum practice, what will change?
37Scrum Practices Sprint review meeting All the stakeholders are invited The scrum team demonstrates what was built during the sprintProduct owner declares whether the acceptance criteria was met for each item, or notAccepted items have permission to be released
38What happens, if an item doesn’t meet the acceptance criteria? QuestionWhat happens, if an item doesn’t meet the acceptance criteria?
39Scrum Practices Retrospective meeting Feedback meeting after every sprintFacilitated by the scrum masterThe team considers“What did we do well”“What can we do better?”Translate to actions“Inspect and adapt”
40Recap – any questions? Task list Daily scrum Sprint review TODO list for the sprintTeam members pick tasks for themselvesDaily scrumDaily stand-up meeting to share informationKept short and efficientSprint reviewTeam demonstrates the outcome of the sprint to Product ownerRetrospective meetingThe scrum team analyzes their own process
41How to write a user story Template: As a <some role>, I want <something>, so that <some value>Describes who wants, what wants and what for in one sentenceExamples:“As an end user I want to be able to upload my picture to my profile page, so that my profile page looks cool”“As a sales person, I want to see statistics of my performance in graphical charts, so that I monitor my performance”“As an administrator, I want to have database backups, so that I won’t be in big trouble if something unexpected happens”User story does not define any details of the implementation!Every user story needs a Definition of Done (acceptance criteria)
42Definition of DoneDefinition of Done must describe exactly what “done” meansProduct Owner must pay careful attention when defining the DoDThe scrum team must challenge the DoD, if necessary“What’s not in DoD, is not needed”Item is either “done” or “not done”Example:Story: Picture uploadend user can upload his/her picture from profile settings pagepicture is shown on the left upper corner of the profile pagepicture is scaled to fit the profile picture box on the profile pagefunctional tests are passedregression tests are passeddesign documents are updateduser's guide is updatedDoes not define any details of the implementation!
43How to define tasks What’s a good size for a task? You don’t know before you trySome tips and hints:If completing the task takes more than you can do in one day, ask yourself: “Can I split this in two?”If it takes more time to write the tasks than doing the tasks, ask yourself: “Am I writing too small tasks?”BUT… If a very small task is critical and easy to forget, maybe it’s a good idea to put it on the task boardBe clear on writing the taskAny team member must understand what the task is aboutNew tasks occur in every projectAny team member can write new tasks when neededLeave some room for surprisesRemember the team is self-organized, DON’T assign tasks to peopleIf you pick a task, the rest of the team trust you really do that taskYou should finish the task before picking the next one
44Task examples Story: Tasks: TOTAL HOURS: 39 “As an end user I want to be able to upload my picture to my profile page, so that my profile page looks cool”Acceptance criteria (DoD):end user can upload his/her picture from profile settings pagepicture is shown on the left upper corner of the profile pagepicture is scaled to fit the profile picture box on the profile pagefunctional tests are passedregression tests are passeddesign documents are updateduser's guide is updatedTasks:Update DB structure (1h)Implement changes to “Profile settings” page (3h)NOTE: Ask the product owner for picture size limitationsImplement changes to “Profile” page (3h)NOTE: picture goes to left upper cornerNOTE: picture must be scaled to fit the picture boxCode review (4h)Update design documents (1h)Update user’s guide (1h)Write test cases (5h)Test case review (15h)Run functional test cases (4h)Run regression test cases (4h)TOTAL HOURS: 39
45What are your organization’s values? QuestionWhat are your organization’s values?
46Scrum Values Scrum has five values CommitmentBe willing to commit to a goal. Scrum provides the tools for it.FocusDo your job. Focus all your efforts and skills on doing the work that you’ve committed to doing. Don’t worry about anything else.Scrum has five valuesCommitmentFocusOpennessRespectCourageWARNING: If your team lacks these values, you will most probably fail in scrum implementationOpennessScrum keeps everything about a project visible to everyone.RespectIndividuals are shaped by their background and their experiences. It is important to respect the different people who comprise a team.CourageHave the courage to commit, to act, to be open and to expect respect.