Applying Agile To Hardware Development (We're - Agile Alliance

52
© 2011 XtremeEDA USA Corporation - Version 080721.10 Applying Agile To Hardware Development (…We’re Not That Different After All!) Neil Johnson XtremeEDA [email protected] http://www.AgileSoC.com 1

Transcript of Applying Agile To Hardware Development (We're - Agile Alliance

Page 1: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Applying Agile To Hardware Development

(…We’re Not That Different After All!)

Neil Johnson XtremeEDA

[email protected] http://www.AgileSoC.com

1

Page 2: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Neil Johnson – 12 years of hardware design and verification – Altera, Neterion, Flextronics, Nextwave Wireless

•  Principal Consultant XtremeEDA – Consulting services

•  Verification experts

– Clients are any size and many applications •  Telecom, networking, wireless, computer hardware, etc.

– We work remotely or onsite as part a client’s team

About Me

2

Page 3: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Neil Johnson – 12 years of hardware design and verification – Altera, Neterion, Flextronics, Nextwave Wireless

•  Principal Consultant XtremeEDA – Consulting services

•  Verification experts

– Clients are any size and many applications •  Telecom, networking, wireless, computer hardware, etc.

– We work remotely or onsite as part a client’s team

About Me

3

Page 4: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Why Are You Here?

4

No Yes

Learn something from an agile expert

Become experts in Agile embedded development

Page 5: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Why Are You Here?

5

No Yes

Learn something from an agile expert

Become experts in Agile embedded development

An overview of hardware process and the challenges we face (Part I)

See how the principles of the agile manifesto apply to hardware development (Part II)

How hardware teams can get started with agile and how you can help (Part III)

Page 6: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Part I

What Are The Strange Hardware People Doing?

6

Page 7: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  ASIC – Application Specific Integrated Circuit – Static structure – Digital or mixed signal – High NRE/Low cost

•  FPGA – Field Programmable Gate Array – Reprogrammable structure – Primarily digital – No NRE/High cost

•  SoC – Either of the above + embedded processor(s) + software

What Do I Mean By Hardware

7

Page 8: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Typical SoC design flow – Specification – Design – Verification – Physical design

SoC Development Basics

8

Pre-silicon

Documentation

Code

“Stuff”

Page 9: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Typical SoC design flow – Specification – Design – Verification – Physical design – Fabrication – Validation –  Integration

SoC Development Basics

9

Pre-silicon

Documentation

Code

“Stuff”

Chip

Board

System

Production

Page 10: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Typical SoC design flow – Specification – Design – Verification – Physical design – Fabrication – Validation –  Integration

SoC Development Basics

10

Pre-silicon

Documentation

Code

“Stuff”

Chip

Board

System

Production

OS

Drivers

Application

You Guys

Page 11: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Tape-out… aka: the big bang – NRE >$1million

•  Cost of first silicon > $10Million •  We like to be careful! •  Tape-out stress is very high

Common Industry Challenges

11

Page 12: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Optimization – Size, speed, power

consumption, target technology and time-to-market

•  We depend on tools very, very heavily – Physical design is pretty

complicated relative to a software build

Common Technical Challenges

12

Link

Compile

Code

EXE

Code

Synthesis

Timing Closure

Floor Planning

Initial P&R

Equivalence Checking

Design Rule Checking

DFM Checking

GDSII Generation

Layout vs. Schematic

To FAB

Sof

twar

e H

ardw

are

Page 13: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Organized primarily by function – Functional teams act independently

•  Design and verification don’t normally share goals •  Common for software to be “out of the loop”

– Physical and/or software teams are involved late •  “deal with it” instead of working together

Common Organizational Challenges

13

Physical Verif

Design SW

Page 14: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  The composition of an SoC is changing – Software is becoming dominant – Tools are being developed to integrate hw/sw – Encouragement of real teamwork lags

Common Organi-technical(?) Challenges

14

IP/Custom Hardware Embedded Processor

Page 15: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  We do EVERYTHING in parallel with no objective way to measure progress along the way –  Strict product definition –  Compartmentalization and vertical team organization –  Teams quickly diverge; minimal communication –  Long development times with few checkpoints –  Subjective development status

Big Bang Hardware Development

15

Spec Kaboom!!

Page 16: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  We do EVERYTHING at once with no objective way to measure progress along the way –  Strict product definition –  Compartmentalization and vertical team organization –  Teams quickly diverge; minimal communication –  Long development times with few checkpoints –  Subjective development status

Big Bang Hardware Development

16

Spec Kaboom!!

…if a project managed by a defined process fails, people then assume that the project failed because the defined approach was not adhered to rigorously enough. They conclude that all they need…is increased control and project definition.

Ken Schwaber, Agile Project Management with Scrum

Page 17: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Part II

Taking the Manifesto Where It Wasn’t Meant To Go

17

Page 18: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

www.agilemanifesto.org

Page 19: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Customers can’t tell you exactly what they want – Feature creep is actually good! – Question what you’re building and why – Find the middle ground between acceptance and rejection

•  Prioritize requirements

Customer Collaboration

$

Page 20: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Building a cross-functional development team

Individuals and Interactions

Functional sub-teams Isolation

Documentation Cubicles

Code that’s written Reporting progress

Functional experts Pairing

Conversation Co-located teams Code that works

Demonstrating progress

Individual Ownership Of Individual Tasks

Shared Goals and Cooperative Problem Solving

Page 21: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Visibility and Effective Communication – We prefer technical solutions over “people” solutions

•  bug data bases •  project management sw/spreadsheets

Individuals and Interactions

“I…found that…Purely people factors predict project trajectories quite well, overriding choice of process or technology.”

Alistair Cockburn, Agile Software Development: The Cooperative Game

Page 22: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Working Software (Hardware)

•  Waterfall Model – A sequential process – One big bang, production

ready release at the end of the project

– Lessons learned for the next project

– Task driven development

Page 23: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Working Software (Hardware)

•  Waterfall Model – A sequential process – One big bang, production

ready release at the end of the project

– Lessons learned for the next project

– Task driven development

•  Agile model – An iterative process – Many production ready “re-

spins” during the project – Many opportunities for

feedback – Deliverables driven

development with every iteration

Page 24: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Working Software (Hardware)

•  Waterfall Model •  Agile model

Physical Design

Software

Verification

Design

Specification

50% Done

Software

Verification

Design

Specification

50%

Don

e

Physical Design

Page 25: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Incremental coverage closure – Coverage model grows incrementally with the DUT

Working Software (Hardware)

Environment

Coverage Model

Tests Physical Design

Software

Verification

Design

Specification

50% Done

50% Done

Page 26: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Regular regression testing – Add new features without breaking existing features – Start on day 1 to avoid introducing defects

•  Continuous integration – Small batch integration == quick & easy –  large batch integration == slow & difficult

Responding to Change

Page 27: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Instead of building everything at once, build a product incrementally – Everything you would normally do, just do it a little

differently a little piece at a time

The Solution: Agile Development

27

Kaboom!!

Page 28: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Part III

If it looks like a Duck… And it quacks like a Duck…

You’re better off saying it’s a Rabbit.

28

Page 29: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Where’s The Potential?

Physical Design

Software

Verification

Design

Specification

•  Agile model

SoC Teams Hardware

Teams

Page 30: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Where’s The Potential?

30

No Way!!

Maybe... but... I love agile

Right Here

Page 31: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Where’s The Potential?

•  Deviations from traditional hardware development – “Here is a different way

to look at the things you already do”

•  Agile articles and ideas – “Agile software

developers have a lot of good ideas. We should use some of them”

31

Maybe... but... I love agile

Page 32: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

Getting Comfortable: www.agilemanifesto.org

Agile Approach (Highly Adaptive)

Defined Approach (Very Rigid)

Contract negotiation Processes and tools

Comprehensive documentation Following a plan

Customer collaboration Individuals and interactions Working software (or hardware) Responding to change

Page 33: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Working hardware over comprehensive documentation – We complete tasks, not features

•  Client experience #1: The Feature-of-the-week

– We develop everything at once... we can’t help it! •  Client Experience: Just try and deliver

something (anything) •  Exercise: Operation Basic Sanity

Where’s The Potential?

33

Physical Design

Software

Verification

Design

Specification

50% Done

Page 34: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Feature-of-the-week – “Tell your customer you’re going to give them something

that works in a week” •  Jonathan Rassmuson, Agile in a Nutshell, APLN April 2009

– The Agilesoc Blog: Remote Development And The Feature-of-the-week

The Perfect Place To Start

34

The feature-of-the-week is not Agile, it’s frequent delivery... which is hard to argue against.

Page 35: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Client experience – Goal

•  Convince myself that incremental development is possible

– Situation •  Functional testing of a sub-system •  Design was done, test harness was partially complete

– Planning •  4 increments, 1 for each major feature •  Detailed plan included 1-2 week sub-milestones •  2 increments planned in detail

Feature Of The Week

35

Page 36: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Client experience - Highlights – Planning

•  The planning was different but no convincing was required

–  Increment 1 •  Uh oh… I’ve committed to delivering something in a week •  First up: remove everything I don’t need

Feature Of The Week

36

Page 37: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Client experience – Highlights (con’t) –  Increment 2

•  I was focused and delivering on time •  Functional milestones allowed me to react to new priorities

–  Increment 3 •  Functioning code was great for gaining confidence and/or

being corrected •  I wasn’t so concerned with building infrastructure

– Summary •  Convince myself agile can work

Feature Of The Week

37

Page 38: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Situation – Deliver an internal IP block – Project well behind schedule – Just coding the design and test environment would take us

beyond our scheduled delivery date

•  Good time to introduce agile as an alternative to tradition – dealing with agile skeptics –  I wanted to make sure that different still familiar so I didn’t

scare anyone away

Client Experience: Just Try And Deliver

38

Page 39: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Recommendations – Prioritize a bypass solution to be used in case of emergency –  Incrementally deliver the rest as a series of threads – Change the order in which we do things

Client Experience: Just Try And Deliver

39

Page 40: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Recommendations – Prioritize a bypass solution to be used in case of emergency –  Incrementally deliver the rest as a series of threads – Change the order in which we do things

Client Experience: Just Try And Deliver

40

The “Old Way” •  All the planning •  Code the environment •  Integrate the design •  Sandbox debug •  Write/debug sanity test

Page 41: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Recommendations – Prioritize a bypass solution to be used in case of emergency –  Incrementally deliver the rest as a series of threads – Change the order in which we do things

Client Experience: Just Try And Deliver

41

The “Old Way” •  All the planning •  Code the environment •  Integrate the design •  Sandbox debug •  Write/debug sanity test

Architecture

Implementation

Page 42: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Recommendations – Prioritize a bypass solution to be used in case of emergency –  Incrementally deliver the rest as a series of threads – Change the order in which we do things

Client Experience: Just Try And Deliver

42

The “Old Way” •  All the planning •  Code the environment •  Integrate the design •  Sandbox debug •  Write/debug sanity test

Architecture •  Draft architecture plan

•  Revise architecture plan

Implementation

Page 43: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Recommendations – Prioritize a bypass solution to be used in case of emergency –  Incrementally deliver the rest as a series of threads – Change the order in which we do things

Client Experience: Just Try And Deliver

43

The “Old Way” •  All the planning •  Code the environment •  Integrate the design •  Sandbox debug •  Write/debug sanity test

Architecture •  Draft architecture plan •  Skeleton test environment

•  Revise architecture plan

Implementation

Page 44: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Recommendations – Prioritize a bypass solution to be used in case of emergency –  Incrementally deliver the rest as a series of threads – Change the order in which we do things

Client Experience: Just Try And Deliver

44

The “Old Way” •  All the planning •  Code the environment •  Integrate the design •  Sandbox debug •  Write/debug sanity test

Architecture •  Draft architecture plan •  Skeleton test environment •  Integrate design •  Revise architecture plan

Implementation

Page 45: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Recommendations – Prioritize a bypass solution to be used in case of emergency –  Incrementally deliver the rest as a series of threads – Change the order in which we do things

Client Experience: Just Try And Deliver

45

Operation Basic Sanity: A Faster Way To Sane Hardware

Architecture •  Draft architecture plan •  Skeleton test environment •  Integrate design •  Revise architecture plan

Implementation •  Draft implementation plan •  Write the sanity test •  Code the required sanity design/test

environment •  Debug the sanity test •  Revise the implementation plan

Page 46: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Help teams plan a first product increment

Exercise: Operation Basic Sanity

46

Page 47: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Help teams plan a first product increment – Start with a finished product

Exercise: Operation Basic Sanity

47

Page 48: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Help teams plan a first product increment – Start with a finished product –  Identify the sanity path

Exercise: Operation Basic Sanity

48

Page 49: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Help teams plan a first product increment – Start with a finished product –  Identify the sanity path – Remove everything you don’t need

Exercise: Operation Basic Sanity

49

Page 50: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Help teams plan a first product increment – Start with a finished product –  Identify the sanity path – Remove everything you don’t need – Plan how to build what’s left

Exercise: Operation Basic Sanity

50

Page 51: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  Help teams plan a first product increment – Start with a finished product –  Identify the sanity path – Remove everything you don’t need – Plan how to build what’s left

Exercise: Operation Basic Sanity

51

CPU

Page 52: Applying Agile To Hardware Development (We're - Agile Alliance

© 2011 XtremeEDA USA Corporation - Version 080721.10

•  What Are The Strange Hardware People Doing? – We’re doing big bang development... and it’s not working

•  Taking the Manifesto Where It Wasn’t Meant To Go –  The manifesto absolutely applies to hardware development

•  If it looks like a Duck… And it quacks like a Duck… –  Present agile in a way that makes sense to hardware developers

•  Resources – www.AgileSoC.com

•  blog/articles/video

–  open-ended rambling •  [email protected] - @nosnhojn •  [email protected] - @bryanmorrispeng

Summary

52