open source software development practices that works

Post on 19-May-2015

482 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Open Source Software Development Practices that Works

TRANSCRIPT

Open Source Software Development Practices

that Works(or how to get software done)

#mosc2010

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.

Be Agilebecause it works

Ya use Agile methodology?

No.

Me neither.

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.

"

Extreme ProgrammingScrumCrystal ClearLean Software DevelopmentKanban Software DevelopmentRational Unified ProcessTest Driven Development...

Agile Methodologies

It basically means we got a pretty good plan to get things done.

You can worry less now. ;-)

It Worksbecause it's simple

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.

Deliver IterativelyHave clear milestones and short iterations

Break all tasks down to iteration

Plan in iteration -- 1 to 3 weeks

VS

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

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

Source: Agilefun.com, Agile Romania UG Meeting Bucharest

Daily StandupWhat I accomplished yesterdayWhat I plan to accomplish todayWhat issues are blocking progress

5-10 minutes

http://ayagebeely.blogspot.com/2009/10/stand-up-meeting.html

Short to-do listBecause long todo-list don't get done

Limit the number of tasks

Usually it looks like a checklist

Write TestsThe idea is to build quality in.

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

Automate the testing

Learn to write good test cases

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

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

Poka Yoke

Bug Tracking

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!

FACE FAILURE

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

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

Because it's simpleyou can adapt and improvise

Thank You

top related