SlideShare a Scribd company logo
Requirements:
the Last Bottleneck
Bill Karwin
ZendCon • Santa Clara • 2010/11/3
Me
• Software developer
• C, Java, Perl, PHP, Ruby
• SQL maven
• Author of new book
SQL Antipatterns
cost
the greatest single cost
in producing software is
programmer time
code faster!
Tools for reducing programmer time
• Dynamic languages
• Lots of functions
• OO design
• Code reuse
• Code generation
• IDE’s
• Frameworks
• Source control
• Test automation
• Agile development
• Tools help productivity for coding and
error removal
• But not so much for requirements
management
Error removal is the most time-
consuming part of development
Facts and Fallacies of Software Engineering, Robert L. Glass
Cost to fix a defect
Software Requirements, Karl E.Wiegers
Code Complete, Steve McConnell
code faster?
code less!
Front-load the project
Facts and Fallacies of Software Engineering, Robert L. Glass
managing requirements
reduces project cost
so why don’t we do it?
“We practice
Agile Development, so we
don’t need requirements.”
Really?
Agile Manifesto?
Principle #2:
“Welcome changing requirements,
even late in development.”
http://www.agilemanifesto.org/
Test-Driven Design?
“TDD is very good at detailed specification and
validation, but not so good at thinking through
bigger issues such as the overall design, how
people will use the system, or the UI design
(for example).”
Introduction toTest-Driven Design, Scott W.Ambler
http://www.agiledata.org/essays/tdd.html
Extreme Programming?
Extreme Programming Explained: Embrace Change, Kent Beck
Coding
If you don’t code, you
haven’t done anything.
Testing
If you don’t test, you don’t
know when you are done
coding.
Listening
If you don’t listen you
don’t know what to code
or what to test.
Design
So you can keep coding
and testing and listening
indefinitely.
Scrum?
• Product Backlog: the prioritized list of
desired project outcomes/features
http://www.scrumalliance.org/learn_about_scrum
Repeat for each Agile iteration
“Every time the design
changes, we have to update
the requirements doc.”
“Requirements are not architecture.
Requirements are not design,
nor are they interface.
Requirements are need.”
The Pragmatic Programmer: From Journeyman to Master,Andrew Hunt and David Thomas
do not dictate the
implementation
in the requirements
Decoupling
• Familiar principle of OO design
• Interface vs. implementation
• Design patterns (Strategy, Bridge, etc.)
Decouple requirements from solutions
Solution 2
C#, .NET
Solution 1
Java, Spring
Solution 3
PHP
Require-
ments
☒
☑
☒
“How much detail
is enough?”
“If it takes more than 15 minutes to
determine what it is that you’re building,
the spec wasn’t done properly.”
Really?
• Imagine your boss has a great idea
• He’s going to describe his idea to you
• You’re to code it while he’s gone
• He has to leave in 15 minutes
• Here’s his vision...
Requirements the Last Bottleneck
How much is enough?
• Probably a bit more than 15 minutes
• But not a whole book
• Focus on goals to satisfy, not design or
implementation
“No one reads
requirements docs anyway.”
• Right—if the docs aren’t helpful
• Make the docs helpful to developers
• Describe what to build, not how
SMART goals
specific
measurable
achievable
results-oriented
timely
Specific
• Be concrete; use action verbs
• Users will have an intuitive experience using our
software.
• Users will be able to post textual content of
140 characters or fewer, and to search the
content posted by others.
☒
☑
Specific
• Also specify what the project does not need
• Support all browsers, full stop. It doesn’t matter
how obscure or how old.
• Test the browser brands/versions used by 97%
of the target market.
☒
☑
Measurable
• Describe testable or quantifiable goals
• The web site will work at web scale.
• The web site will serve up to 10 million users;
up to 10 thousand posting simultaneously;
up to 500 thousand reading content stream.
☒
☑
Measurable
• Measure progress as well as final result
• The whole site must have no security issues.
• Certify that each application use case is secure.
☒
☑
Achievable
• Set goals that are feasible and possible;
stay appropriate to scope
• Our site will change the way people
communicate on the web.
• Our site will let users contribute bite-sized
content and search the content stream by
users, by lists of users, or by tags or trends.
☒
☑
Results-oriented
• Describe outputs or results—not activities
• Developers will always strive to achieve optimal
performance.
• The landing page will respond in ~0.5 sec;
other pages will respond in ~1.0 sec.
☒
☑
Results-oriented
• Describe outputs or results—not activities
• The developers will use LAMP stack, REST
architecture, scrum methodology, and git.
• Don’t dictate technology choices, design, or
methodology in requirements.
☒
☑
Time-related
• Use specific, realistic deadlines;
include milestones, schedule
• We need our web site to go live sooner rather
than later.
• Four weeks for design;
three weeks for developing prototype;
one week for performance testing;
three weeks for refactoring;
one week for final work and deployment.
☒
☑
Evaluation
• Often forgotten phase
• Testing is part of this of course
• Other review of how well you met the
requirements
• In Agile terms, delivery to customer
• Spell out evaluation criteria in requirements
manage requirements
to develop more
efficiently
decouple requirements
from solutions
be SMART
SQL Antipatterns:
Avoiding the Pitfalls
of Database Programming
http://www.pragprog.com/titles/bksqla/
Copyright 2010 Bill Karwin
www.slideshare.net/billkarwin
Released under a Creative Commons 3.0 License:
http://creativecommons.org/licenses/by-nc-nd/3.0/
You are free to share - to copy, distribute and
transmit this work, under the following conditions:
Attribution.
You must attribute this
work to Bill Karwin.
Noncommercial.
You may not use this work
for commercial purposes.
No Derivative Works.
You may not alter,
transform, or build
upon this work.

