SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Software Project management
Software Project managementSoftware Project management
Software Project managementPeter Brownell
 
An Introduction to XP and Agile
An Introduction to XP and AgileAn Introduction to XP and Agile
An Introduction to XP and AgileJason Yip
 
The Software Craftsman (2nd edition)
The Software Craftsman (2nd edition)The Software Craftsman (2nd edition)
The Software Craftsman (2nd edition)goeran
 
LKCE16 - How Kanban saved a Salvation Army hospital in Indonesia by Marcus Ha...
LKCE16 - How Kanban saved a Salvation Army hospital in Indonesia by Marcus Ha...LKCE16 - How Kanban saved a Salvation Army hospital in Indonesia by Marcus Ha...
LKCE16 - How Kanban saved a Salvation Army hospital in Indonesia by Marcus Ha...Lean Kanban Central Europe
 
The Software Craftsman
The Software CraftsmanThe Software Craftsman
The Software Craftsmangoeran
 
A presentation on Agile Methodology for Project Managers
A presentation on Agile Methodology for Project ManagersA presentation on Agile Methodology for Project Managers
A presentation on Agile Methodology for Project ManagersAdeolu Adeleye
 
What i learned adopting agile practices
What i learned adopting agile practicesWhat i learned adopting agile practices
What i learned adopting agile practicesVijay Narayanan
 
Алексей Денисюк "When Agile doesn't work. Tips and Tricks"
Алексей Денисюк "When Agile doesn't work. Tips and Tricks"Алексей Денисюк "When Agile doesn't work. Tips and Tricks"
Алексей Денисюк "When Agile doesn't work. Tips and Tricks"Anna Shymchenko
 
Kens Scrum Presentation
Kens Scrum PresentationKens Scrum Presentation
Kens Scrum PresentationJames Peckham
 
Offshore tips sharing_2.0
Offshore tips sharing_2.0Offshore tips sharing_2.0
Offshore tips sharing_2.0Dao Ngoc Kien
 
Starting a Web Office From Scratch: Trials and Tales
Starting a Web Office From Scratch: Trials and TalesStarting a Web Office From Scratch: Trials and Tales
Starting a Web Office From Scratch: Trials and TalesNick DeNardis
 
How to do Estimates (well) in Agile?
How to do Estimates (well) in Agile?How to do Estimates (well) in Agile?
How to do Estimates (well) in Agile?Hugo Messer
 
what's blocking our way
what's blocking our waywhat's blocking our way
what's blocking our waytanvir afzal
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnugoeran
 
A Software Development Approach to Help You End Up with the Product You Reall...
A Software Development Approach to Help You End Up with the Product You Reall...A Software Development Approach to Help You End Up with the Product You Reall...
A Software Development Approach to Help You End Up with the Product You Reall...Peter Bodenheimer
 
Hubstaff Lean Startup Talk
Hubstaff Lean Startup TalkHubstaff Lean Startup Talk
Hubstaff Lean Startup Talkjaredbrown
 

Was ist angesagt? (20)

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

Andere mochten auch

LibSBML - open source software development
LibSBML - open source software developmentLibSBML - open source software development
LibSBML - open source software developmentSarah Keating
 
Concurrent Open Source Software Development
Concurrent Open Source Software DevelopmentConcurrent Open Source Software Development
Concurrent Open Source Software Developmentartfulgeek
 
Improve Development Process with Open Source Software
Improve Development Process with Open Source SoftwareImprove Development Process with Open Source Software
Improve Development Process with Open Source Softwareelliando dias
 
Open Source Software: Perspectives for Development (World Bank & Paul Dravis)
Open Source Software: Perspectives for Development (World Bank & Paul Dravis)Open Source Software: Perspectives for Development (World Bank & Paul Dravis)
Open Source Software: Perspectives for Development (World Bank & Paul Dravis)Paul Dravis
 
Software Development with Open Source
Software Development with Open SourceSoftware Development with Open Source
Software Development with Open SourceOpusVL
 
