SlideShare a Scribd company logo
Open Source Software
Development Practices
     that Works
   (or how to get software done)

         #mosc2010
Hi!
I develop software for a living.
I think a lot about making good
software -- and that is what I am
going to talk about today.

Basically, I learned enough tricks to
be good at what I do.
Be Agile
because it works
Ya use Agile
methodology?


              No.




Me neither.
http://agilemanifesto.org

"   We are uncovering better ways of developing software by
    doing it and helping others do it. Through this work we have
    come to value

       Individuals and interactions over processes and tools
       Working software over comprehensive documentation
       Customer collaboration over contract negotiation
       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.
Agile Methodologies
Extreme Programming
Scrum
Crystal Clear
Lean Software Development
Kanban Software Development
Rational Unified Process
Test Driven Development
...
It basically means we got
a pretty good plan to get
things done.

You can worry less now. ;
-)
It Works
because it's simple
User Stories
Just enough details to make time estimate, priority
and purpose.

Must be simple and easy to understand.

Make them testable.
E.g., "Load in 3 seconds"

Requirements are never final,
so be flexible.
Deliver Iteratively
Have clear milestones and short iterations

Break all tasks down to iteration

Plan in iteration -- 1 to 3 weeks
VS
Estimation
It's very hard to plan for next 6 months.

Break big thing down to smallest things.

How to eat an elephant?
One piece at a time
Respect / trust
Respect your teammates or staffs

Move responsibility down the chain

Let workers decide the best approach

Encourage passionate commitment

Expect top quality from everyone
Source: Agilefun.com, Agile Romania UG Meeting Bucharest
Daily Standup
What I accomplished yesterday
What I plan to accomplish today
What issues are blocking progress

5-10 minutes
http://ayagebeely.blogspot.com/2009/10/stand-up-meeting.html
Short to-do list
Because long todo-list don't get done

Limit the number of tasks

Usually it looks like a checklist
Write Tests
The idea is to build quality in.

Unit test, integration test, .. any sensible test!

Automate the testing

Learn to write good test cases
Open Source Software Development Practices that Works
Refactor
Keep it really simple and continue to keep it simple
as you go along.

Make code clean and easy to read.

Remove dead code,
unused functions, and simplify further.

Not worried about throwing code out for
sake of better software
Quality is Easy
Track bug -- assign to someone, set deadline + priority

CAR -- Corrective Action / Prevention Action

Poka Yoke -- Fail-proof

Automation -- automate build, test and deploy

CANI -- Continuous And Never Ending Improvement
Poka Yoke
Bug Tracking
Retrospective
Over lunch if you have to.

How did we screwed up?!
What went well?
What did we learn?
How can we do better next round?

This is NOT a blame session!
FACE FAILURE
Continuous
Improvement
Keep learning    -- new tech, architecture, techniques, process

Keep adjusting   -- make it fit your needs or size

Keep improving -- measure and improve, faster,
                  less bug, happier customer
Summary
 1. User stories instead of heavy requirement docs
 2. Deliver iteratively and deliver working software asap
 3. Estimation is hard, make it easier by breaking it
    down
 4. Respect and trust is very necessary
 5. Daily standup works, please do it Mon to Fri
 6. Short to-do list works, use it
 7. Write tests
 8. Quality is easy, or easier if you build quality in
 9. Retrospective to learn and improve more
10. CANI -- Continuous And Never ending Improvement
Because
it's simple
you can adapt and
improvise
Thank You

More Related Content

PDF
Id camp x dicoding live : persiapan jadi software engineer hebat 101
PDF
Baby steps and why it's more important than your code skills
PPTX
Lean Responsive
PPSX
Succeeding with Agile in the Federal Government: A Coach's Perspective
PPTX
Moving Fast with XP
PPTX
Paul Ellarby - Why do scrum?
PPTX
An Engineering Approach to Build Websites
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Baby steps and why it's more important than your code skills
Lean Responsive
Succeeding with Agile in the Federal Government: A Coach's Perspective
Moving Fast with XP
Paul Ellarby - Why do scrum?
An Engineering Approach to Build Websites

What's hot (20)