More Related Content

PPTX
SoftExpert - Market Potential For Malaysia
PPTX
Implementing Automated Qms For Business Excellence
PDF
APQP Application
PPT
04 ppap training material
PDF
Ppap training-presentation-150311063239-conversion-gate01
PDF
Apqp bumming you out briefing may 30 2013
PPT
Get Relief for Your PPAP Grief
PDF
Apqp ppt
SoftExpert - Market Potential For Malaysia
Implementing Automated Qms For Business Excellence
APQP Application
04 ppap training material
Ppap training-presentation-150311063239-conversion-gate01
Apqp bumming you out briefing may 30 2013
Get Relief for Your PPAP Grief
Apqp ppt

What's hot (20)

PPT
Spice
PDF
Advanced Product Quality Planning Reference Model
PPT
Apqp training presentation
PDF
Apqp questionaire
PPT
Ppap la
PDF
Webinar "Gestión de la calidad en entornos SAP"
PPTX
Product Quality Planning
PPT
Ppap training presentation
PPTX
Production part approval process ppt 1
PPTX
ADVANCED PRODUCT QUALITY
PPT
Ppap la
PPTX
Introduction to ASPICE
PDF
Ppap manual qa3525 3.0
PDF
PPAP 101: What You Should Know About PPAP
PPT
PPAP
ODP
PPT
Apqp-en
PPTX
PPT
PDF
Quality Assurance in SDLC
Spice
Advanced Product Quality Planning Reference Model
Apqp training presentation
Apqp questionaire
Ppap la
Webinar "Gestión de la calidad en entornos SAP"
Product Quality Planning
Ppap training presentation
Production part approval process ppt 1
ADVANCED PRODUCT QUALITY
Ppap la
Introduction to ASPICE
Ppap manual qa3525 3.0
PPAP 101: What You Should Know About PPAP
PPAP
Apqp-en
Quality Assurance in SDLC
Ad

Viewers also liked (20)

PDF
MySQL Server Defaults
PDF
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
PDF
MySQL InnoDB 源码实现分析(一)
PDF
Using Apache Spark and MySQL for Data Analysis
PDF
Extensible Data Modeling
PDF
PDF
Inno db internals innodb file formats and source code structure
PDF
Reducing Risk When Upgrading MySQL
PDF
Capturing, Analyzing and Optimizing MySQL
PPT
淘宝数据库架构演进历程
PDF
MySQL Backup and Recovery Essentials
PDF
Multi Source Replication With MySQL 5.7 @ Verisure
PDF
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
PDF
Everything You Need to Know About MySQL Group Replication
PPTX
High Availability Using MySQL Group Replication
PDF
MySQL High Availability Deep Dive
PDF
MySQL High-Availability and Scale-Out architectures
PDF
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
PDF
MySQL 5.7: Focus on InnoDB
PDF
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Server Defaults
MySQL innodb cluster and Group Replication in a nutshell - hands-on tutorial ...
MySQL InnoDB 源码实现分析(一)
Using Apache Spark and MySQL for Data Analysis
Extensible Data Modeling
Inno db internals innodb file formats and source code structure
Reducing Risk When Upgrading MySQL
Capturing, Analyzing and Optimizing MySQL
淘宝数据库架构演进历程
MySQL Backup and Recovery Essentials
Multi Source Replication With MySQL 5.7 @ Verisure
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Everything You Need to Know About MySQL Group Replication
High Availability Using MySQL Group Replication
MySQL High Availability Deep Dive
MySQL High-Availability and Scale-Out architectures
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL 5.7: Focus on InnoDB
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
Ad

Similar to Requirements the Last Bottleneck (20)