The Hitchhikers' Guide to Free and Open Source Software Development (CompCon ...
The Hitchhikers' Guide to Free and Open Source Software Development (CompCon ...The Hitchhikers' Guide to Free and Open Source Software Development (CompCon ...
The Hitchhikers' Guide to Free and Open Source Software Development (CompCon ...Elena Williams
 
Managing Open Source in Application Security and Software Development Lifecycle
Managing Open Source in Application Security and Software Development LifecycleManaging Open Source in Application Security and Software Development Lifecycle
Managing Open Source in Application Security and Software Development LifecycleBlack Duck by Synopsys
 
Open source software development
Open source software developmentOpen source software development
Open source software developmentSagar Raravi
 
[2015/2016] Software development process
[2015/2016] Software development process[2015/2016] Software development process
[2015/2016] Software development processIvano Malavolta
 

Andere mochten auch (10)

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

Ähnlich wie Open Source Software Development Practices that Works

Agile Development at W3i
Agile Development at W3iAgile Development at W3i
Agile Development at W3iJeff Bollinger
 
The principles of agile development
The principles of agile developmentThe principles of agile development
The principles of agile developmentRajat Samal
 
Scrum 18 months later
Scrum 18 months laterScrum 18 months later
Scrum 18 months laterCraig Brown
 
CampusSDN2017 - Jawdat: Product Management and Agile Development
CampusSDN2017 - Jawdat: Product Management and Agile DevelopmentCampusSDN2017 - Jawdat: Product Management and Agile Development
CampusSDN2017 - Jawdat: Product Management and Agile DevelopmentJawdatTI
 
The Agile Process - Taming Your Process To Work For You
The Agile Process - Taming Your Process To Work For YouThe Agile Process - Taming Your Process To Work For You
The Agile Process - Taming Your Process To Work For YouNowell Strite
 
Modern Agile – What's It Good For? - Jacob Creech - AgileNZ 2017
Modern Agile – What's It Good For? - Jacob Creech - AgileNZ 2017Modern Agile – What's It Good For? - Jacob Creech - AgileNZ 2017
Modern Agile – What's It Good For? - Jacob Creech - AgileNZ 2017AgileNZ Conference
 
Usa prácticas de integración continua y sobrevive para luchar otro día.
 Usa prácticas de integración continua y sobrevive para luchar otro día. Usa prácticas de integración continua y sobrevive para luchar otro día.
Usa prácticas de integración continua y sobrevive para luchar otro día.Software Guru
 
Test strategy
Test strategyTest strategy
Test strategyadarsh j
 
Agile Lessons Learned From the Trenches
Agile Lessons Learned From the TrenchesAgile Lessons Learned From the Trenches
Agile Lessons Learned From the TrenchesBrendan Flynn
 
Product Agility: 3 fundamentals from the trenches (Braga,PT)
Product Agility: 3 fundamentals from the trenches (Braga,PT)Product Agility: 3 fundamentals from the trenches (Braga,PT)
Product Agility: 3 fundamentals from the trenches (Braga,PT)Pedro Teixeira
 
Agile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxAgile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxADDY50
 
Agile Development and Implementing Scrum
Agile Development and Implementing ScrumAgile Development and Implementing Scrum
Agile Development and Implementing ScrumEmre ŞAHİN
 
Agile Team Performance Appraisal
Agile Team Performance AppraisalAgile Team Performance Appraisal
Agile Team Performance AppraisalAshutosh Rai
 
Practical Scrum - one day training
Practical Scrum - one day training Practical Scrum - one day training
Practical Scrum - one day training Anat (Alon) Salhov
 
Why don't small companies do big a agile?
Why don't small companies do big a agile?Why don't small companies do big a agile?
Why don't small companies do big a agile?activelylazy
 

Ähnlich wie Open Source Software Development Practices that Works (20)

Agile Development at W3i
Agile Development at W3iAgile Development at W3i
Agile Development at W3i
 
The principles of agile development
The principles of agile developmentThe principles of agile development
The principles of agile development
 
Scrum 18 months later
Scrum 18 months laterScrum 18 months later
Scrum 18 months later
 
CampusSDN2017 - Jawdat: Product Management and Agile Development
CampusSDN2017 - Jawdat: Product Management and Agile DevelopmentCampusSDN2017 - Jawdat: Product Management and Agile Development
CampusSDN2017 - Jawdat: Product Management and Agile Development
 
The Agile Process - Taming Your Process To Work For You
The Agile Process - Taming Your Process To Work For YouThe Agile Process - Taming Your Process To Work For You
The Agile Process - Taming Your Process To Work For You
 
Modern Agile – What's It Good For? - Jacob Creech - AgileNZ 2017
Modern Agile – What's It Good For? - Jacob Creech - AgileNZ 2017Modern Agile – What's It Good For? - Jacob Creech - AgileNZ 2017
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.
 Usa prácticas de integración continua y sobrevive para luchar otro día. Usa prácticas de integración continua y sobrevive para luchar otro día.
Usa prácticas de integración continua y sobrevive para luchar otro día.
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
 
Test strategy
Test strategyTest strategy
Test strategy
 
Agile - Scrum
Agile - ScrumAgile - Scrum
Agile - Scrum
 
Scrum overview
Scrum overviewScrum overview
Scrum overview
 
Agile Lessons Learned From the Trenches
Agile Lessons Learned From the TrenchesAgile Lessons Learned From the Trenches
Agile Lessons Learned From the Trenches
 
Successful Agile/UX
Successful Agile/UXSuccessful Agile/UX
Successful Agile/UX
 
Product Agility: 3 fundamentals from the trenches (Braga,PT)
Product Agility: 3 fundamentals from the trenches (Braga,PT)Product Agility: 3 fundamentals from the trenches (Braga,PT)
Product Agility: 3 fundamentals from the trenches (Braga,PT)
 
Agile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxAgile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docx
 
Scrum
ScrumScrum
Scrum
 
Agile Development and Implementing Scrum
Agile Development and Implementing ScrumAgile Development and Implementing Scrum
Agile Development and Implementing Scrum
 
Agile Team Performance Appraisal
Agile Team Performance AppraisalAgile Team Performance Appraisal
Agile Team Performance Appraisal
 
Practical Scrum - one day training
Practical Scrum - one day training Practical Scrum - one day training
Practical Scrum - one day training
 
Why don't small companies do big a agile?
Why don't small companies do big a agile?Why don't small companies do big a agile?
Why don't small companies do big a agile?
 

Mehr von Choong Ping Teo

Mehr von Choong Ping Teo (6)

Launchstack Manifesto
Launchstack ManifestoLaunchstack Manifesto
Launchstack Manifesto
 
Problem solving tools
Problem solving toolsProblem solving tools
Problem solving tools
 
App script
App scriptApp script
App script
 
Software Developer Guide to Nootropics
Software Developer Guide to NootropicsSoftware Developer Guide to Nootropics
Software Developer Guide to Nootropics
 
Google App Engine with Gaelyk
Google App Engine with GaelykGoogle App Engine with Gaelyk
Google App Engine with Gaelyk
 
Social Hacking
Social HackingSocial Hacking
Social Hacking
 

Kürzlich hochgeladen

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 

Kürzlich hochgeladen (20)

The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 

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
  • 19.
  • 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