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

What's hot

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
Killick Agile Consulting Services
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
Cristian Andreica
 
Software Project management
Software Project managementSoftware Project management
Software Project management
Peter Brownell
 
An Introduction to XP and Agile
An Introduction to XP and AgileAn Introduction to XP and Agile
An Introduction to XP and Agile
Jason 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 Craftsman
goeran
 
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
Adeolu 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.0
Dao 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 way
tanvir afzal
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnu
goeran
 
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 Talk
jaredbrown
 

What's hot (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
 

Viewers also liked

LibSBML - open source software development
LibSBML - open source software developmentLibSBML - open source software development
LibSBML - open source software development
Sarah Keating
 
Concurrent Open Source Software Development
Concurrent Open Source Software DevelopmentConcurrent Open Source Software Development
Concurrent Open Source Software Developmentartfulgeek
 
Catalogue F. Iniciativas Canada
Catalogue F. Iniciativas CanadaCatalogue F. Iniciativas Canada
Catalogue F. Iniciativas Canada
Daniel Gómez Galiano
 
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 Source
OpusVL
 
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
 
Open source software development
Open source software developmentOpen source software development
Open source software development
Sagar Raravi
 
[2015/2016] Software development process
[2015/2016] Software development process[2015/2016] Software development process
[2015/2016] Software development process
Ivano Malavolta
 

Viewers also liked (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
 

Similar to 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 later
Craig 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 Development
JawdatTI
 
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 2017
AgileNZ 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
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
OpenSource Connections
 
Test strategy
Test strategyTest strategy
Test strategy
adarsh j
 
Agile - Scrum
Agile - ScrumAgile - Scrum
Agile - Scrum
Samir Chitkara
 
Scrum overview
Scrum overviewScrum overview
Scrum overview
Robert Bastian
 
Agile Lessons Learned From the Trenches
Agile Lessons Learned From the TrenchesAgile Lessons Learned From the Trenches
Agile Lessons Learned From the Trenches
Brendan 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.docx
ADDY50
 
Scrum
ScrumScrum
Agile Development and Implementing Scrum
Agile Development and Implementing ScrumAgile Development and Implementing Scrum
Agile Development and Implementing Scrum
Emre ŞAHİN
 
Agile Team Performance Appraisal
Agile Team Performance AppraisalAgile Team Performance Appraisal
Agile Team Performance Appraisal
Ashutosh 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
 

Similar to 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?
 

More from Choong Ping Teo

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

More from 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
 

Recently uploaded

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
Fwdays
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 

Recently uploaded (20)

To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.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
  • 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