SlideShare a Scribd company logo
Introduction PSD
Professional Scrum Developer Java
Who am I? Who are you?
Name From What would I be if I did not end up in IT?
Rules during the course
● Questions?
– Ask!!!!
– Or put them on the board
● Mobile phones
● Laptops
● Breaks
Course content
1. Introduction
2. Scrum explained
3. Scrum courses
4. Agile Testing & TDD
5. Pair Programming
6. Clean Code
7. Continuous Delivery
8. Tools
9. Books
Scrum explained (5 min.)
● Question:
What is Scrum for you?
● Put in one sentence on a post-it what you think
Scrum is.
Scrum explained
● What are the results? Discuss.
Scrum explained
● Definition:
Scrum is a framework for developing and
sustaining complex products.
Scrum explained: Roles
● Product Owner
– Maximize value of the product
– Manages Product Backlog
– 1 person!
– Prioritizes PBI's
● Scrum Master
– Ensures Scrum is understood & enacted
– Servant leader
– Helps Product Owner, Development Team & Organization
– Applies Scrum theory, practices & rules
© 1993 - 2013 Scrum.org, All Rights Reserved
Scrum explained: Roles
● Development Team
– Professionals
– Self organizing
– Everyone is a developer
– Cross functional
– Self Organizing
● Scrum Team
– Consists of “Development Team”, “Product Owner” and
“Scrum Master”
© 1993 - 2013 Scrum.org, All Rights Reserved
Scrum explained: Roles
Scrum explained: Events
● Sprint Planning
– Define work to be performed during the upcoming Sprint.
– Timeboxed: 8 hours for 4 week sprint
– Two parts
● What will we do
● How will we do it
– Sprint Goal
● Daily Scrum
– Daily 15 minute time boxed event
– For the Development Team
– No status meeting
© 1993 - 2013 Scrum.org, All Rights Reserved
Scrum explained: Events
● Sprint Review
– Inspect the increment and adapt Product Backlog
– Invite stakeholders
– Timeboxed: 4 hours for 4 week sprint
● Sprint Retrospective
– Opportunity to inspect how we are working and to
adapt
– For the Scrum Team
– Timeboxed: 3 hours for 4 week sprint
http://davidemanske.com/wp-content/uploads/2013/06/SpeedBoatRetrospective-300x128.png
http://www.flickr.com/photos/92328289@N02/
Scrum explained: Events
● Sprint
– The heart of Scrum
– Timeboxed: Max one month.
– Delivers a “Done”, useable and potentially
releasable product increment
– Contains all the other events
http://www.flickr.com/photos/gareth_price/
Scrum Explained: Artifacts
● Product Backlog
– Ordered list
– Never complete
– Contains PBI's
– Product Owner is responsible
● Sprint Backlog
– Set of Product Backlog Items
– Plan for delivering Product Increment
– Contains Sprint Goal
● Increment
– Sum of all PBI's done during a Sprint
Management by walking around
● Round 1
– Pair up: one person will be manager, other the worker
– Simulation: shopping mall traffic, by walking from one
shop to another
– Goal: Take 60 steps
– Instructions:
● Go 1 step forward
● Turn 1 step left
● Turn 1 step right
● Stop
– Manager counts the number of steps
– You get 60 seconds
Management by walking around
● Round 1 evaluation
– How many steps did you take?
– How did you feel? Managers? Workers?
Management by walking around
● Round 2
– No more pairs
– Goal: Take 60 steps
– Each person counts his own steps
– You get again 60 seconds
Management by walking around
● Round 2 evaluation
– How many steps?
– How did you feel?
https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Fugle,_%C3%B8rns%C3%B8_073.jpg/250px-Fugle,_%C3%B8rns%C3%B8_073.jpg
Scrum explained: self organizing
● No one (not even the Scrum Master) tells the Development
Team how to turn Product Backlog into Increments of
potentially releasable functionality.
● The Development Team self-organizes to undertake the
work in the Sprint Backlog, both during the Sprint Planning
Meeting and as needed throughout the Sprint.
● Self-organizing teams choose how best to accomplish their
work, rather than being directed by others outside the
team.
Scrum explained: self organizing
Old style Scrum
Team lead assigns tasks Development figures it out ;-)
No such thing as people working together Pair programming
All communication is done through team
lead
Direct communication between developers
Weekly status meeting, reporting to
manager
Daily Scrum
Team lead is responsible The whole Scrum Team is responsible,
including ALL developers.
Scrum explained: transparency,
inspect & adapt
● Pillars of empirical process control
– Transparency: be realistic, no hidden stuff
– Inspection: Look back, measure stuff
– Adaption: Be open for changes!
● You can NOT predict the future
Scrum explained: transparency,
inspect & adapt
Cirkel van Deming
PlanPlan
Inspect
Do
Goal
• Constantly improve
• Deliver faster
• Deliver more efficient
• Deliver with higher quality
Act
Scrum explained: Cross functional
DBA
Testing
Development
Analysis
Operations
DBA
Testing
Development
Analysis
Operations
DBA
Testing
Development
Analysis
Operations
DBA
Testing
Development
Analysis
Operations
DBA
Testing
Development
Testing
Analysis
Operations
TEAM 1 TEAM 2
Testing
Development
Testing
TEAM 3 TEAM 4
Analysis
Testing
Analysis
Scrum explained: DoD
“Done”: Means a PBI is
potentially shippable.
Definition of Done (DoD)
● Checklist
● Visible
● Inspected & adapted
Scrum explained: DoD (5min.)
● Answer the following questions:
– What is your Definition of Done?
– Who owns the Definition of Done?
– Who or what influences it and how?
Scrum explained: DoD (5min.)
● Answer the following questions:
– What is your Definition of Done?
– Who owns the Definition of Done?
– Who or what influences it and how?
Scrum explained: Estimation
Architect
Team
Customer
When?
During BDUF
Sprint Planning
All the time
How?
Hours
Fibonacci
Beers
...
Scrum explained: Estimation
● How?
– In group!
– Discussion & Conversation is most important.
– Relative to other things
● Hours???
– Parkinson's law: When an item is finished earlier, the
developer will fill remaining time.
– Ideal or working hours?
Example: Why 16 hours and not 15?
Scrum explained: Poker planning
http://wendysdogwalking.co.uk/wp-content/uploads/2013/04/dog-on-sofa-300x225.jpg
Scrum explained: Backlog
refinement
● aka Grooming
● Refine PBI's
– Clear and understood
– Estimated
– Broken down in small enough items
– Have acceptance criteria
Product Owner
+
Development Team
During EACH Sprint
Timeboxed
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
So that ….
As a …
I want to …
As a …
I want to …
So that ….
3
1
0
8
13
●
●
●
Scrum explained: Cone of
Uncertainty
www.construx.comInitial Estimate
Product Backlog
Item Estimate
Sprint Backlog
Item Estimate
Scrum explained: Waterfall vs.
Scrum
Requirements
BDUF
Development
Testing
Done
Requirements
BDUF
Development
Testing
Done
Requirements
BDUF
Development
Testing
Done
Requirements
BDUF
Development
Testing
Done
Requirements
BDUF
Development
Scrum explained: Waterfall vs.
Scrum
D
O
N
E
D
O
N
E
D
O
N
E
D
O
N
E
DO
N
E
● Done is Live
● Collaboration
● Communication
● Requirements, Design, Development, Testing
– All done in parallel, during Sprint
Scrum explained: Waterfall vs.
Scrum
Visibility Ability to Change
Business Value Risk
Waterfall Scrum
© 1993 - 2013 Scrum.org, All Rights Reserved
Scrum explained: Scope,
Resources, Time and Quality
● Project Management Triangle
QUALITY
SCOPE
TIME
RESOURCES
Scrum explained: Where to start?
● Read the Scrum guide!
● Embrace failure.
● Do some assessments
http://www.scrum.org/Assessments/Open-Assessments
● Practice, practice, practice
● And practice
● Follow the rules, no exception.
© 1993 - 2013 Scrum.org, All Rights Reserved
Scrum.org courses
Professional
Scrum
Product Owner
Professional Scrum Foundations
Professional
Scrum Master
Professional
Scrum
Developer
.NET | Java
Product Owners
Executives Scrum Masters
Architects
Business Analysts
DB Specialists
Designers
Developers
Testers
Everyone
© 1993 - 2013 Scrum.org, All Rights Reserved
Scrum.org courses
Courses Public and private courses are offered worldwide Assessments Certification
Professional Scrum
Foundations
Hands-on training for people
looking to start Scrum or reboot
a struggling implementation.
Professional Scrum
Master
In-depth training for Scrum
Masters and experienced
practitioners needing more
advanced instruction.
Professional Scrum
Product Owner
Teaches people how to
maximize ROI, and optimize the
Total Cost of Ownership of
products and systems.
Professional Scrum
Developer
Students work as part of a
self-organizing team to learn
how to use ALM tools and
Software development best
practices in Scrum.
Certification
only granted
to those that
achieve a
passing score
on the
associated
assessment
Scrum.org vs Scrum Alliance
● Scrum.org
– Assessments have more value.
– Each course is the same (doesn't depend on the
trainer)
– Open for feedback and improvements
– Home of Scrum!
● Scrum alliance
– Easier to get certified
– ...
Time for ….
Agile Testing
● Quadrants
Acceptance Testing
Functional Tests
Integration Tests
Exploratory Testing
Scenario Testing
Usability Testing
Test by End User (UAT)
Unit Test
Module Tests
Component Tests
Performance & Load Testing
Security Testing
*ility Testing
Technology Facing
Business Facing
Automated
Automated Manual
Manual?
© 1993 - 2013 Scrum.org, All Rights Reserved
Brian Marick, http://bit.ly/PrsMY1
Agile Testing
● Test Pyramids Mike Cohn, Succeeding with Agile
UI
Service
Unit
● Not executed frequently
● Take long time to execute
● Executed frequently
● Take short time to execute
Agile Testing (5min.)
● What is wrong with the following?
UI
Service
Service
Unit
Unit
UI
Service
Unit
UI
Service
Unit
UI
Service
Unit
How
do your current tests look like? Explain.
TDD (Test Driven Development)
● TDD Cycle
Write Test Watch Test
Fail
Write simplest
code
Run all tests
Refactor
Run all tests
Idea?
TDD (Test Driven Development)
● Three Laws of TDD
– First: You may not write production code until you have written
a failing unit test.
– Second: You may not write more of a unit test than is sufficient
to fail, and not compiling is failing.
– Third: You may not write more production code than is
sufficient to pass the currently failing test.
● Keep test clean!
● One Assert per Test.
● Single Concept per Test.
Robert C. Martin
TDD (Test Driven Development)
● F.I.R.S.T.
– Fast
Tests should be fast.
– Independent
Tests should not depend on each other.
– Repeatable
Tests should be repeatable in any environment.
– Self-Validating
Tests should have a boolean output (pass or fail).
– Timely
Tests should be written before the production code.
Robert C. Martin
TDD (Test Driven Development)
Kata String Calculator
● Before you start:
– Try not to read ahead.
– Do one task at a time. The trick is to learn to work
incrementally.
– Make sure you only test for correct inputs. there is
no need to test for invalid inputs for this kata
http://osherove.com/tdd-kata-1/
Kata String Calculator (10min.)
Part 1
● Create a simple String calculator with a method
int Add(string numbers)
– The method can take 0, 1 or 2 numbers, and will return their sum
(for an empty string it will return 0) for example “” or “1” or “1,2”
– Start with the simplest test case of an empty string and move to
1 and two numbers
– Remember to solve things as simply as possible so that you
force yourself to write tests you did not think about
– Remember to refactor after each passing test
http://osherove.com/tdd-kata-1/
Kata String Calculator (2 min.)
Part 1: Review
● Who has written first a test, before writing the
Calculator class?
● How many tests do you have now?
● How many times did you run the test?
● How many times did you refactor your code?
http://osherove.com/tdd-kata-1/
Kata String Calculator (10 min.)
Part 2
● Allow the Add method to handle an unknown
amount of numbers
● Allow the Add method to handle new lines
between numbers (instead of commas).
– the following input is ok: “1n2,3” (will equal 6)
– the following input is NOT ok: “1,n” (not need to
prove it - just clarifying)
http://osherove.com/tdd-kata-1/
Kata String Calculator (2 min.)
Part 2: Review
● Who followed TDD Cycle?
● How many tests do you have now?
● Who wrote multiple tests at once?
● What about exceptions?
http://osherove.com/tdd-kata-1/
Kata String Calculator (10 min.)
Part 3
● Support different delimiters
– to change a delimiter, the beginning of the string will
contain a separate line that looks like this: “//
[delimiter]n[numbers…]” for example “//;n1;2”
should return three where the default delimiter is ‘;’ .
– the first line is optional. all existing scenarios should
still be supported
http://osherove.com/tdd-kata-1/
Kata String Calculator (2 min.)
Part 3: Review
● Who followed TDD Cycle?
● How do the names of your tests look like?
[MethodUnderTest]_[Given]_[Then]?
● How many asserts does one test contain?
http://osherove.com/tdd-kata-1/
Kata String Calculator (10 min.)
Part 4:
● Calling Add with a negative number will throw
an exception “negatives not allowed” - and the
negative that was passed. If there are multiple
negatives, show all of them in the exception
message
http://osherove.com/tdd-kata-1/
Kata String Calculator (10 min.)
Part 4: Review
● Who wants to show the result?
http://osherove.com/tdd-kata-1/
Agile Testing: Code Coverage
What does this mean?
Agile Testing: Tools
Time for ….
Time for ….
Pair Programming
Pair Programming
● Roles
– Driver
– Navigator
● Rules
– Pair on everything you'll need to maintain.
– Allow pairs to form fluidly rather than assigning partners.
– Switch partners when you need a fresh perspective.
– Avoid pairing with the same person for more than a day at a time.
– Sit confortable, side by side.
– Produce code through conversation. Collaborate, don't critique.
– Switch driver and navgator role frequently.
Pair Programming
● Advantages
– Higher quality
– Constant knowledge sharing
– Deliver faster
– Faster development
– An extra pair of eyes
– If Bob (the guru) leaves for a round-the-world trip →
He Can!
– If Rob (the junior) joines the company, he gets up to
speed in notime.
Pair Programming
● Disadvantages
– Are there?
Clean Code
● Michael Feathers, author of Working Effectively
with Legacy Code
“Clean code always looks like it was written by
someone who cares. There is nothing obvious
that you can do to make it better”
Elegant
Efficient
Straightforward
Simple
Direct
Well written
Meaningfull
Clear
Beautifull
Time for ….
Clean Code: Boy Scout Rule
“Leave the campground cleaner
than you found it.”
Clean Code: Broken Windows
Theory
The broken windows theory is a criminological theory of the norm-setting and signaling effect of
urban disorder and vandalism on additional crime and anti-social behavior. The theory states
that maintaining and monitoring urban environments in a well-ordered condition may stop further
vandalism and escalation into more serious crime.
http://en.wikipedia.org/wiki/Broken_windows_theory
● Just add another “if”.
● Dirty code invites to add
more smells.
● Growing method length
● Growing class length
● ...
Clean Code: How to measure?
● The # tests?
● The # bugs?
● The # duplicated code?
● The # unused code?
● ...
Clean Code: How to measure?
http://www.osnews.com/story/19266/WTFs_m
Clean Code: Clean Kitchen
3 Michelin sushi chef Saito is a master with the knife
http://youtu.be/robvvJZkfcU
Clean Code: Names
● Use meaningful names
● Use intention – revealing names
● Avoid disinformation
● Use pronounceable names
● Avoid encodings
– No Hungarian Notation
– Member prefixes?
● Use solution domain names
● Use problem domain names
● Pick one word per Concept
– No “get”, “retrieve”, “fetch”, ….
Clean Code: Names (15min.)
● Checkout the code @
https://github.com/jdewinne/PSDExamples
● Refactor the following code: Names.java
Clean Code: Names (10min.)
● Who wants to show the result?
Clean Code: Functions
● Small!
● Do one thing!
● Reading code from Top to Bottom
The stepdown rule
● Arguments
– No flags
– As less as possible
– Don't use it for returning values
● Have no side effects
– “checkPassword” should not create a session
● Exceptions over Error codes
● DRY
Clean Code: Functions
Any comments?
Clean Code: Comments
“Don't comment bad code – rewrite it.”
Brian W. Kernighan and P.J. Plaugher
● Explain in code, not in comments
● Redundant comments :-(
● Misleading comments :-(
● Commented out code :-(
● HTML comments :-(
● Too much information (Do not add the whole
specification document)
Clean Code: Comments (20 min.)
● Checkout the code @
https://github.com/jdewinne/PSDExamples
● Refactor the following code: Comments.java
Clean Code: Comments (10min.)
● Who wants to show the result?
Clean Code: Formatting
● Vertical formatting
– Lines per file.
– Each class should be max 200 lines!
– Vertical openness
● Use some white lines ;-)
– Vertical Density
● Tightly related lines should be close to each other
● Horizontal formatting
– Line length
– Each line should max be 120characters long
– Horizontal Openness and Density
– Indentation
● Team rules!!!!!!!!!
Clean Code: Law of Demeter
● A module should not know about the innards of
the objects it manipulates.
customer.getAddress().getBillingAddress().getLine1()
government.getPresident().getJobDescription().setName()
Clean Code: Exceptions
● Use exceptions, instead of return codes.
● Use meaningful exceptions
● Don't return null
● Don't pass null
● Write the try / catch / finally first
● Use unchecked exceptions
Clean Code: Emergent Architecture
(5min.)
● How does your architecture looks like?
● First design, then implement?
● You think also of the future? And have statements like:
– It must be scalable
– It must be extensible for any feature we can think of
– …
Discuss!
Clean Code: Emergent Architecture
● BDUF is waste!
● TDD is design.
● BDD is design.
● Allow your architecture to emerge as you
develop.
● Think in slices (not in layers)
Clean Code: Technical debt
Code Rots
in Presence
of Change!
Clean Code: Technical debt
Broken
window
Phenomena
Clean Code: Technical debt
● Technical debt = Defects, complexity,
coupled code, lack of testing, duplication, …
● Do NOT let it grow!
Value
Technical
debt
Clean Code: SOLID
SRP (Single Responsibility Principle)
DB
Customer
Persistence
System
DB
Customer
Enterprise Java Beans 1/2 Java Persistence API
Clean Code: SOLID
OCP (Open Close Principle)
http://lostechies.com
● Open for Extension
● Closed for
Modification
Clean Code: SOLID
LSP (Liskov Substitution Principle)
Functions that use pointers
to base classes must be
able to use objects of
derived classes without
knowing it.
http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/
Clean Code: SOLID
ISP (Interface Segregation Principle)
http://javiernavarromachuca.blogspot.nl/2011/07/interface-segregation-principle.html
● One interface per kind of
client.
● No methods in interface that
client does not use.
● No “fat” interfaces.
Clean Code: SOLID
DIP (Dependency Inversion Principle)
http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/
● “High-level modules should
not depend on low-level
modules. Both should
depend on abstractions”
● “Abstractions should not
depend on details. Details
should depend on
abstractions”
Time for ….
Continuous Delivery
Row 1 Row 2 Row 3 Row 4
0
2
4
6
8
10
12
Column 1
Column 2
Column 3
Source Control
Automated
build
Continuous
integration
Automated
Testing
Automated
Deployments
Continuous
Delivery
Automated
Provisioning
Continuous Delivery
Continuous Delivery
Deployment Pipeline provides
constant quick feedback
Continuous
Integration
Middleware
Provisioning
Virtualized
Infrastructure
Test ToolingDevelopment
Central
Monitoring &
Logging
Application
Release
Automation
O T A P all identical
On Demand
Environments
Continuous Delivery
Time to Market
Continuous Delivery
Cost Reduction
Continuous Delivery
Building Blocks
Videos: www.cleancoders.com
Videos: Dan Pink
The surprising truth about what motivates us
Videos: Pentagon wars
Tools
●
Management: Jira, Trello, Excel
●
Continuous Integration: Jenkins, Bamboo, Hudson
●
Testing: JUnit, FitNesse, Cucumber, DBUnit, TestNG, Greenpepper, Jbehave,
Jacoco, Arquillian, ...
● Automated Deployment: Deployit, Nolio, uDeploy
● Collaboration: Confluence, xWiki
● Automated Provisioning: Puppet, Chef, Vagrant, MCollective
●
Quality: Sonar
●
Build tools: ant, ivy, maven, gradle
●
Source safety: subversion, git
●
Cloud solutions
– Continuous Integration: Cloudbees
– Public PAAS: Heroku, OpenShift
– Issue Management: Atlassian (Jira), Trello
– Don't forget Amazon
Books
Books
Books
Books

More Related Content

What's hot

Object oriented programming in java
Object oriented programming in javaObject oriented programming in java
Object oriented programming in java
Elizabeth alexander
 
Linux.ppt
Linux.ppt Linux.ppt
Linux.ppt
onu9
 
History of C Programming Language
History of C Programming LanguageHistory of C Programming Language
History of C Programming Language
Niloy Biswas
 
Control Statements in Java
Control Statements in JavaControl Statements in Java
Control Statements in Java
Niloy Saha
 
File Handling and Command Line Arguments in C
File Handling and Command Line Arguments in CFile Handling and Command Line Arguments in C
File Handling and Command Line Arguments in C
Mahendra Yadav
 
11 constructors in derived classes
11 constructors in derived classes11 constructors in derived classes
11 constructors in derived classes
Docent Education
 
Templates in c++
Templates in c++Templates in c++
Templates in c++
sandeep54552
 
Debian Linux Overview
Debian Linux OverviewDebian Linux Overview
Debian Linux Overview
DarshanRamjiyani
 
Abstract class
Abstract classAbstract class
Abstract class
Tony Nguyen
 
LINUX DISTRIBUTIONS.pptx
LINUX DISTRIBUTIONS.pptxLINUX DISTRIBUTIONS.pptx
LINUX DISTRIBUTIONS.pptx
rahul355835
 
Class 10
Class 10Class 10
Data Structures in javaScript 2015
Data Structures in javaScript 2015Data Structures in javaScript 2015
Data Structures in javaScript 2015
Nir Kaufman
 
c++ programming Unit 2 basic structure of a c++ program
c++ programming Unit 2 basic structure of a c++ programc++ programming Unit 2 basic structure of a c++ program
c++ programming Unit 2 basic structure of a c++ program
AAKASH KUMAR
 
Algorithms, flow charts and pseudocodes
Algorithms, flow charts and pseudocodesAlgorithms, flow charts and pseudocodes
Algorithms, flow charts and pseudocodes
Satveer Mann
 
Templates in c++
Templates in c++Templates in c++
Templates in c++
Mayank Bhatt
 
Python - object oriented
Python - object orientedPython - object oriented
Python - object oriented
Learnbay Datascience
 
Test Process
Test ProcessTest Process
Test Process
tokarthik
 

What's hot (20)

Strings in Java
Strings in JavaStrings in Java
Strings in Java
 
Object oriented programming in java
Object oriented programming in javaObject oriented programming in java
Object oriented programming in java
 
Linux.ppt
Linux.ppt Linux.ppt
Linux.ppt
 
History of C Programming Language
History of C Programming LanguageHistory of C Programming Language
History of C Programming Language
 
Control Statements in Java
Control Statements in JavaControl Statements in Java
Control Statements in Java
 
File Handling and Command Line Arguments in C
File Handling and Command Line Arguments in CFile Handling and Command Line Arguments in C
File Handling and Command Line Arguments in C
 
11 constructors in derived classes
11 constructors in derived classes11 constructors in derived classes
11 constructors in derived classes
 
Templates in c++
Templates in c++Templates in c++
Templates in c++
 
Linux
Linux Linux
Linux
 
Debian Linux Overview
Debian Linux OverviewDebian Linux Overview
Debian Linux Overview
 
Abstract class
Abstract classAbstract class
Abstract class
 
LINUX DISTRIBUTIONS.pptx
LINUX DISTRIBUTIONS.pptxLINUX DISTRIBUTIONS.pptx
LINUX DISTRIBUTIONS.pptx
 
Class 10
Class 10Class 10
Class 10
 
Data Structures in javaScript 2015
Data Structures in javaScript 2015Data Structures in javaScript 2015
Data Structures in javaScript 2015
 
c++ programming Unit 2 basic structure of a c++ program
c++ programming Unit 2 basic structure of a c++ programc++ programming Unit 2 basic structure of a c++ program
c++ programming Unit 2 basic structure of a c++ program
 
Algorithms, flow charts and pseudocodes
Algorithms, flow charts and pseudocodesAlgorithms, flow charts and pseudocodes
Algorithms, flow charts and pseudocodes
 
Templates in c++
Templates in c++Templates in c++
Templates in c++
 
Python - object oriented
Python - object orientedPython - object oriented
Python - object oriented
 
Test Process
Test ProcessTest Process
Test Process
 
Java Arrays
Java ArraysJava Arrays
Java Arrays
 

Similar to Introduction Professional Scrum Developer for Java

Agile philosophy
Agile philosophyAgile philosophy
Agile philosophy
Zaheer Abbas
 
Let's learn scrum
Let's learn scrumLet's learn scrum
Let's learn scrum
Tarun Singh
 
Essentials of Scrum
Essentials of ScrumEssentials of Scrum
Essentials of Scrum
eikitakeuchi
 
Introduction to Scrum
Introduction to ScrumIntroduction to Scrum
Introduction to Scrum
Avidan Hetzroni
 
Scrum Master Handbook
Scrum Master HandbookScrum Master Handbook
Scrum Master Handbook
Pradeep Papanna
 
Software Development Guide To Accelerate Performance
Software Development Guide To Accelerate PerformanceSoftware Development Guide To Accelerate Performance
Software Development Guide To Accelerate Performance
Zaid Shabbir
 
Agile scrum training
Agile scrum trainingAgile scrum training
Agile and Scrum Overview for PMs, Designers and Developers
Agile and Scrum Overview for PMs, Designers and Developers Agile and Scrum Overview for PMs, Designers and Developers
Agile and Scrum Overview for PMs, Designers and Developers
Aaron Roy
 
Agile and Scrum - GB
Agile and Scrum - GBAgile and Scrum - GB
Agile and Scrum - GB
Gaurav IG
 
Agile Methodology (scrum)
Agile Methodology (scrum)Agile Methodology (scrum)
Agile Methodology (scrum)
Manoj Ellappan
 
Scrum rules
Scrum rulesScrum rules
Scrum rules
fredarwin
 
Scrum Education.pptx
Scrum Education.pptxScrum Education.pptx
Scrum Education.pptx
Ganesh Kunwar
 
Introduction to Agile and Scrum
Introduction to Agile and ScrumIntroduction to Agile and Scrum
Introduction to Agile and Scrum
Manoj Gupta, CSM®,
 
Scrum Intro for E-works
Scrum Intro for E-worksScrum Intro for E-works
Scrum Intro for E-worksNora Papazyan
 
Lean and agile in a chestnut
Lean and agile in a chestnutLean and agile in a chestnut
Lean and agile in a chestnut
George Stamos
 
T1dbpcgirhu9afyr9fgf signature-e1e8931182a0dcf02346befbfa9f0fcf644737855bed1e...
T1dbpcgirhu9afyr9fgf signature-e1e8931182a0dcf02346befbfa9f0fcf644737855bed1e...T1dbpcgirhu9afyr9fgf signature-e1e8931182a0dcf02346befbfa9f0fcf644737855bed1e...
T1dbpcgirhu9afyr9fgf signature-e1e8931182a0dcf02346befbfa9f0fcf644737855bed1e...
Damien Lee🏆PMI-ACP, SCT,SMC,L6σOB,ITMLP
 
Agile scrum fundamentals
Agile scrum fundamentalsAgile scrum fundamentals
Agile scrum fundamentals
Deniz Gungor
 
Agile Scrum Quick Reference Card
Agile Scrum Quick Reference CardAgile Scrum Quick Reference Card
Agile Scrum Quick Reference Card
Techcanvass
 
Teaching Scrum Fundamentals_A Quick Guide to Getting Started.pdf
Teaching Scrum Fundamentals_A Quick Guide to Getting Started.pdfTeaching Scrum Fundamentals_A Quick Guide to Getting Started.pdf
Teaching Scrum Fundamentals_A Quick Guide to Getting Started.pdf
Bijay Jayaswal, SPC4, RTE, CSM, PMP, MS, MBA
 

Similar to Introduction Professional Scrum Developer for Java (20)

Agile philosophy
Agile philosophyAgile philosophy
Agile philosophy
 
Let's learn scrum
Let's learn scrumLet's learn scrum
Let's learn scrum
 
Essentials of Scrum
Essentials of ScrumEssentials of Scrum
Essentials of Scrum
 
Introduction to Scrum
Introduction to ScrumIntroduction to Scrum
Introduction to Scrum
 
Scrum Master Handbook
Scrum Master HandbookScrum Master Handbook
Scrum Master Handbook
 
Software Development Guide To Accelerate Performance
Software Development Guide To Accelerate PerformanceSoftware Development Guide To Accelerate Performance
Software Development Guide To Accelerate Performance
 
Agile scrum training
Agile scrum trainingAgile scrum training
Agile scrum training
 
Agile and Scrum Overview for PMs, Designers and Developers
Agile and Scrum Overview for PMs, Designers and Developers Agile and Scrum Overview for PMs, Designers and Developers
Agile and Scrum Overview for PMs, Designers and Developers
 
Agile and Scrum - GB
Agile and Scrum - GBAgile and Scrum - GB
Agile and Scrum - GB
 
Agile Methodology (scrum)
Agile Methodology (scrum)Agile Methodology (scrum)
Agile Methodology (scrum)
 
Scrum rules
Scrum rulesScrum rules
Scrum rules
 
Scrum Education.pptx
Scrum Education.pptxScrum Education.pptx
Scrum Education.pptx
 
Agile framework
Agile frameworkAgile framework
Agile framework
 
Introduction to Agile and Scrum
Introduction to Agile and ScrumIntroduction to Agile and Scrum
Introduction to Agile and Scrum
 
Scrum Intro for E-works
Scrum Intro for E-worksScrum Intro for E-works
Scrum Intro for E-works
 
Lean and agile in a chestnut
Lean and agile in a chestnutLean and agile in a chestnut
Lean and agile in a chestnut
 
T1dbpcgirhu9afyr9fgf signature-e1e8931182a0dcf02346befbfa9f0fcf644737855bed1e...
T1dbpcgirhu9afyr9fgf signature-e1e8931182a0dcf02346befbfa9f0fcf644737855bed1e...T1dbpcgirhu9afyr9fgf signature-e1e8931182a0dcf02346befbfa9f0fcf644737855bed1e...
T1dbpcgirhu9afyr9fgf signature-e1e8931182a0dcf02346befbfa9f0fcf644737855bed1e...
 
Agile scrum fundamentals
Agile scrum fundamentalsAgile scrum fundamentals
Agile scrum fundamentals
 
Agile Scrum Quick Reference Card
Agile Scrum Quick Reference CardAgile Scrum Quick Reference Card
Agile Scrum Quick Reference Card
 
Teaching Scrum Fundamentals_A Quick Guide to Getting Started.pdf
Teaching Scrum Fundamentals_A Quick Guide to Getting Started.pdfTeaching Scrum Fundamentals_A Quick Guide to Getting Started.pdf
Teaching Scrum Fundamentals_A Quick Guide to Getting Started.pdf
 

Recently uploaded

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 

Recently uploaded (20)

Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 

Introduction Professional Scrum Developer for Java

  • 2. Who am I? Who are you? Name From What would I be if I did not end up in IT?
  • 3. Rules during the course ● Questions? – Ask!!!! – Or put them on the board ● Mobile phones ● Laptops ● Breaks
  • 4. Course content 1. Introduction 2. Scrum explained 3. Scrum courses 4. Agile Testing & TDD 5. Pair Programming 6. Clean Code 7. Continuous Delivery 8. Tools 9. Books
  • 5. Scrum explained (5 min.) ● Question: What is Scrum for you? ● Put in one sentence on a post-it what you think Scrum is.
  • 6. Scrum explained ● What are the results? Discuss.
  • 7. Scrum explained ● Definition: Scrum is a framework for developing and sustaining complex products.
  • 8. Scrum explained: Roles ● Product Owner – Maximize value of the product – Manages Product Backlog – 1 person! – Prioritizes PBI's ● Scrum Master – Ensures Scrum is understood & enacted – Servant leader – Helps Product Owner, Development Team & Organization – Applies Scrum theory, practices & rules © 1993 - 2013 Scrum.org, All Rights Reserved
  • 9. Scrum explained: Roles ● Development Team – Professionals – Self organizing – Everyone is a developer – Cross functional – Self Organizing ● Scrum Team – Consists of “Development Team”, “Product Owner” and “Scrum Master” © 1993 - 2013 Scrum.org, All Rights Reserved
  • 11. Scrum explained: Events ● Sprint Planning – Define work to be performed during the upcoming Sprint. – Timeboxed: 8 hours for 4 week sprint – Two parts ● What will we do ● How will we do it – Sprint Goal ● Daily Scrum – Daily 15 minute time boxed event – For the Development Team – No status meeting © 1993 - 2013 Scrum.org, All Rights Reserved
  • 12. Scrum explained: Events ● Sprint Review – Inspect the increment and adapt Product Backlog – Invite stakeholders – Timeboxed: 4 hours for 4 week sprint ● Sprint Retrospective – Opportunity to inspect how we are working and to adapt – For the Scrum Team – Timeboxed: 3 hours for 4 week sprint http://davidemanske.com/wp-content/uploads/2013/06/SpeedBoatRetrospective-300x128.png http://www.flickr.com/photos/92328289@N02/
  • 13. Scrum explained: Events ● Sprint – The heart of Scrum – Timeboxed: Max one month. – Delivers a “Done”, useable and potentially releasable product increment – Contains all the other events http://www.flickr.com/photos/gareth_price/
  • 14. Scrum Explained: Artifacts ● Product Backlog – Ordered list – Never complete – Contains PBI's – Product Owner is responsible ● Sprint Backlog – Set of Product Backlog Items – Plan for delivering Product Increment – Contains Sprint Goal ● Increment – Sum of all PBI's done during a Sprint
  • 15. Management by walking around ● Round 1 – Pair up: one person will be manager, other the worker – Simulation: shopping mall traffic, by walking from one shop to another – Goal: Take 60 steps – Instructions: ● Go 1 step forward ● Turn 1 step left ● Turn 1 step right ● Stop – Manager counts the number of steps – You get 60 seconds
  • 16. Management by walking around ● Round 1 evaluation – How many steps did you take? – How did you feel? Managers? Workers?
  • 17. Management by walking around ● Round 2 – No more pairs – Goal: Take 60 steps – Each person counts his own steps – You get again 60 seconds
  • 18. Management by walking around ● Round 2 evaluation – How many steps? – How did you feel? https://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Fugle,_%C3%B8rns%C3%B8_073.jpg/250px-Fugle,_%C3%B8rns%C3%B8_073.jpg
  • 19. Scrum explained: self organizing ● No one (not even the Scrum Master) tells the Development Team how to turn Product Backlog into Increments of potentially releasable functionality. ● The Development Team self-organizes to undertake the work in the Sprint Backlog, both during the Sprint Planning Meeting and as needed throughout the Sprint. ● Self-organizing teams choose how best to accomplish their work, rather than being directed by others outside the team.
  • 20. Scrum explained: self organizing Old style Scrum Team lead assigns tasks Development figures it out ;-) No such thing as people working together Pair programming All communication is done through team lead Direct communication between developers Weekly status meeting, reporting to manager Daily Scrum Team lead is responsible The whole Scrum Team is responsible, including ALL developers.
  • 21. Scrum explained: transparency, inspect & adapt ● Pillars of empirical process control – Transparency: be realistic, no hidden stuff – Inspection: Look back, measure stuff – Adaption: Be open for changes! ● You can NOT predict the future
  • 22. Scrum explained: transparency, inspect & adapt Cirkel van Deming PlanPlan Inspect Do Goal • Constantly improve • Deliver faster • Deliver more efficient • Deliver with higher quality Act
  • 23. Scrum explained: Cross functional DBA Testing Development Analysis Operations DBA Testing Development Analysis Operations DBA Testing Development Analysis Operations DBA Testing Development Analysis Operations DBA Testing Development Testing Analysis Operations TEAM 1 TEAM 2 Testing Development Testing TEAM 3 TEAM 4 Analysis Testing Analysis
  • 24. Scrum explained: DoD “Done”: Means a PBI is potentially shippable. Definition of Done (DoD) ● Checklist ● Visible ● Inspected & adapted
  • 25. Scrum explained: DoD (5min.) ● Answer the following questions: – What is your Definition of Done? – Who owns the Definition of Done? – Who or what influences it and how?
  • 26. Scrum explained: DoD (5min.) ● Answer the following questions: – What is your Definition of Done? – Who owns the Definition of Done? – Who or what influences it and how?
  • 27. Scrum explained: Estimation Architect Team Customer When? During BDUF Sprint Planning All the time How? Hours Fibonacci Beers ...
  • 28. Scrum explained: Estimation ● How? – In group! – Discussion & Conversation is most important. – Relative to other things ● Hours??? – Parkinson's law: When an item is finished earlier, the developer will fill remaining time. – Ideal or working hours? Example: Why 16 hours and not 15?
  • 29. Scrum explained: Poker planning http://wendysdogwalking.co.uk/wp-content/uploads/2013/04/dog-on-sofa-300x225.jpg
  • 30. Scrum explained: Backlog refinement ● aka Grooming ● Refine PBI's – Clear and understood – Estimated – Broken down in small enough items – Have acceptance criteria Product Owner + Development Team During EACH Sprint Timeboxed As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … So that …. As a … I want to … As a … I want to … So that …. 3 1 0 8 13 ● ● ●
  • 31. Scrum explained: Cone of Uncertainty www.construx.comInitial Estimate Product Backlog Item Estimate Sprint Backlog Item Estimate
  • 32. Scrum explained: Waterfall vs. Scrum Requirements BDUF Development Testing Done Requirements BDUF Development Testing Done Requirements BDUF Development Testing Done Requirements BDUF Development Testing Done Requirements BDUF Development
  • 33. Scrum explained: Waterfall vs. Scrum D O N E D O N E D O N E D O N E DO N E ● Done is Live ● Collaboration ● Communication ● Requirements, Design, Development, Testing – All done in parallel, during Sprint
  • 34. Scrum explained: Waterfall vs. Scrum Visibility Ability to Change Business Value Risk Waterfall Scrum © 1993 - 2013 Scrum.org, All Rights Reserved
  • 35. Scrum explained: Scope, Resources, Time and Quality ● Project Management Triangle QUALITY SCOPE TIME RESOURCES
  • 36. Scrum explained: Where to start? ● Read the Scrum guide! ● Embrace failure. ● Do some assessments http://www.scrum.org/Assessments/Open-Assessments ● Practice, practice, practice ● And practice ● Follow the rules, no exception. © 1993 - 2013 Scrum.org, All Rights Reserved
  • 37. Scrum.org courses Professional Scrum Product Owner Professional Scrum Foundations Professional Scrum Master Professional Scrum Developer .NET | Java Product Owners Executives Scrum Masters Architects Business Analysts DB Specialists Designers Developers Testers Everyone © 1993 - 2013 Scrum.org, All Rights Reserved
  • 38. Scrum.org courses Courses Public and private courses are offered worldwide Assessments Certification Professional Scrum Foundations Hands-on training for people looking to start Scrum or reboot a struggling implementation. Professional Scrum Master In-depth training for Scrum Masters and experienced practitioners needing more advanced instruction. Professional Scrum Product Owner Teaches people how to maximize ROI, and optimize the Total Cost of Ownership of products and systems. Professional Scrum Developer Students work as part of a self-organizing team to learn how to use ALM tools and Software development best practices in Scrum. Certification only granted to those that achieve a passing score on the associated assessment
  • 39. Scrum.org vs Scrum Alliance ● Scrum.org – Assessments have more value. – Each course is the same (doesn't depend on the trainer) – Open for feedback and improvements – Home of Scrum! ● Scrum alliance – Easier to get certified – ...
  • 41. Agile Testing ● Quadrants Acceptance Testing Functional Tests Integration Tests Exploratory Testing Scenario Testing Usability Testing Test by End User (UAT) Unit Test Module Tests Component Tests Performance & Load Testing Security Testing *ility Testing Technology Facing Business Facing Automated Automated Manual Manual? © 1993 - 2013 Scrum.org, All Rights Reserved Brian Marick, http://bit.ly/PrsMY1
  • 42. Agile Testing ● Test Pyramids Mike Cohn, Succeeding with Agile UI Service Unit ● Not executed frequently ● Take long time to execute ● Executed frequently ● Take short time to execute
  • 43. Agile Testing (5min.) ● What is wrong with the following? UI Service Service Unit Unit UI Service Unit UI Service Unit UI Service Unit How do your current tests look like? Explain.
  • 44. TDD (Test Driven Development) ● TDD Cycle Write Test Watch Test Fail Write simplest code Run all tests Refactor Run all tests Idea?
  • 45. TDD (Test Driven Development) ● Three Laws of TDD – First: You may not write production code until you have written a failing unit test. – Second: You may not write more of a unit test than is sufficient to fail, and not compiling is failing. – Third: You may not write more production code than is sufficient to pass the currently failing test. ● Keep test clean! ● One Assert per Test. ● Single Concept per Test. Robert C. Martin
  • 46. TDD (Test Driven Development) ● F.I.R.S.T. – Fast Tests should be fast. – Independent Tests should not depend on each other. – Repeatable Tests should be repeatable in any environment. – Self-Validating Tests should have a boolean output (pass or fail). – Timely Tests should be written before the production code. Robert C. Martin
  • 47. TDD (Test Driven Development) Kata String Calculator ● Before you start: – Try not to read ahead. – Do one task at a time. The trick is to learn to work incrementally. – Make sure you only test for correct inputs. there is no need to test for invalid inputs for this kata http://osherove.com/tdd-kata-1/
  • 48. Kata String Calculator (10min.) Part 1 ● Create a simple String calculator with a method int Add(string numbers) – The method can take 0, 1 or 2 numbers, and will return their sum (for an empty string it will return 0) for example “” or “1” or “1,2” – Start with the simplest test case of an empty string and move to 1 and two numbers – Remember to solve things as simply as possible so that you force yourself to write tests you did not think about – Remember to refactor after each passing test http://osherove.com/tdd-kata-1/
  • 49. Kata String Calculator (2 min.) Part 1: Review ● Who has written first a test, before writing the Calculator class? ● How many tests do you have now? ● How many times did you run the test? ● How many times did you refactor your code? http://osherove.com/tdd-kata-1/
  • 50. Kata String Calculator (10 min.) Part 2 ● Allow the Add method to handle an unknown amount of numbers ● Allow the Add method to handle new lines between numbers (instead of commas). – the following input is ok: “1n2,3” (will equal 6) – the following input is NOT ok: “1,n” (not need to prove it - just clarifying) http://osherove.com/tdd-kata-1/
  • 51. Kata String Calculator (2 min.) Part 2: Review ● Who followed TDD Cycle? ● How many tests do you have now? ● Who wrote multiple tests at once? ● What about exceptions? http://osherove.com/tdd-kata-1/
  • 52. Kata String Calculator (10 min.) Part 3 ● Support different delimiters – to change a delimiter, the beginning of the string will contain a separate line that looks like this: “// [delimiter]n[numbers…]” for example “//;n1;2” should return three where the default delimiter is ‘;’ . – the first line is optional. all existing scenarios should still be supported http://osherove.com/tdd-kata-1/
  • 53. Kata String Calculator (2 min.) Part 3: Review ● Who followed TDD Cycle? ● How do the names of your tests look like? [MethodUnderTest]_[Given]_[Then]? ● How many asserts does one test contain? http://osherove.com/tdd-kata-1/
  • 54. Kata String Calculator (10 min.) Part 4: ● Calling Add with a negative number will throw an exception “negatives not allowed” - and the negative that was passed. If there are multiple negatives, show all of them in the exception message http://osherove.com/tdd-kata-1/
  • 55. Kata String Calculator (10 min.) Part 4: Review ● Who wants to show the result? http://osherove.com/tdd-kata-1/
  • 56. Agile Testing: Code Coverage What does this mean?
  • 61. Pair Programming ● Roles – Driver – Navigator ● Rules – Pair on everything you'll need to maintain. – Allow pairs to form fluidly rather than assigning partners. – Switch partners when you need a fresh perspective. – Avoid pairing with the same person for more than a day at a time. – Sit confortable, side by side. – Produce code through conversation. Collaborate, don't critique. – Switch driver and navgator role frequently.
  • 62. Pair Programming ● Advantages – Higher quality – Constant knowledge sharing – Deliver faster – Faster development – An extra pair of eyes – If Bob (the guru) leaves for a round-the-world trip → He Can! – If Rob (the junior) joines the company, he gets up to speed in notime.
  • 64. Clean Code ● Michael Feathers, author of Working Effectively with Legacy Code “Clean code always looks like it was written by someone who cares. There is nothing obvious that you can do to make it better” Elegant Efficient Straightforward Simple Direct Well written Meaningfull Clear Beautifull
  • 66. Clean Code: Boy Scout Rule “Leave the campground cleaner than you found it.”
  • 67. Clean Code: Broken Windows Theory The broken windows theory is a criminological theory of the norm-setting and signaling effect of urban disorder and vandalism on additional crime and anti-social behavior. The theory states that maintaining and monitoring urban environments in a well-ordered condition may stop further vandalism and escalation into more serious crime. http://en.wikipedia.org/wiki/Broken_windows_theory ● Just add another “if”. ● Dirty code invites to add more smells. ● Growing method length ● Growing class length ● ...
  • 68. Clean Code: How to measure? ● The # tests? ● The # bugs? ● The # duplicated code? ● The # unused code? ● ...
  • 69. Clean Code: How to measure? http://www.osnews.com/story/19266/WTFs_m
  • 70. Clean Code: Clean Kitchen 3 Michelin sushi chef Saito is a master with the knife http://youtu.be/robvvJZkfcU
  • 71. Clean Code: Names ● Use meaningful names ● Use intention – revealing names ● Avoid disinformation ● Use pronounceable names ● Avoid encodings – No Hungarian Notation – Member prefixes? ● Use solution domain names ● Use problem domain names ● Pick one word per Concept – No “get”, “retrieve”, “fetch”, ….
  • 72. Clean Code: Names (15min.) ● Checkout the code @ https://github.com/jdewinne/PSDExamples ● Refactor the following code: Names.java
  • 73. Clean Code: Names (10min.) ● Who wants to show the result?
  • 74. Clean Code: Functions ● Small! ● Do one thing! ● Reading code from Top to Bottom The stepdown rule ● Arguments – No flags – As less as possible – Don't use it for returning values ● Have no side effects – “checkPassword” should not create a session ● Exceptions over Error codes ● DRY
  • 76. Clean Code: Comments “Don't comment bad code – rewrite it.” Brian W. Kernighan and P.J. Plaugher ● Explain in code, not in comments ● Redundant comments :-( ● Misleading comments :-( ● Commented out code :-( ● HTML comments :-( ● Too much information (Do not add the whole specification document)
  • 77. Clean Code: Comments (20 min.) ● Checkout the code @ https://github.com/jdewinne/PSDExamples ● Refactor the following code: Comments.java
  • 78. Clean Code: Comments (10min.) ● Who wants to show the result?
  • 79. Clean Code: Formatting ● Vertical formatting – Lines per file. – Each class should be max 200 lines! – Vertical openness ● Use some white lines ;-) – Vertical Density ● Tightly related lines should be close to each other ● Horizontal formatting – Line length – Each line should max be 120characters long – Horizontal Openness and Density – Indentation ● Team rules!!!!!!!!!
  • 80. Clean Code: Law of Demeter ● A module should not know about the innards of the objects it manipulates. customer.getAddress().getBillingAddress().getLine1() government.getPresident().getJobDescription().setName()
  • 81. Clean Code: Exceptions ● Use exceptions, instead of return codes. ● Use meaningful exceptions ● Don't return null ● Don't pass null ● Write the try / catch / finally first ● Use unchecked exceptions
  • 82. Clean Code: Emergent Architecture (5min.) ● How does your architecture looks like? ● First design, then implement? ● You think also of the future? And have statements like: – It must be scalable – It must be extensible for any feature we can think of – … Discuss!
  • 83. Clean Code: Emergent Architecture ● BDUF is waste! ● TDD is design. ● BDD is design. ● Allow your architecture to emerge as you develop. ● Think in slices (not in layers)
  • 84. Clean Code: Technical debt Code Rots in Presence of Change!
  • 85. Clean Code: Technical debt Broken window Phenomena
  • 86. Clean Code: Technical debt ● Technical debt = Defects, complexity, coupled code, lack of testing, duplication, … ● Do NOT let it grow! Value Technical debt
  • 87. Clean Code: SOLID SRP (Single Responsibility Principle) DB Customer Persistence System DB Customer Enterprise Java Beans 1/2 Java Persistence API
  • 88. Clean Code: SOLID OCP (Open Close Principle) http://lostechies.com ● Open for Extension ● Closed for Modification
  • 89. Clean Code: SOLID LSP (Liskov Substitution Principle) Functions that use pointers to base classes must be able to use objects of derived classes without knowing it. http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/
  • 90. Clean Code: SOLID ISP (Interface Segregation Principle) http://javiernavarromachuca.blogspot.nl/2011/07/interface-segregation-principle.html ● One interface per kind of client. ● No methods in interface that client does not use. ● No “fat” interfaces.
  • 91. Clean Code: SOLID DIP (Dependency Inversion Principle) http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/ ● “High-level modules should not depend on low-level modules. Both should depend on abstractions” ● “Abstractions should not depend on details. Details should depend on abstractions”
  • 93. Continuous Delivery Row 1 Row 2 Row 3 Row 4 0 2 4 6 8 10 12 Column 1 Column 2 Column 3 Source Control Automated build Continuous integration Automated Testing Automated Deployments Continuous Delivery Automated Provisioning
  • 95. Continuous Delivery Deployment Pipeline provides constant quick feedback Continuous Integration Middleware Provisioning Virtualized Infrastructure Test ToolingDevelopment Central Monitoring & Logging Application Release Automation O T A P all identical On Demand Environments
  • 100. Videos: Dan Pink The surprising truth about what motivates us
  • 102. Tools ● Management: Jira, Trello, Excel ● Continuous Integration: Jenkins, Bamboo, Hudson ● Testing: JUnit, FitNesse, Cucumber, DBUnit, TestNG, Greenpepper, Jbehave, Jacoco, Arquillian, ... ● Automated Deployment: Deployit, Nolio, uDeploy ● Collaboration: Confluence, xWiki ● Automated Provisioning: Puppet, Chef, Vagrant, MCollective ● Quality: Sonar ● Build tools: ant, ivy, maven, gradle ● Source safety: subversion, git ● Cloud solutions – Continuous Integration: Cloudbees – Public PAAS: Heroku, OpenShift – Issue Management: Atlassian (Jira), Trello – Don't forget Amazon
  • 103. Books
  • 104. Books
  • 105. Books
  • 106. Books