SlideShare a Scribd company logo
1 of 26
An Introduction To Software
Development Using Python
Spring Semester, 2015
Class #2:
Software Design
Methodologies
Creating A Software Program
• Customer requirement:
Get out of bed and go to
school.
• Software requirements:
1. Get out of bed
2. Go to the bathroom
3. Go to the kitchen
4. Get cereal bowl, get cereal, get milk, get
O.J., get spoon, get banana
5. Place cereal in bowl, pour milk on it,
peel banana
6. Sit at table
7. Eat cereal in bowl using spoon, eat
banana
8. Go to room
9. Take shower, brush teeth, comb hair
10. Get dressed: shirt, pants, belt, socks,
shoes, watch, jewelry,
11. Grab backpack, laptop, cell phone
12. Shut and lock the door
Image Credit: tec_estromberg
2 Main Concerns Of Any
Software Project
• How much will it cost?
• How long will it take?
Note: there is often a
due date for the software!
Image Credit: Richard Smith
Software Engineering
Requirements
Analysis
Specification
Development
Software
Design
Test &
Verification
Maintenance
Image Credit: http://www.tipsforphotographers.com/waterfall-photography-take-stunning-shots-of-waterfalls
Design Type: Waterfall
Research Concept Test Design Build
Image Credit: http://www.free-extras.com/search/1/waterfall.htm
http://en.wikipedia.org/wiki/McDonnell_Douglas_F/A-18_Hornet
Managing Design Debt
Research Test Design Build Release
Time
Debt
Concept
Cycle Length
Waste
Design Type: Agile
Research Concept Test Design Build Design Build Design Build
Iteration 1Iteration 0 Iteration 2 Iteration 3
Design Type: Agile
Iteration 1
Time
Debt
Iteration 0 Iteration 2
Cycle Length
Waste
Measure
Learn
Build
Design Type: Lean
Design Type: Lean
Build
Time
Debt
MeasureLearn
Cycle Length
Comparing Design
Approaches
11
Waterfall Agile
Validated Design
Waste
Lean
Over Time
Big Bang Software Development
Get requirements from customer
Magical Coding Happens
Exactly what the customer wanted is produced
Image Credit: www.acclaimclipart.com, Matt
Why Doesn’t The Big Bang Work?
• You did do a lot of work
• However, you didn’t show
your customer your work
until you were done
• You thought that you were
building what the customer
wanted with no feedback
• Now you will have to do
rework
Image Credit: John Thurm
Examples Of Customer Requests
• Designing an intersection:
1. There should be 3-color lights
that indicate if a car should be
able to go or stop.
2. Only one direction should be
able to go at a time
3. Pedestrians should be able to
cross safely
4. If there is a system fault, drivers
should be told
5. Don’t delay other drivers if
nobody wants to turn a given
direction.
Image Credit: John Meckley
Customer’s Who Don’t Know
What They Want
• Ask the customer what they mean
• Ask them for more detail
• Ask them for options on how you can
implement their ideas
Image Credit: Daniel
What Do Customers Want?
Image Credit: http://ccechildren.wordpress.com/2010/04/15/learning-objectives-and-goals/
Iteration Is The Key To
Software Success
Start Finish
Big Bang Software Project
What
The
Customer
Really
Wants
Software
Development
With
Iteration
Customer Changed Their Minds
The secret to developing software correctly is iteration. you need to ask
"how am I doing" at each step in the software development process…
Questions About Iteration
• Think of iteration as being a "checkup"
for your software. You'll always know
how you are doing.
• Questions:
– Do you ever know exactly what your customer
wants? No.
– If the project is short, do you still need to iterate?
Yes.
– Why not just nail down requirements before you
start? Customer does not know what they want.
– Who should gather requirements? Tricky question.
– When should iterations start? Every 20 days – one
calendar month.
– What happens if I've screwed up? You fix it starting
now.
Image Credit: BEV Norton
How Do We Handle “BIG”
Software Projects?
Instead of trying to build the complete software solution, you need to
break it up into "chunks" that you can then separately show to the
customer.
Image Credit: Don Brubacher
How Do We Work With
The Customer?
• You can think of each iteration as being almost a "mini-project" which
includes requirements, design, coding, testing, etc. You will actually be
showing your customer well developed pieces of software that you will
eventually all fit together.
• When you've checked the software at the end of each iteration, you have
a much better chance that this is the software that the customer wants.
Get
Requirements
Design
Solution
Code
Solution
Test
Solution
One mini-project
Talk With
Customer
How To Manage Requirements
• Write each requirement on a card
• Give each requirement a name
• Create an estimate for how long it will take to
design / code this requirement
• Determine the customer’s priority for this
requirement (1=High, 5=Low).
Image Credit: London Permaculture
Our Intersection Example (Again)
Title: Red/Yellow/Green Light
Estimate: 12 days
Customer Priority: 1
Title: Right Turn Arrow
Estimate: 3 days
Customer Priority: 4
Title: Left Turn Arrow
Estimate: 3 days
Customer Priority: 4
Title: Traffic Based Scheduling
Estimate: 20 days
Customer Priority: 2
Title: Flashing Yellow Fault
Estimate: 2 days
Customer Priority: 3
Title: Multiple Lights Same Direction
Estimate: 4 days
Customer Priority: 2
Title: Right / Left Green Light
Estimate: 6 days
Customer Priority: 1
Scheduling The Work
20 Days
Title: Traffic Based Scheduling
Estimate: 20 days
Customer Priority: 2
Title: Red/Yellow/Green Light
Estimate: 12 days
Customer Priority: 1
Title: Right / Left Green Light
Estimate: 6 days
Customer Priority: 1
Title: Flashing Yellow Fault
Estimate: 2 days
Customer Priority: 3
Image Credit: Clipart Panda
How Much Iteration Is Too Much?
• The goal of iterations is to catch yourself early when you are
deviating from a goal; however, you don't want to end up
spending all of your time preparing for another discussion
with the customer.
• It is always better to deliver some of the customer's features
working perfectly instead of all of the customer's features not
working properly.
• Customers change their minds. This will end up changing your
project.
Image Credit: Creative Tools
What We Covered Today
1. Different ways to create
software code.
2. Why “The Big Bang”
doesn’t work.
3. Why iteration is what is
needed to stay on track.
4. How to manage
requirements.
Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/
What We’ll Be Covering Next Time
1. What to do when a
customer adds new
requirements
2. What is a software
development process?
3. When is a software
development project
done?
Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/