PDF
What not to do when adopting Agile
PPTX
Lean Software Development
PDF
Software Project management
PPT
An Introduction to XP and Agile
PPTX
The Software Craftsman (2nd edition)
PDF
LKCE16 - How Kanban saved a Salvation Army hospital in Indonesia by Marcus Ha...
PPTX
The Software Craftsman
PPTX
A presentation on Agile Methodology for Project Managers
PPT
What i learned adopting agile practices
PPTX
Алексей Денисюк "When Agile doesn't work. Tips and Tricks"
PPT
Kens Scrum Presentation
PDF
Offshore tips sharing_2.0
PDF
Starting a Web Office From Scratch: Trials and Tales
PPTX
How to do Estimates (well) in Agile?
PPT
what's blocking our way
PPTX
Software Craftsmanship @ Ntnu
PPTX
Agile development
PPT
User Stories
PDF
A Software Development Approach to Help You End Up with the Product You Reall...
PPT
Hubstaff Lean Startup Talk
What not to do when adopting Agile
Lean Software Development
Software Project management
An Introduction to XP and Agile
The Software Craftsman (2nd edition)
LKCE16 - How Kanban saved a Salvation Army hospital in Indonesia by Marcus Ha...
The Software Craftsman
A presentation on Agile Methodology for Project Managers
What i learned adopting agile practices
Алексей Денисюк "When Agile doesn't work. Tips and Tricks"
Kens Scrum Presentation
Offshore tips sharing_2.0
Starting a Web Office From Scratch: Trials and Tales
How to do Estimates (well) in Agile?
what's blocking our way
Software Craftsmanship @ Ntnu
Agile development
User Stories
A Software Development Approach to Help You End Up with the Product You Reall...
Hubstaff Lean Startup Talk
Ad

Viewers also liked (10)

PDF
LibSBML - open source software development
PDF
Concurrent Open Source Software Development
PDF
Catalogue F. Iniciativas Canada
PPT
Improve Development Process with Open Source Software
PDF
Open Source Software: Perspectives for Development (World Bank & Paul Dravis)
PDF
Software Development with Open Source
PDF
The Hitchhikers' Guide to Free and Open Source Software Development (CompCon ...
PPTX
Managing Open Source in Application Security and Software Development Lifecycle
PPTX
Open source software development
PDF
[2015/2016] Software development process
LibSBML - open source software development
Concurrent Open Source Software Development
Catalogue F. Iniciativas Canada
Improve Development Process with Open Source Software
Open Source Software: Perspectives for Development (World Bank & Paul Dravis)
Software Development with Open Source
The Hitchhikers' Guide to Free and Open Source Software Development (CompCon ...
Managing Open Source in Application Security and Software Development Lifecycle
Open source software development
[2015/2016] Software development process
Ad

Similar to Open Source Software Development Practices that Works (20)

PPTX
Agile Development at W3i
DOCX
The principles of agile development
PPTX
Scrum 18 months later
PDF
CampusSDN2017 - Jawdat: Product Management and Agile Development
PPT
The Agile Process - Taming Your Process To Work For You
PPTX
Modern Agile – What's It Good For? - Jacob Creech - AgileNZ 2017
PDF
Usa prácticas de integración continua y sobrevive para luchar otro día.
PPT
Intro to Agile Practices and Values
PPTX
Test strategy
PPTX
Agile - Scrum
PPT
Scrum overview
PPTX
Agile Lessons Learned From the Trenches
PPTX
Successful Agile/UX
PPTX
Product Agility: 3 fundamentals from the trenches (Braga,PT)
DOCX
Agile Development MethodologiesThree CommunitiesProjec.docx
PPTX
Agile Development and Implementing Scrum
PDF
Agile Team Performance Appraisal
PDF
Practical Scrum - one day training
ODP
Why don't small companies do big a agile?
Agile Development at W3i
The principles of agile development
Scrum 18 months later
CampusSDN2017 - Jawdat: Product Management and Agile Development
The Agile Process - Taming Your Process To Work For You
Modern Agile – What's It Good For? - Jacob Creech - AgileNZ 2017
Usa prácticas de integración continua y sobrevive para luchar otro día.
Intro to Agile Practices and Values
Test strategy
Agile - Scrum
Scrum overview
Agile Lessons Learned From the Trenches
Successful Agile/UX
Product Agility: 3 fundamentals from the trenches (Braga,PT)
Agile Development MethodologiesThree CommunitiesProjec.docx
Agile Development and Implementing Scrum
Agile Team Performance Appraisal
Practical Scrum - one day training
Why don't small companies do big a agile?

