SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

What i learned adopting agile practices
What i learned adopting agile practicesWhat i learned adopting agile practices
What i learned adopting agile practices
Vijay Narayanan
 
Kens Scrum Presentation
Kens Scrum PresentationKens Scrum Presentation
Kens Scrum Presentation
James Peckham
 
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
Nick DeNardis
 

Mais procurados (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
 

Destaque

Concurrent Open Source Software Development
Concurrent Open Source Software DevelopmentConcurrent Open Source Software Development
Concurrent Open Source Software Development
artfulgeek
 
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
elliando dias
 
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 Lifecycle
Black Duck by Synopsys
 

Destaque (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
 

Semelhante a Open Source Software Development Practices that Works

Agile Development at W3i
Agile Development at W3iAgile Development at W3i
Agile Development at W3i
Jeff Bollinger
 
The principles of agile development
The principles of agile developmentThe principles of agile development
The principles of agile development
Rajat Samal
 
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
Nowell 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 2017
AgileNZ Conference
 
Agile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docxAgile Development MethodologiesThree CommunitiesProjec.docx
Agile Development MethodologiesThree CommunitiesProjec.docx
ADDY50
 

Semelhante a 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?
 

Mais de 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
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

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