More Related Content

Viewers also liked

An Introduction To Software Development - Software Support and Maintenance
An Introduction To Software Development - Software Support and MaintenanceAn Introduction To Software Development - Software Support and Maintenance
An Introduction To Software Development - Software Support and MaintenanceBlue Elephant Consulting
 
An Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed DesignAn Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed DesignBlue Elephant Consulting
 
An Introduction To Python - Python Midterm Review
An Introduction To Python - Python Midterm ReviewAn Introduction To Python - Python Midterm Review
An Introduction To Python - Python Midterm ReviewBlue Elephant Consulting
 
An Introduction To Python - Tables, List Algorithms
An Introduction To Python - Tables, List AlgorithmsAn Introduction To Python - Tables, List Algorithms
An Introduction To Python - Tables, List AlgorithmsBlue Elephant Consulting
 

Viewers also liked (9)

An Introduction To Python - Lists, Part 2
An Introduction To Python - Lists, Part 2An Introduction To Python - Lists, Part 2
An Introduction To Python - Lists, Part 2
 
An Introduction To Software Development - Software Support and Maintenance
An Introduction To Software Development - Software Support and MaintenanceAn Introduction To Software Development - Software Support and Maintenance
An Introduction To Software Development - Software Support and Maintenance
 
An Introduction To Python - Files, Part 1
An Introduction To Python - Files, Part 1An Introduction To Python - Files, Part 1
An Introduction To Python - Files, Part 1
 
An Introduction To Python - Dictionaries
An Introduction To Python - DictionariesAn Introduction To Python - Dictionaries
An Introduction To Python - Dictionaries
 
An Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed DesignAn Introduction To Software Development - Architecture & Detailed Design
An Introduction To Software Development - Architecture & Detailed Design
 
An Introduction To Python - Lists, Part 1
An Introduction To Python - Lists, Part 1An Introduction To Python - Lists, Part 1
An Introduction To Python - Lists, Part 1
 
An Introduction To Python - Python Midterm Review
An Introduction To Python - Python Midterm ReviewAn Introduction To Python - Python Midterm Review
An Introduction To Python - Python Midterm Review
 