PPTX
software_engineering_agile_methodology.pptx
PPTX
Requirements gathering for developers
PPTX
Ordina Accelerator program 2019 - DevOps CI-CD
PPT
notes-SRE Lec_2(2).pptx education dg khan
PPT
notes-SRE Lec_2.ppt University of Education Lahore Pakistan
PPT
DevOps Requirement practises - the shift to agile
PPTX
Agile Overview Session
PDF
Agile Requirements Is Not an Oxymoron
PPTX
Agile software development
PDF
Wasserman Keynote at ICSSP 2013
PPT
Arch factory - Agile Design: Best Practices
PPT
Best practices for agile design
PPTX
3-SE Agility and Process-2.pptx
PPTX
WinSmart Technologies
PPTX
Agilelessons scanagile-final 2013
PDF
Agile Requirements—From Breadth to Depth
PPT
Project Requriement Management Vs Agile software development
KEY
Skillshare - From Noob to Tech CEO - nov 7th, 2011
PDF
Agile Database Development - SDC2012
software_engineering_agile_methodology.pptx
Requirements gathering for developers
Ordina Accelerator program 2019 - DevOps CI-CD
notes-SRE Lec_2(2).pptx education dg khan
notes-SRE Lec_2.ppt University of Education Lahore Pakistan
DevOps Requirement practises - the shift to agile
Agile Overview Session
Agile Requirements Is Not an Oxymoron
Agile software development
Wasserman Keynote at ICSSP 2013
Arch factory - Agile Design: Best Practices
Best practices for agile design
3-SE Agility and Process-2.pptx
WinSmart Technologies
Agilelessons scanagile-final 2013
Agile Requirements—From Breadth to Depth
Project Requriement Management Vs Agile software development
Skillshare - From Noob to Tech CEO - nov 7th, 2011
Agile Database Development - SDC2012

More from Karwin Software Solutions LLC (16)

PDF
How to Use JSON in MySQL Wrong
PDF
Recursive Query Throwdown
PDF
InnoDB Locking Explained with Stick Figures
PDF
SQL Outer Joins for Fun and Profit
PDF
Sql query patterns, optimized
PDF
Survey of Percona Toolkit
PDF
How to Design Indexes, Really
PDF
PDF
MySQL 5.5 Guide to InnoDB Status
PDF
Mentor Your Indexes
PDF
Models for hierarchical data
PDF
Sql Injection Myths and Fallacies
PDF
Full Text Search In PostgreSQL
PDF
Practical Object Oriented Models In Sql
PDF
Sql Antipatterns Strike Back
How to Use JSON in MySQL Wrong
Recursive Query Throwdown
InnoDB Locking Explained with Stick Figures
SQL Outer Joins for Fun and Profit
Sql query patterns, optimized
Survey of Percona Toolkit
How to Design Indexes, Really
MySQL 5.5 Guide to InnoDB Status
Mentor Your Indexes
Models for hierarchical data
Sql Injection Myths and Fallacies
Full Text Search In PostgreSQL
Practical Object Oriented Models In Sql
Sql Antipatterns Strike Back

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PDF
Approach and Philosophy of On baking technology
PDF
cuic standard and advanced reporting.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
KodekX | Application Modernization Development
PDF
Advanced Soft Computing BINUS July 2025.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PPT
Teaching material agriculture food technology
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Cloud computing and distributed systems.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
Machine learning based COVID-19 study performance prediction
Approach and Philosophy of On baking technology
cuic standard and advanced reporting.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Per capita expenditure prediction using model stacking based on satellite ima...
KodekX | Application Modernization Development
Advanced Soft Computing BINUS July 2025.pdf
Electronic commerce courselecture one. Pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Understanding_Digital_Forensics_Presentation.pptx
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
Teaching material agriculture food technology
GamePlan Trading System Review: Professional Trader's Honest Take
20250228 LYD VKU AI Blended-Learning.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Review of recent advances in non-invasive hemoglobin estimation
Cloud computing and distributed systems.
The Rise and Fall of 3GPP – Time for a Sabbatical?

