Agile Development

Larissa, May 2019

SCRUM & Xtreme Programming & KanBan

Dimi Balaouras

CTO & Software Architect

 Software Development Consultant

SCRUM Master
Certified SCRUM Product Owner

"I'm not interested in people's ideas ...until I see their execution."

—Derek Sivers​

Idea Evaluation Formula

AWFUL IDEA = -1

WEAK IDEA = 1

SO-SO IDEA = 5

GOOD IDEA = 10

GREAT IDEA = 15

BRILLIANT IDEA = 20

NO EXECUTION = $1

WEAK EXECUTION = $1000

SO-SO EXECUTION = $10,000

GOOD EXECUTION = $100,000

GREAT EXECUTION = $1,000,000

BRILLIANT EXECUTION = $10,000,000

X

= Idea Value

Πόσο αποτελεσματικός είναι ο τρόπος που φτιάχνεις λογισμικό;

Αποτελεσματικότητα

  • Ταχύτητα υλοποίησης
  • Ικανοποίηση πελάτη
  • Ικανοποίηση τελικού χρήστη
  • Ικανοποίηση του Developer
  • Ποιότητα κατασκευής (λίγα defects)
  • .....

Agile Development

SCRUM

XP

KanBan

#define AgileDevelopment

  • Μια μεθοδολογία Ανάπτυξης Λογισμικού
  • Εμπνεύστηκε το 2001 από 17 Software Engineers
  • Συχνά παρουσιάζεται ως η απάντηση στα προβλήματα του waterfall pattern
  • Υποστηρίζει το Early Delivery και το Adaptive Planning
  • Ενθαρύνει την ευελιξία στις αλλαγές των specs

Agile Manifesto

  1. Individuals and interactions over processes and tools
     
  2. Working software over comprehensive documentation
     
  3. Customer collaboration over contract negotiation
     
  4. Responding to change over following a plan

That is, while there is value in the items on
the right, we value the items on the left more.

Στόχοι

  • Self-organizing teams
  • Motivated, trusted developers
  • Customer-Developer collaboration
  • Sustainable development at a constant pace
  • Working software delivered frequently
  • Customer satisfaction
  • Developers satisfaction

Xtreme Programming

Μια πρακτική του
Agile Development

Αρχές

  • Απλότητα (start lean) / Vertical Slicing
  • Πολλά, συχνά και μικρά Releases
  • Διαρκής επικοινωνία με τον πελάτη
  • Λιτά Designs & Documentation
  • Διασπορά της γνώσης στην ομάδα
  • Παρακολούθηση του Code Quality
  • Test Test Test

Πρακτικές

  • Pair Programming
  • Test Driven Development
  • Code Reviews
  • Continuous Integration
  • Measure Code Quality
  • Promote Refactoring

Pair Programming

Test Driven Development

Code Reviews

Continuous Integration

Use Cases

  • Co-located μικρές ομάδες
  • Lean Startups
  • Μαζί με το SCRUM

Tools

  • Version Control Systems: Github, Gitlab, Bitbucket
  • Code Reviews: SmartBear's CodeCollab, Atlasian's Crucible
  • Cont. Integration: Jenkins
  • Security Scanning: Zed Attack Proxy, IBM AppScan
  • Cont. Deployment: Ansible, Fabric, Amazon Code Deploy.
  • Code Quality Management: SonarQube (open source)
  • Various Unit Testing frameworks
  • Code auto-formatters

SCRUM

Μια μεθοδολογία του
Agile Development

Origin: Rugby SCRUM

A SCRUM

SCRUM Framework

Ρόλοι

  • SCRUM Team (3-7 developers)
  • SCRUM Master (1 developer)
  • Product Owner (1 stakeholder)

Artifacts

  • User Story
  • Product Backlog
  • Sprint Backlog
  • Sprint
  • Release

SCRUM Metrics

  • Story Point
  • Team Capacity
  • Team Velocity
  • Test Coverage

SCRUM Ceremonies

  • Sprint Planning (στην αρχή του sprint)
  • Daily Standup (καθημερινά)
  • Sprint Review (στο τέλος του sprint)
  • Retrospective (στο τέλος του sprint)
  • Backlog Scrubbing (οποιαδήποτε στιγμή)

Sprint Planning

Planning Poker

Daily Standup

Sprint Review

Sprint Retrospective

Use Cases

  • Startups
  • Small to Medium Software Houses (*)
  • Remote Teams
  • Actually...it's for any organization!
  • Not easy when you have parallel projects

*) Large organizations use SAFe

Recommended Tools

KANBAN

A Visual Process Management Method

Inspired by: Toyota Production System

KanBan Board

Use Cases

  • Product Roadmaps
  • EPIC Backlog
  • Small Scrum Teams

Tools

Conclusion

Χρειάζεσαι μια Agile μεθοδολογία όταν:

  • η ομάδα σου έχει >1 developers
  • το Project σου είναι B2C
  • ο πελάτης δεν ξέρει επακριβώς τι χρειάζεται
  • θέλεις να δέσεις μια ομάδα Developers
  • θέλεις να δώσεις ρυθμό σε μια ομάδα

Προσοχή στα εξής:

  • Ο Product Owner έχει καταλυτικό ρόλο.
  • Ένας κακός Product Owner μπορεί να καταστρέψει ένα Product.
  • Κάποιες τεχνικές μπορεί να προκαλέσουν καθυστερήσεις, ειδικά στην αρχή
  • Προσοχή στο Test Driven Development
  • Χρειάζεται ένας Agile Coach για να πετύχεις στο Agile

Thank you!

Agile Development 101

By Dimi Balaouras

Agile Development 101

An introduction to Agile Development, focusing on XP, SCRUM and KanBan.

  • 1,668