Open Source Software Development Practices that Works
-
Upload
seymour-cakes -
Category
Technology
-
view
481 -
download
1
description
Transcript of Open Source Software Development Practices that Works
![Page 1: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/1.jpg)
Open Source Software Development Practices
that Works(or how to get software done)
#mosc2010
![Page 2: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/2.jpg)
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.
Hi! I develop software for a living.
![Page 3: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/3.jpg)
Be Agilebecause it works
![Page 4: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/4.jpg)
Ya use Agile methodology?
No.
Me neither.
![Page 5: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/5.jpg)
http://agilemanifesto.orgWe 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 toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding 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.
"
![Page 6: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/6.jpg)
Extreme ProgrammingScrumCrystal ClearLean Software DevelopmentKanban Software DevelopmentRational Unified ProcessTest Driven Development...
Agile Methodologies
![Page 7: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/7.jpg)
It basically means we got a pretty good plan to get things done.
You can worry less now. ;-)
![Page 8: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/8.jpg)
It Worksbecause it's simple
![Page 9: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/9.jpg)
User StoriesJust 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.
![Page 10: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/10.jpg)
Deliver IterativelyHave clear milestones and short iterations
Break all tasks down to iteration
Plan in iteration -- 1 to 3 weeks
![Page 11: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/11.jpg)
VS
![Page 12: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/12.jpg)
EstimationIt'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
![Page 13: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/13.jpg)
Respect / trustRespect your teammates or staffs
Move responsibility down the chain
Let workers decide the best approach
Encourage passionate commitment
Expect top quality from everyone
![Page 14: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/14.jpg)
Source: Agilefun.com, Agile Romania UG Meeting Bucharest
![Page 15: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/15.jpg)
Daily StandupWhat I accomplished yesterdayWhat I plan to accomplish todayWhat issues are blocking progress
5-10 minutes
![Page 16: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/16.jpg)
http://ayagebeely.blogspot.com/2009/10/stand-up-meeting.html
![Page 17: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/17.jpg)
Short to-do listBecause long todo-list don't get done
Limit the number of tasks
Usually it looks like a checklist
![Page 18: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/18.jpg)
Write TestsThe idea is to build quality in.
Unit test, integration test, .. any sensible test!
Automate the testing
Learn to write good test cases
![Page 19: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/19.jpg)
![Page 20: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/20.jpg)
RefactorKeep 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
![Page 21: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/21.jpg)
Quality is EasyTrack 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
![Page 22: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/22.jpg)
Poka Yoke
![Page 23: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/23.jpg)
Bug Tracking
![Page 24: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/24.jpg)
RetrospectiveOver 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!
![Page 25: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/25.jpg)
FACE FAILURE
![Page 26: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/26.jpg)
Continuous ImprovementKeep 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
![Page 27: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/27.jpg)
Summary1. User stories instead of heavy requirement docs2. Deliver iteratively and deliver working software asap3. Estimation is hard, make it easier by breaking it
down4. Respect and trust is very necessary 5. Daily standup works, please do it Mon to Fri6. Short to-do list works, use it7. Write tests8. Quality is easy, or easier if you build quality in9. Retrospective to learn and improve more
10. CANI -- Continuous And Never ending Improvement
![Page 28: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/28.jpg)
Because it's simpleyou can adapt and improvise
![Page 29: Open Source Software Development Practices that Works](https://reader033.fdocuments.us/reader033/viewer/2022060110/555a4c7cd8b42ad56a8b48a8/html5/thumbnails/29.jpg)
Thank You