SlideShare a Scribd company logo
Welcome to the Brixton Library
Technology Initiative
(Coding for Adults)
ZCDixon@lambeth.gov.uk
BasilBibi@hotmail.com
January 30th 2016
Week 3 – Software Development
Software Development
• The development lifecycle.
• How projects are managed.
Development Lifecycle
• How software is built.
Building good quality software is very hard.
Depends on good management process,
developer skills and tooling.
• Management process – clear objectives, realistic estimates
and robust quality assurance.
Development Lifecycle - Requirements
• Requirements are formal, mostly technology agnostic
statements about what the system should do.
• They are gathered and documented by a business
analyst (BA) sometimes called a domain expert /
domain specialist.
• Documented as a “Use Cases” or “Stories”– one per
business function.
“An account holder should be able to withdraw funds from their
account.”
“A customer should be able to browse stock.”
Development Lifecycle – Domain Modelling
• The “domain” is a description of all the business
‘things’ in the system and how they are related.
• Analysts look at the Use Cases and pick out the
nouns to model the domain.
“An Account Holder should be able to withdraw
money from their account.”
• These are called “Entities” and usually go on to
become tables in a database and Objects in object
oriented design.
Development Lifecycle – From Use Case to Code
• Developers work on Use Cases and produce code or
working components.
• Use cases are elaborated to refine details and
produce sub tasks.
• Developers use IDEs, code repositories, automated
build management tools to complete their tasks.
• Testing.
Development Lifecycle – Testing
• How do you prove that everything works correctly?
• Break the problem down into small chunks and build up.
• Unit test - verifies that a single function works.
• Unit tests - confirm that a module or class works.
• Integration tests - groups of dependent modules or classes.
• System tests - makes sure that the whole system connects to
with systems and works correctly.
• User Acceptance Testing (UAT) - the users check that the use
cases are satisfied and ‘sign off’ on them.
• Performance tests - make sure the system hasn’t slowed down
with each release.
• Regression tests - Test that the system has not ‘regressed’ i.e.
new bugs that were hidden may arise in unexpected places.
• Smoke tests - make sure that when the system goes live
everything works as expected.
Development Lifecycle – Deployment
• The code is put into “Production” and monitored.
• When bugs surface they are either dealt with
immediately or are prioritised fixed later.
• All systems have bugs.
Development Lifecycle – Deployment
• All systems have bugs some not in code but in process.
• Allegedly caused by a corrupt database backup when
the main database failed.
• All transactions had to be replayed – took a long time to
fix and under tremendous pressure – image that.
• Cost to reputation as well as fines.
How Projects Are Managed - Agile
• Work is managed and planned with milestones and releases.
• This is done using various methodologies.
• There have been many methodologies over the decades.
• Most failed because they tried to plan too much ahead of
time.
• Waterfall – plan everything in minute detail up front.
• Very costly up front with nothing to show but paperwork.
• Hard to change once a commitment is made.
• Better to have a rough idea and refine it as you go along with
frequent user intervention and involvement.
• “Agile” is currently a very popular PM methodology – a
variant for software development is called “scrum”
• Old joke - What’s the difference between a Terrorist and a
Methodologist?
• You can negotiate with a terrorist ;)
How Projects Are Managed
How Projects Are Managed – Scrum
• All of the Stories are put into a Backlog.
• Stakeholder decides priority of stories.
• Developers analyse the story and estimate how long it will
take to complete using Story Points.
• Story Points are a measure of complexity based on the
Fibonacci series.
• A story point might be worth 2.5 days.
• Estimated stories are ready for development. These are then
organised into “sprints”.
• Sprint is usually a 2 week cycle with a demo of working code
at the end.
• The team meet every morning at a stand up to discuss
progress and blockers.
• Other team members and/or the scrum master help out
with blockers.
• Sprints and deliverables are organised into releases.
How Projects Are Managed– Sprint
• Prior to a sprint starting the developers do their
estimation.
• The sprint is punctuated by daily stand ups.
• The sprint concludes with a demo.
• Any work not completed carries over to the next sprint.
• The sprint itself is analysed in a sprint retrospective
which asks:
• What did we do well?
• How can we improve?
• How accurate is our estimation and why?
• How many story points did we complete in the sprint?
• This gives a measure of “velocity”.

More Related Content

