from idea to production efficient agile software ...€¦ · from idea to production-efficient...

61
From Idea to Production - Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Upload: others

Post on 29-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

From Idea to Production

-

Efficient Agile Software Development

and

Challenges in Modern Software Engineering

Benjamin Nothdurft

Page 2: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Benjamin Nothdurft

IT Trainer, Speaker & Lecturer

Software Engineer

IT Conference & Meetup Organizer

Page 6: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Benjamin Nothdurft

facebook.com/dataduke

xing.to/dataduke

linkedin.com/in/dataduke

Page 7: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

From Idea to Production

-

Efficient Agile Software Development

and

Challenges in Modern Software Engineering

Benjamin Nothdurft

Page 8: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Part 1:

Efficient Agile Software Development

Roadmap PlanningScrum

Scrum ValuesRoles

MeetingsRetrospectives

Team Health MonitorAgile Fluency Model

Scaling Agile

Page 9: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Roadmap Planning

Page 10: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Roadmap

Page 11: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Scrum

The scrum process was founded in 1993 by Jeff Sutherland. Heborrowed the term „scrum“ from an analogy from a Harvard study

that compared high-performing, cross-functional teamsto the scrum formation used by Rugby

one of the most popular frameworks for implementing agilea simple framework for effective team collaborationproduct is built in a series of fixed-length iterationsfocusses on building software that meets business needs

Official Scrum Guide: http://www.scrumguides.org/index.html

Page 12: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Common communication problem

in software development

Page 13: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Agile Manifesto

Individuals and interactions over Processes and toolsWorking software over Comprehensive documentation

Customer collaboration over Contract negotiationResponding to change over Following a plan

http://agilemanifesto.org

Page 14: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Scrum Values

https://www.scrum.org/resources/blog/updates-scrum-guide-5-scrum-values-take-center-stage

Page 15: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Sprint

Scrum projects make progress in a series of “sprints"Typical duration is 2 – 4 weeksConstant duration leads to a better rhythmProduct is designed, coded, and tested during the sprint

Page 16: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft
Page 17: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Roles

Product Owner

Defines the features of the productResponsible for the profitability of the product (ROI)Maintains and prioritises the Product BacklogAdjusts features and priority every iteration, as neededAccepts or rejects work results

Page 18: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Roles

Scrum Master

Responsible for enacting Scrum values and practicesRemoves impedimentsEnsures that the team is fully functional and productiveEnables close co-operation across all roles and functionsShields the team from external interferencesFacilitates meetings

Page 19: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Roles

Developer Team

Typically 5 – 9 membersCross-functional (programmers, UI designers, testers etc.)Self-organisedDecides how features will be implemented

Page 20: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft
Page 21: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Artifacts

Product Backlog

A list of all desired work on the projectPrioritised by the product ownerRe-prioritised at the start of each sprint

Page 22: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Artifacts

Sprint Backlog

Set of product backlog items selected for the sprintHighly visible, real-time picture of the work that the teamplans to accomplish during the sprintTeam members choose tasks themselves, work is neverassignedOnly team members can add, delete or change the sprintbacklogWork remaining is updated daily

Page 23: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft
Page 24: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Meetings

Backlog Refinement

• Is held a couple of days before the end of a sprint• Presentation & estimation of new stories in the sprint backlog

Page 25: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Meetings

Sprint Planning I + Sprint Planning II

Sprint planning II is held directly after sprint planning ISprint planning I is used to build the sprint backlog and tocommit to the sprint goalSprint planning II is used to break each user story downinto manageable tasksParticipants: Developer Team, ScrumMaster and Productowner, sometimes stakeholdersDuration: 1,5 - 16 hours

Page 26: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Meetings

Daily Scrum Meeting

The daily scrum is not a status update for the ScrumMasteror product owner! They are commitments in front of peers.Goal: Team synchronises itself, Avoids other unnecessarymeetingsParticipants: Everyone is invited, only team members,Scrum Master and product owner talkDuration: 15 min. maxTypical Questions: What did I do yesterday? What will I dotoday? Is anything blocking me?

Page 27: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Meetings

Sprint Review

Typically takes the form of a demo of new features orunderlying architectureWorking product is shown, avoid presentation slidesOnly finished things are shownGoal: Team presents what is accomplished during the sprintParticipants: Everyone is invited. Developer Team, ScrumMaster, Product Owner are mandatoryDuration: between 15 min - max 1 hour

Page 28: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Meetings

Sprint Retrospective

Periodically take a look at what is and what is not workingDefine action items (and complete them within the agreedtimeframe)There are various ways to do sprint retrospectivesGoal: Improving team performanceParticipants: Developer Team, Scrum Master, ProductOwner (not mandatory), Others (if invited)Duration: At end of each sprint, 30 min - 90 minAlso possible: cross-team retrospectives

Page 29: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Meetings

Sprint Retrospective

Periodically take a look at what is and what is not workingDefine action items (and complete them within the agreedtimeframe)There are various ways to do sprint retrospectivesGoal: Improving team performanceParticipants: Developer Team, Scrum Master, ProductOwner (not mandatory), Others (if invited)Duration: At end of each sprint, 30 min - 90 minAlso possible: cross-team retrospectives

