Sei sulla pagina 1di 27

Specification-Driven

Development
A scalable methodology for
distributed development
Paul Unterberg, TechExcel Inc
Software Development in the
21st Century
• The software ecosystem has grown
and become more complex
• Teams are distributed
• Design and implementation must
occur in parallel
A typical software project
•Design •Coding
•Plan •QA Testing •Coding
•QA Testing

•Design
•Plan
Challenges for Modern
Development
• Growth (new offices, new developers)
• Need to quantify designs
• Enforce standards
• Account for customer feedback
• Process needs to balance design and
implementation
• …Is Agile development the solution?
What is Agile Development?
A conceptual framework for
undertaking software engineering
projects that embraces and promotes
evolutionary change throughout the
entire life-cycle of the project
The Basics of Agile
• Customers list and prioritize requirements
• Development team delivers increments of
software to meet specified requirements
• Customers can add, delete or re-prioritize
requirements at any time
• Each increment can be used for project
review
Challenges of agile
• Agile mainly implemented with smaller, localized
teams
– Growth can happen faster than agile rollout
• Developers may not correctly understand
business requirements
– Needed to maintain customer satisfaction
• Dependant on constant communication
– Multiple sites, multiple teams, multiple countries
SpecDD: Specification-driven
development
• SpecDD is a scalable Agile-derivative
• SpecDD provides a conceptual
framework
• SpecDD balances high-level
management and design with low
level development methodologies
• SpecDD promote iterative
development techniques coupled
with best practices
SpecDD Tenants
• Application development is represented by two
concurrent processes: Design and Implementation
• Business logic always dictates the correct way for
software to function
• Requirements can be formally represented to
form the “Conceptual Product”
• The “Conceptual Product” drives and guides the
engineering processes to develop, test and
finalize the “Implemented Product”
• Comparing the “Implemented Product” with the
“Conceptual Product” can accurately measure the
potential of a product
Managing Design
• SpecDD manages a product design
by breaking it down into 3 areas.
• Concept: What could we do?
• Strategy: What will we do?
• Planning: How will we do it?
Managing Implementation
• Implementation focuses on execution
of decisions made by the design
team.
• Development: Architecture
Design, Programming, etc.
• Validation: Functional Testing,
Usability Testing, Bug Fixing, etc.
• Delivery: Release Management,
Documentation, etc.
The Designed Product
• The designed product evolves
through development of three key
data elements
• Knowledge: Documents, intellectual
property, or digital assets
• Requirements: Descriptions of how a
feature will work, what it will look
like, and how it should be built
• Specifications: A development-
friendly summary of a set of
Specifications, Knowledge, and
Requirements

New XML Import Layer


SSL v. 3.0 Support
Tabbed Browsing
CSS Layout Editor

Improve Top Level GUI


Saved Bookmarks File
Security
Data Exchange
Memory Usage
Crash on Reload Button User Interface
Slow response on Save Menu Settings
Navigation
User Preferences
Complete Product Design

Requirement A
XML Import Layer Requirement B
Tabbed Requirement C

Browser Requirement D
Requirement E

Improve Top Level GUI


Saved Bookmarks File

Coding Standards
Reload Button Behavior
Slow response on Save Windows API
Load Preferences Changes

The Planned Product
• Project managers build a plan based
on a set of specifications
• Work is broken down into different
areas
• Resources are assigned to each
specification within an area of work
• Estimates on time from design are
used to for initial duration of each
area of work
SpecDD Project Plan
Building the “implemented
product”
• Work items are created within each
area of work as child tasks for a
specification
• Work items follow a definable, low
level development process
• Data from the implementation rolls
up into the project plan, giving
accurate timescales for
implementation
Implementation Tasks and the
Open Workflow Lifecycle (OWL)
Model• Definable Workflow
States
• Definable Transitions
(and Who Can
Perform)
• Definable Ownership
Rules (Applicable
Owners)
• Definable Field Rules
for States and
Transitions
(Mandatory, Read-
Only, Invisible)
A sample implementation
workflow
Implementation Team
Representation
Creating a “tested product”
• Regression, usability, and
performance tests must be tied to
specifications
• Test plans must be executed by both
manual teams and automated
testing tools
• Traceability exists through the
specifications down to the test plans
and test tasks
Specifications allow for
disciplined change
• A change to the specification
(implementation logic) can occur at
anytime within the development process
or to its linked requirements (business
logic)
• Changes include revisions to documents,
designs, and diagrams
• Changes can be tracked for associated
cost, time, and affected development and
Achieving Scalability
• Specifications allow different teams to
collaborate
– Core teams provide business logic and
technical logic
– Implementation teams can execute the
technical logic based on business designs
– A disciplined change process enables large
teams to work together
• Specifications can also be split based on a
team’s skill, workload, or effort estimates
Achieving Agility
• Specification-driven Development can solve the
problems of Agile:
– “Conceptual product” evolves through each iteration
– Results of each iteration can reference conceptual
product models
– Rapid analysis leads to more effective practices
– Enables customers to easily understand revised designs
and their implications
– More effective face-to-face communication between
business and development though knowledge sharing
DevSuite: An implementation
of SpecDD
• SpecDD Walkthrough using DevSuite
Thank You
• For more information about SpecDD
or DevSuite, visit www.techexcel.com

Potrebbero piacerti anche