What's hot

BlueHat v18 || Go build a tool - best practices for building a robust & e...
BlueHat v18 || Go build a tool - best practices for building a robust & e...BlueHat v18 || Go build a tool - best practices for building a robust & e...
BlueHat v18 || Go build a tool - best practices for building a robust & e...
BlueHat Security Conference
 
Getting more 9s from your Cloud operations
Getting more 9s from your Cloud operationsGetting more 9s from your Cloud operations
Getting more 9s from your Cloud operations
Chamith Kumarage
 
An overview of the process for handling enterprise client tickets
An overview of the process for handling enterprise client ticketsAn overview of the process for handling enterprise client tickets
An overview of the process for handling enterprise client tickets
Mohammad Ali
 
Software validation!
Software validation!Software validation!
Software validation!
Robert Phe
 
What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)
Michael Diamant
 
SDLC
SDLC SDLC

What's hot (6)

BlueHat v18 || Go build a tool - best practices for building a robust & e...
BlueHat v18 || Go build a tool - best practices for building a robust & e...BlueHat v18 || Go build a tool - best practices for building a robust & e...
BlueHat v18 || Go build a tool - best practices for building a robust & e...
 
Getting more 9s from your Cloud operations
Getting more 9s from your Cloud operationsGetting more 9s from your Cloud operations
Getting more 9s from your Cloud operations
 
An overview of the process for handling enterprise client tickets
An overview of the process for handling enterprise client ticketsAn overview of the process for handling enterprise client tickets
An overview of the process for handling enterprise client tickets
 
Software validation!
Software validation!Software validation!
Software validation!
 
What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)
 
SDLC
SDLC SDLC
SDLC
 

Viewers also liked

Brixon Library Technology Initiative
Brixon Library Technology InitiativeBrixon Library Technology Initiative
Brixon Library Technology Initiative
Basil Bibi
 
Under The Covers
Under The CoversUnder The Covers
Under The Covers
Basil Bibi
 
Welcome to the Brixton Library Technology Initiative
Welcome to the Brixton Library Technology InitiativeWelcome to the Brixton Library Technology Initiative
Welcome to the Brixton Library Technology Initiative
Basil Bibi
 
Hazer0 (1)
Hazer0 (1)Hazer0 (1)
Hazer0 (1)
Jiekai Koh
 
Brixton Library Technology Initiative Week1 Recap
Brixton Library Technology Initiative Week1 RecapBrixton Library Technology Initiative Week1 Recap
Brixton Library Technology Initiative Week1 Recap
Basil Bibi
 
Brixton Library Technology Initiative Week0 Recap
Brixton Library Technology Initiative Week0 RecapBrixton Library Technology Initiative Week0 Recap
Brixton Library Technology Initiative Week0 Recap
Basil Bibi
 
2007 ANNUAL RESEARCH FORUM ABSTRACT
2007 ANNUAL RESEARCH FORUM ABSTRACT2007 ANNUAL RESEARCH FORUM ABSTRACT
2007 ANNUAL RESEARCH FORUM ABSTRACT
constantine (tim) voridis
 
CV-Europass-20161130-Voridis-EN
CV-Europass-20161130-Voridis-ENCV-Europass-20161130-Voridis-EN
CV-Europass-20161130-Voridis-EN
constantine (tim) voridis
 
Brixton Library Technology Initiative Week2 Intro
Brixton Library Technology Initiative Week2 IntroBrixton Library Technology Initiative Week2 Intro
Brixton Library Technology Initiative Week2 Intro
Basil Bibi
 
Brixton Library Technology Initiative
Brixton Library Technology InitiativeBrixton Library Technology Initiative
Brixton Library Technology Initiative
Basil Bibi
 

Viewers also liked (10)

Brixon Library Technology Initiative
Brixon Library Technology InitiativeBrixon Library Technology Initiative
Brixon Library Technology Initiative
 
Under The Covers
Under The CoversUnder The Covers
Under The Covers
 
Welcome to the Brixton Library Technology Initiative
Welcome to the Brixton Library Technology InitiativeWelcome to the Brixton Library Technology Initiative
Welcome to the Brixton Library Technology Initiative
 
Hazer0 (1)
Hazer0 (1)Hazer0 (1)
Hazer0 (1)
 