Page 30: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Retrospectives in Detail

Page 31: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Retrospectives in Detail: Set the stage

Page 32: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Retrospectives in Detail: Set the stage

Page 33: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Retrospectives in Detail: Set the stage

Page 34: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Retrospectives in Detail: Gather data

Page 35: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Retrospectives in Detail: Gather data

Page 36: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Retrospectives in Detail: Generate Insights

Page 38: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Retrospectives in Detail: Close

Page 39: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Retrospectives in Detail: Close

Page 40: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Sprint Burndown Chart

Page 41: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Team Health Monitor

https://www.atlassian.com/team-playbook/health-monitor/project-teams

Page 42: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

https://www.meetup.com/Agile-Jena/photos/26939029/#449592451

Page 44: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Recommended Literature

Scrum Guide by Ken Schwaber and Jeff Sutherland( )Scrum - verstehen und erfolgreich einsetzen by Stefan Roock andHenning WolfThe Nature of Software Development by Ron JeffriesEssential Scrum: A Practical Guide to the Most Popular Agile Processby Kenneth RubinUser Stories Applied: For Agile Software Development by Mike CohnInnovation Games by Luke HohmannGame Storming by Dave Gray, Suuni Brown and James MacanufoLean Enterprise: How High Performance Organizations Innovate atScale by Jez Humble, Joanne Molesky & Barry O'ReillyThe Lean Startup by Eric RiesMore books:

http://www.scrumguides.org/scrum-guide.html

http://www.agilenutshell.com/agile_books

Page 45: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

From Idea to Production

-

Efficient Agile Software Development

and

Challenges in Modern Software Engineering

Benjamin Nothdurft

Page 46: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Part 2:

Challenges in Modern Software Engineering

Communities of PracticeExtreme Programming (XP)

Conway's LawMicroservices

DockerContinuous Integration/Continuous Delivery

Software CraftsmanshipHackathons

Domain-Driven Design (DDD)

Page 47: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Community of Practice

Page 48: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Extreme Programming Techniques

Page 49: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Conway's Law

"Organizations which design systems […]are constrained to produce designs which

are copies of the communicationstructures of these organizations.”

– Melvin E. Conway

https://www.thoughtworks.com/insights/blog/demystifying-conways-law

Page 50: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Microservices

https://martinfowler.com/articles/microservices.html

Page 51: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Docker

https://de.slideshare.net/Docker/docker-birthday-3-intro-to-docker-slides

Page 52: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

https://docs.docker.com/get-started

Page 53: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

https://docs.docker.com/engine/reference/commandline/docker

Page 54: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft
Page 55: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

http://manifesto.softwarecraftsmanship.org

Page 56: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

KatasWhat makes a good practice session? You need time without interruptions, and a simple thing youwant to try. You need to try it as many times as it takes, and be comfortable making mistakes. Youneed to look for feedback each time so you can work to improve. There needs to be no pressure:this is why it is hard to practice in a project environment. it helps to keep it fun: make small stepsforward when you can. Finally, you’ll recognize a good practice session because you’ll came out of itknowing more than when you went in.Code Kata is an attempt to bring this element of practice to software development. A kata is anexercise in karate where you repeat a form many, many times, making little improvements in each.The intent behind code kata is similar. Each is a short exercise (perhaps 30 minutes to an hourlong). Some involve programming, and can be coded in many different ways. Some are open ended,and involve thinking about the issues behind programming. These are unlikely to have a singlecorrect answer. Remember that the point of the kata is not arriving at a correct answer. The point is the stuff youlearn along the way. The goal is the practice, not the solution.

http://codekata.com

Page 57: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Hackathons

Page 58: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Domain-Driven Design

Page 59: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Recommended Literature

Extreme Programming Explained: Embrace Change by Kent BeckBuilding Microservices by Sam NewmanRelease It!: Design and Deploy Production-Ready Software byMichael NygardContinuous Delivery: Reliable Software Releases Through Build, Test,and Deployment Automation by Jez HumbleUsing Docker: Developing and Deploying Software with Containersby Adrian MouatThe Software Craftsman: Professionalism, Pragmatism, Pride bySandro MancusoDomain-Driven Design: Tackling Complexity in the Heart of Softwareby Eric EvansThe Coding Dojo Handbook by Emily BacheDomain-Driven Design kompakt by Vaughn Vernon, Carola Lilienthal

Page 60: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

From Idea to Production

-

Efficient Agile Software Development

and

Challenges in Modern Software Engineering

Benjamin Nothdurft

Page 61: From Idea to Production Efficient Agile Software ...€¦ · From Idea to Production-Efficient Agile Software Development and Challenges in Modern Software Engineering Benjamin Nothdurft

Part 3:

Übung zu Event Storming

Entwickle ein Schemadarstellung zum Prozess derDurchführung eines Hochschulkurses. Welche Akteure

sind involviert? Welche Events müssen erfolgen?