More from Choong Ping Teo (6)

PDF
Launchstack Manifesto
PDF
Problem solving tools
PDF
App script
KEY
Software Developer Guide to Nootropics
KEY
Google App Engine with Gaelyk
PDF
Social Hacking
Launchstack Manifesto
Problem solving tools
App script
Software Developer Guide to Nootropics
Google App Engine with Gaelyk
Social Hacking

Recently uploaded (20)

PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPT
Teaching material agriculture food technology
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Cloud computing and distributed systems.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Spectral efficient network and resource selection model in 5G networks
Reach Out and Touch Someone: Haptics and Empathic Computing
Mobile App Security Testing_ A Comprehensive Guide.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Advanced methodologies resolving dimensionality complications for autism neur...
Per capita expenditure prediction using model stacking based on satellite ima...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
The AUB Centre for AI in Media Proposal.docx
Network Security Unit 5.pdf for BCA BBA.
Building Integrated photovoltaic BIPV_UPV.pdf
Teaching material agriculture food technology
Chapter 3 Spatial Domain Image Processing.pdf
Programs and apps: productivity, graphics, security and other tools
MYSQL Presentation for SQL database connectivity
Cloud computing and distributed systems.
Agricultural_Statistics_at_a_Glance_2022_0.pdf

Open Source Software Development Practices that Works

  • 1. Open Source Software Development Practices that Works (or how to get software done) #mosc2010
  • 2. Hi! I develop software for a living. I think a lot about making good software -- and that is what I am going to talk about today. Basically, I learned enough tricks to be good at what I do.
  • 4. Ya use Agile methodology? No. Me neither.
  • 5. http://agilemanifesto.org " We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation 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.
  • 6. Agile Methodologies Extreme Programming Scrum Crystal Clear Lean Software Development Kanban Software Development Rational Unified Process Test Driven Development ...
  • 7. It basically means we got a pretty good plan to get things done. You can worry less now. ; -)
  • 9. User Stories Just enough details to make time estimate, priority and purpose. Must be simple and easy to understand. Make them testable. E.g., "Load in 3 seconds" Requirements are never final, so be flexible.
  • 10. Deliver Iteratively Have clear milestones and short iterations Break all tasks down to iteration Plan in iteration -- 1 to 3 weeks
  • 11. VS
  • 12. Estimation It's very hard to plan for next 6 months. Break big thing down to smallest things. How to eat an elephant? One piece at a time
  • 13. Respect / trust Respect your teammates or staffs Move responsibility down the chain Let workers decide the best approach Encourage passionate commitment Expect top quality from everyone
  • 14. Source: Agilefun.com, Agile Romania UG Meeting Bucharest
  • 15. Daily Standup What I accomplished yesterday What I plan to accomplish today What issues are blocking progress 5-10 minutes
  • 17. Short to-do list Because long todo-list don't get done Limit the number of tasks Usually it looks like a checklist
  • 18. Write Tests The idea is to build quality in. Unit test, integration test, .. any sensible test! Automate the testing Learn to write good test cases
  • 20. Refactor Keep it really simple and continue to keep it simple as you go along. Make code clean and easy to read. Remove dead code, unused functions, and simplify further. Not worried about throwing code out for sake of better software
  • 21. Quality is Easy Track bug -- assign to someone, set deadline + priority CAR -- Corrective Action / Prevention Action Poka Yoke -- Fail-proof Automation -- automate build, test and deploy CANI -- Continuous And Never Ending Improvement
  • 24. Retrospective Over lunch if you have to. How did we screwed up?! What went well? What did we learn? How can we do better next round? This is NOT a blame session!
  • 26. Continuous Improvement Keep learning -- new tech, architecture, techniques, process Keep adjusting -- make it fit your needs or size Keep improving -- measure and improve, faster, less bug, happier customer
  • 27. Summary 1. User stories instead of heavy requirement docs 2. Deliver iteratively and deliver working software asap 3. Estimation is hard, make it easier by breaking it down 4. Respect and trust is very necessary 5. Daily standup works, please do it Mon to Fri 6. Short to-do list works, use it 7. Write tests 8. Quality is easy, or easier if you build quality in 9. Retrospective to learn and improve more 10. CANI -- Continuous And Never ending Improvement
  • 28. Because it's simple you can adapt and improvise