Brixton Library Technology Initiative Week1 Recap
Brixton Library Technology Initiative Week1 RecapBrixton Library Technology Initiative Week1 Recap
Brixton Library Technology Initiative Week1 Recap
 
Brixton Library Technology Initiative Week0 Recap
Brixton Library Technology Initiative Week0 RecapBrixton Library Technology Initiative Week0 Recap
Brixton Library Technology Initiative Week0 Recap
 
2007 ANNUAL RESEARCH FORUM ABSTRACT
2007 ANNUAL RESEARCH FORUM ABSTRACT2007 ANNUAL RESEARCH FORUM ABSTRACT
2007 ANNUAL RESEARCH FORUM ABSTRACT
 
CV-Europass-20161130-Voridis-EN
CV-Europass-20161130-Voridis-ENCV-Europass-20161130-Voridis-EN
CV-Europass-20161130-Voridis-EN
 
Brixton Library Technology Initiative Week2 Intro
Brixton Library Technology Initiative Week2 IntroBrixton Library Technology Initiative Week2 Intro
Brixton Library Technology Initiative Week2 Intro
 
Brixton Library Technology Initiative
Brixton Library Technology InitiativeBrixton Library Technology Initiative
Brixton Library Technology Initiative
 

Similar to Software Development

Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
AhmadSajjad34
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
Ajit Nayak
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
Amna Ch
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
SanskarBhushankar
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.ppt
ADARSHN40
 
Chapter6
Chapter6Chapter6
Chapter6
mkrishna69209
 
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
TEST Huddle
 
Chapter 1,2,3,4 notes
Chapter 1,2,3,4 notesChapter 1,2,3,4 notes
Chapter 1,2,3,4 notes
Aruna M
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
AnveshPatel7
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
Yann Malet
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
moduledesign
 
Software process models
Software process modelsSoftware process models
Software process models
Malik WaQas
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
moduledesign
 
Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
avishekpradhan24
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
Ahsan Rahim
 
Agile Processes - Scrum
Agile Processes - ScrumAgile Processes - Scrum
Agile Processes - Scrum
Soumya De
 
Pawan111
Pawan111Pawan111
Pawan111
ranjeetdon
 
How Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineHow Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom Line
Imaginet
 
Lecture 12 - Agile Processes-Scrum.ppt
Lecture 12 - Agile Processes-Scrum.pptLecture 12 - Agile Processes-Scrum.ppt
Lecture 12 - Agile Processes-Scrum.ppt
MujeebMohammed18
 
Lecture 12 - Agile Processes-Scrum.ppt
Lecture 12 - Agile Processes-Scrum.pptLecture 12 - Agile Processes-Scrum.ppt
Lecture 12 - Agile Processes-Scrum.ppt
AnuriJoshi
 

Similar to Software Development (20)

Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
 
Software Engineering : Process Models
Software Engineering : Process ModelsSoftware Engineering : Process Models
Software Engineering : Process Models
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.ppt
 
Chapter6
Chapter6Chapter6
Chapter6
 
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
Christian Bk Hansen - Agile on Huge Banking Mainframe Legacy Systems - EuroST...
 
Chapter 1,2,3,4 notes
Chapter 1,2,3,4 notesChapter 1,2,3,4 notes
Chapter 1,2,3,4 notes
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Software process models
Software process modelsSoftware process models
Software process models
 
Lecture 3 software_engineering
Lecture 3 software_engineeringLecture 3 software_engineering
Lecture 3 software_engineering
 
Software vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdfSoftware vjhghjjkhjkkkghhjhEngineering.pdf
Software vjhghjjkhjkkkghhjhEngineering.pdf
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Agile Processes - Scrum
Agile Processes - ScrumAgile Processes - Scrum
Agile Processes - Scrum
 
Pawan111
Pawan111Pawan111
Pawan111
 
How Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom LineHow Microsoft ALM Tools Can Improve Your Bottom Line
How Microsoft ALM Tools Can Improve Your Bottom Line
 
Lecture 12 - Agile Processes-Scrum.ppt
Lecture 12 - Agile Processes-Scrum.pptLecture 12 - Agile Processes-Scrum.ppt
Lecture 12 - Agile Processes-Scrum.ppt
 