Requirements the Last Bottleneck

  • 1. Requirements: the Last Bottleneck Bill Karwin ZendCon • Santa Clara • 2010/11/3
  • 2. Me • Software developer • C, Java, Perl, PHP, Ruby • SQL maven • Author of new book SQL Antipatterns
  • 4. the greatest single cost in producing software is programmer time
  • 6. Tools for reducing programmer time • Dynamic languages • Lots of functions • OO design • Code reuse • Code generation • IDE’s • Frameworks • Source control • Test automation • Agile development
  • 7. • Tools help productivity for coding and error removal • But not so much for requirements management
  • 8. Error removal is the most time- consuming part of development Facts and Fallacies of Software Engineering, Robert L. Glass
  • 9. Cost to fix a defect Software Requirements, Karl E.Wiegers Code Complete, Steve McConnell
  • 12. Front-load the project Facts and Fallacies of Software Engineering, Robert L. Glass
  • 14. so why don’t we do it?
  • 15. “We practice Agile Development, so we don’t need requirements.” Really?
  • 16. Agile Manifesto? Principle #2: “Welcome changing requirements, even late in development.” http://www.agilemanifesto.org/
  • 17. Test-Driven Design? “TDD is very good at detailed specification and validation, but not so good at thinking through bigger issues such as the overall design, how people will use the system, or the UI design (for example).” Introduction toTest-Driven Design, Scott W.Ambler http://www.agiledata.org/essays/tdd.html
  • 18. Extreme Programming? Extreme Programming Explained: Embrace Change, Kent Beck Coding If you don’t code, you haven’t done anything. Testing If you don’t test, you don’t know when you are done coding. Listening If you don’t listen you don’t know what to code or what to test. Design So you can keep coding and testing and listening indefinitely.
  • 19. Scrum? • Product Backlog: the prioritized list of desired project outcomes/features http://www.scrumalliance.org/learn_about_scrum
  • 20. Repeat for each Agile iteration
  • 21. “Every time the design changes, we have to update the requirements doc.”
  • 22. “Requirements are not architecture. Requirements are not design, nor are they interface. Requirements are need.” The Pragmatic Programmer: From Journeyman to Master,Andrew Hunt and David Thomas
  • 23. do not dictate the implementation in the requirements
  • 24. Decoupling • Familiar principle of OO design • Interface vs. implementation • Design patterns (Strategy, Bridge, etc.)
  • 25. Decouple requirements from solutions Solution 2 C#, .NET Solution 1 Java, Spring Solution 3 PHP Require- ments ☒ ☑ ☒
  • 26. “How much detail is enough?”
  • 27. “If it takes more than 15 minutes to determine what it is that you’re building, the spec wasn’t done properly.” Really?
  • 28. • Imagine your boss has a great idea • He’s going to describe his idea to you • You’re to code it while he’s gone • He has to leave in 15 minutes • Here’s his vision...
  • 30. How much is enough? • Probably a bit more than 15 minutes • But not a whole book • Focus on goals to satisfy, not design or implementation
  • 31. “No one reads requirements docs anyway.”
  • 32. • Right—if the docs aren’t helpful • Make the docs helpful to developers • Describe what to build, not how
  • 35. Specific • Be concrete; use action verbs • Users will have an intuitive experience using our software. • Users will be able to post textual content of 140 characters or fewer, and to search the content posted by others. ☒ ☑
  • 36. Specific • Also specify what the project does not need • Support all browsers, full stop. It doesn’t matter how obscure or how old. • Test the browser brands/versions used by 97% of the target market. ☒ ☑
  • 37. Measurable • Describe testable or quantifiable goals • The web site will work at web scale. • The web site will serve up to 10 million users; up to 10 thousand posting simultaneously; up to 500 thousand reading content stream. ☒ ☑
  • 38. Measurable • Measure progress as well as final result • The whole site must have no security issues. • Certify that each application use case is secure. ☒ ☑
  • 39. Achievable • Set goals that are feasible and possible; stay appropriate to scope • Our site will change the way people communicate on the web. • Our site will let users contribute bite-sized content and search the content stream by users, by lists of users, or by tags or trends. ☒ ☑
  • 40. Results-oriented • Describe outputs or results—not activities • Developers will always strive to achieve optimal performance. • The landing page will respond in ~0.5 sec; other pages will respond in ~1.0 sec. ☒ ☑
  • 41. Results-oriented • Describe outputs or results—not activities • The developers will use LAMP stack, REST architecture, scrum methodology, and git. • Don’t dictate technology choices, design, or methodology in requirements. ☒ ☑
  • 42. Time-related • Use specific, realistic deadlines; include milestones, schedule • We need our web site to go live sooner rather than later. • Four weeks for design; three weeks for developing prototype; one week for performance testing; three weeks for refactoring; one week for final work and deployment. ☒ ☑
  • 43. Evaluation • Often forgotten phase • Testing is part of this of course • Other review of how well you met the requirements • In Agile terms, delivery to customer • Spell out evaluation criteria in requirements
  • 44. manage requirements to develop more efficiently
  • 47. SQL Antipatterns: Avoiding the Pitfalls of Database Programming http://www.pragprog.com/titles/bksqla/
  • 48. Copyright 2010 Bill Karwin www.slideshare.net/billkarwin Released under a Creative Commons 3.0 License: http://creativecommons.org/licenses/by-nc-nd/3.0/ You are free to share - to copy, distribute and transmit this work, under the following conditions: Attribution. You must attribute this work to Bill Karwin. Noncommercial. You may not use this work for commercial purposes. No Derivative Works. You may not alter, transform, or build upon this work.