An Introduction To Python - Tables, List Algorithms
An Introduction To Python - Tables, List AlgorithmsAn Introduction To Python - Tables, List Algorithms
An Introduction To Python - Tables, List Algorithms
 
An Introduction To Python - FOR Loop
An Introduction To Python - FOR LoopAn Introduction To Python - FOR Loop
An Introduction To Python - FOR Loop
 

Recently uploaded

ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...JojoEDelaCruz
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 

Recently uploaded (20)

ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 

An Introduction To Software Development - Software Design Methodologies

  • 1. An Introduction To Software Development Using Python Spring Semester, 2015 Class #2: Software Design Methodologies
  • 2. Creating A Software Program • Customer requirement: Get out of bed and go to school. • Software requirements: 1. Get out of bed 2. Go to the bathroom 3. Go to the kitchen 4. Get cereal bowl, get cereal, get milk, get O.J., get spoon, get banana 5. Place cereal in bowl, pour milk on it, peel banana 6. Sit at table 7. Eat cereal in bowl using spoon, eat banana 8. Go to room 9. Take shower, brush teeth, comb hair 10. Get dressed: shirt, pants, belt, socks, shoes, watch, jewelry, 11. Grab backpack, laptop, cell phone 12. Shut and lock the door Image Credit: tec_estromberg
  • 3. 2 Main Concerns Of Any Software Project • How much will it cost? • How long will it take? Note: there is often a due date for the software! Image Credit: Richard Smith
  • 4. Software Engineering Requirements Analysis Specification Development Software Design Test & Verification Maintenance Image Credit: http://www.tipsforphotographers.com/waterfall-photography-take-stunning-shots-of-waterfalls
  • 5. Design Type: Waterfall Research Concept Test Design Build Image Credit: http://www.free-extras.com/search/1/waterfall.htm http://en.wikipedia.org/wiki/McDonnell_Douglas_F/A-18_Hornet
  • 6. Managing Design Debt Research Test Design Build Release Time Debt Concept Cycle Length Waste
  • 7. Design Type: Agile Research Concept Test Design Build Design Build Design Build Iteration 1Iteration 0 Iteration 2 Iteration 3
  • 8. Design Type: Agile Iteration 1 Time Debt Iteration 0 Iteration 2 Cycle Length Waste
  • 12. Big Bang Software Development Get requirements from customer Magical Coding Happens Exactly what the customer wanted is produced Image Credit: www.acclaimclipart.com, Matt
  • 13. Why Doesn’t The Big Bang Work? • You did do a lot of work • However, you didn’t show your customer your work until you were done • You thought that you were building what the customer wanted with no feedback • Now you will have to do rework Image Credit: John Thurm
  • 14. Examples Of Customer Requests • Designing an intersection: 1. There should be 3-color lights that indicate if a car should be able to go or stop. 2. Only one direction should be able to go at a time 3. Pedestrians should be able to cross safely 4. If there is a system fault, drivers should be told 5. Don’t delay other drivers if nobody wants to turn a given direction. Image Credit: John Meckley
  • 15. Customer’s Who Don’t Know What They Want • Ask the customer what they mean • Ask them for more detail • Ask them for options on how you can implement their ideas Image Credit: Daniel
  • 16. What Do Customers Want? Image Credit: http://ccechildren.wordpress.com/2010/04/15/learning-objectives-and-goals/
  • 17. Iteration Is The Key To Software Success Start Finish Big Bang Software Project What The Customer Really Wants Software Development With Iteration Customer Changed Their Minds The secret to developing software correctly is iteration. you need to ask "how am I doing" at each step in the software development process…
  • 18. Questions About Iteration • Think of iteration as being a "checkup" for your software. You'll always know how you are doing. • Questions: – Do you ever know exactly what your customer wants? No. – If the project is short, do you still need to iterate? Yes. – Why not just nail down requirements before you start? Customer does not know what they want. – Who should gather requirements? Tricky question. – When should iterations start? Every 20 days – one calendar month. – What happens if I've screwed up? You fix it starting now. Image Credit: BEV Norton
  • 19. How Do We Handle “BIG” Software Projects? Instead of trying to build the complete software solution, you need to break it up into "chunks" that you can then separately show to the customer. Image Credit: Don Brubacher
  • 20. How Do We Work With The Customer? • You can think of each iteration as being almost a "mini-project" which includes requirements, design, coding, testing, etc. You will actually be showing your customer well developed pieces of software that you will eventually all fit together. • When you've checked the software at the end of each iteration, you have a much better chance that this is the software that the customer wants. Get Requirements Design Solution Code Solution Test Solution One mini-project Talk With Customer
  • 21. How To Manage Requirements • Write each requirement on a card • Give each requirement a name • Create an estimate for how long it will take to design / code this requirement • Determine the customer’s priority for this requirement (1=High, 5=Low). Image Credit: London Permaculture
  • 22. Our Intersection Example (Again) Title: Red/Yellow/Green Light Estimate: 12 days Customer Priority: 1 Title: Right Turn Arrow Estimate: 3 days Customer Priority: 4 Title: Left Turn Arrow Estimate: 3 days Customer Priority: 4 Title: Traffic Based Scheduling Estimate: 20 days Customer Priority: 2 Title: Flashing Yellow Fault Estimate: 2 days Customer Priority: 3 Title: Multiple Lights Same Direction Estimate: 4 days Customer Priority: 2 Title: Right / Left Green Light Estimate: 6 days Customer Priority: 1
  • 23. Scheduling The Work 20 Days Title: Traffic Based Scheduling Estimate: 20 days Customer Priority: 2 Title: Red/Yellow/Green Light Estimate: 12 days Customer Priority: 1 Title: Right / Left Green Light Estimate: 6 days Customer Priority: 1 Title: Flashing Yellow Fault Estimate: 2 days Customer Priority: 3 Image Credit: Clipart Panda
  • 24. How Much Iteration Is Too Much? • The goal of iterations is to catch yourself early when you are deviating from a goal; however, you don't want to end up spending all of your time preparing for another discussion with the customer. • It is always better to deliver some of the customer's features working perfectly instead of all of the customer's features not working properly. • Customers change their minds. This will end up changing your project. Image Credit: Creative Tools
  • 25. What We Covered Today 1. Different ways to create software code. 2. Why “The Big Bang” doesn’t work. 3. Why iteration is what is needed to stay on track. 4. How to manage requirements. Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/
  • 26. What We’ll Be Covering Next Time 1. What to do when a customer adds new requirements 2. What is a software development process? 3. When is a software development project done? Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/