Lecture 12 - Agile Processes-Scrum.ppt
Lecture 12 - Agile Processes-Scrum.pptLecture 12 - Agile Processes-Scrum.ppt
Lecture 12 - Agile Processes-Scrum.ppt
 

Software Development

  • 1. Welcome to the Brixton Library Technology Initiative (Coding for Adults) ZCDixon@lambeth.gov.uk BasilBibi@hotmail.com January 30th 2016 Week 3 – Software Development
  • 2. Software Development • The development lifecycle. • How projects are managed.
  • 3. Development Lifecycle • How software is built. Building good quality software is very hard. Depends on good management process, developer skills and tooling. • Management process – clear objectives, realistic estimates and robust quality assurance.
  • 4. Development Lifecycle - Requirements • Requirements are formal, mostly technology agnostic statements about what the system should do. • They are gathered and documented by a business analyst (BA) sometimes called a domain expert / domain specialist. • Documented as a “Use Cases” or “Stories”– one per business function. “An account holder should be able to withdraw funds from their account.” “A customer should be able to browse stock.”
  • 5. Development Lifecycle – Domain Modelling • The “domain” is a description of all the business ‘things’ in the system and how they are related. • Analysts look at the Use Cases and pick out the nouns to model the domain. “An Account Holder should be able to withdraw money from their account.” • These are called “Entities” and usually go on to become tables in a database and Objects in object oriented design.
  • 6. Development Lifecycle – From Use Case to Code • Developers work on Use Cases and produce code or working components. • Use cases are elaborated to refine details and produce sub tasks. • Developers use IDEs, code repositories, automated build management tools to complete their tasks. • Testing.
  • 7. Development Lifecycle – Testing • How do you prove that everything works correctly? • Break the problem down into small chunks and build up. • Unit test - verifies that a single function works. • Unit tests - confirm that a module or class works. • Integration tests - groups of dependent modules or classes. • System tests - makes sure that the whole system connects to with systems and works correctly. • User Acceptance Testing (UAT) - the users check that the use cases are satisfied and ‘sign off’ on them. • Performance tests - make sure the system hasn’t slowed down with each release. • Regression tests - Test that the system has not ‘regressed’ i.e. new bugs that were hidden may arise in unexpected places. • Smoke tests - make sure that when the system goes live everything works as expected.
  • 8. Development Lifecycle – Deployment • The code is put into “Production” and monitored. • When bugs surface they are either dealt with immediately or are prioritised fixed later. • All systems have bugs.
  • 9. Development Lifecycle – Deployment • All systems have bugs some not in code but in process. • Allegedly caused by a corrupt database backup when the main database failed. • All transactions had to be replayed – took a long time to fix and under tremendous pressure – image that. • Cost to reputation as well as fines.
  • 10. How Projects Are Managed - Agile • Work is managed and planned with milestones and releases. • This is done using various methodologies. • There have been many methodologies over the decades. • Most failed because they tried to plan too much ahead of time. • Waterfall – plan everything in minute detail up front. • Very costly up front with nothing to show but paperwork. • Hard to change once a commitment is made. • Better to have a rough idea and refine it as you go along with frequent user intervention and involvement. • “Agile” is currently a very popular PM methodology – a variant for software development is called “scrum” • Old joke - What’s the difference between a Terrorist and a Methodologist? • You can negotiate with a terrorist ;)
  • 11. How Projects Are Managed
  • 12. How Projects Are Managed – Scrum • All of the Stories are put into a Backlog. • Stakeholder decides priority of stories. • Developers analyse the story and estimate how long it will take to complete using Story Points. • Story Points are a measure of complexity based on the Fibonacci series. • A story point might be worth 2.5 days. • Estimated stories are ready for development. These are then organised into “sprints”. • Sprint is usually a 2 week cycle with a demo of working code at the end. • The team meet every morning at a stand up to discuss progress and blockers. • Other team members and/or the scrum master help out with blockers. • Sprints and deliverables are organised into releases.
  • 13. How Projects Are Managed– Sprint • Prior to a sprint starting the developers do their estimation. • The sprint is punctuated by daily stand ups. • The sprint concludes with a demo. • Any work not completed carries over to the next sprint. • The sprint itself is analysed in a sprint retrospective which asks: • What did we do well? • How can we improve? • How accurate is our estimation and why? • How many story points did we complete in the sprint? • This gives a measure of “velocity”.