Editor's Notes

  1. New name for the class I know what this means Technical professionals are who get hired This means much more than just having a narrow vertical knowledge of some subject area. It means that you know how to produce an outcome that I value. I’m willing to pay you to do that.
  2. Example: software engineering Waterfall model Development proceeds linearly from the first step Works well for well-defined and moderately complex S/W applications Fails as the complexity increases due to the inability to move between phases
  3. Good when you need a fixed outcome
  4. You build up a “design debt” over time which then gets brought down. You build up a “debt of ideas”, a backlog of ideas Testing your ideas gives you an opportunity to refine your design During this process you always come up with some great ideas that just aren’t going to make it into the final product. You know what your goals are You are managing against a budget and an expected timeframe You have an expected outcome It’s acceptable that in this process you will have some waste of good ideas
  5. Agile is derived from the waterfall process You do iterations of design / build, design / build You will start to move through your backlog of ideas You can change direction as needed Personal example: trying to get rid of squirrels (rat poison, traps, exterminator)
  6. Build up that same backlog of ideas in iteration 0. Because you are doing design / build, you can start to move through your backlog of ideas. You will be able to get to your best ideas You are reducing your design waste over time
  7. Great process when you are facing “critical uncertainty”. You are trying to do something that is new Don’t do long periods of research and concept development Do a consistent iterative approach: build, measure, learn Example: how I do wood work
  8. Only build up enough ideas so that you can build something and get it out Then go to your next cycle Never really build up a backlog of ideas Only creating enough ideas to move forward
  9. Waterfall design is going to have less of an innovative impact on the world. With waterfall, you are pretty sure that you’ll get what you need With waterfall you’re going to get it when you need it. During the waterfall process, some good ideas are going to go by the wayside Agile is going to help when your outcomes are not completely spelled out The design is going to be better validated by your customer – they will have seen previous versions and offered change suggestions. You will move through your backlog of good ideas. Lean allows you to get a lot of good ideas worked into your product Very few ideas won’t make it into your design – very little spoilage