Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

36
Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith

Transcript of Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Page 1: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Welcome

LabVIEW System Development:The Architect’s

Perspective

Allen C. SmithAllen C. Smith

Page 2: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Who Is This Guy?

And what the heck does he do all day?

Page 3: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Where is the code demo?

Page 4: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

The Architect is a Leader

Project Technical Leader Project Leader Internal Consultant Mentor

Page 5: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

In A Nutshell…

The architect is the primary technical interface between project or organizational stakeholders and the development team.

Page 6: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

We Provide Leadership

Project management Quality assurance Product design Product implementation Team development

Page 7: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Project Management

The architect works with a project manager to:

- Gather and manage requirements- Schedule and track tasks

Page 8: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

About Requirements…

Software changes work flow, so get close to the workers

Requirements are NOT the design Requirements are NOT the

implementation Requirements ARE testable and

traceable

Page 9: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

What is an “Agile” Process

According to the Merriam-Webster on-line dictionary “agile” means: 1. marked by ready ability to move with

quick easy grace. 2. having a quick resourceful and

adaptable character. In agile software development, “agile”

tends to mean “the ability to respond to change”.

Page 10: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Agile Misperceptions

Page 11: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Differences of Agile Project Management

Iterative Repeatedly executing nested process

cycles Iterations provide synchronizing points Iterations provide feedback points

Incremental System is built in progressive stages Each increment is a working system Iterations add features and refinements

Page 12: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Agile Origins

Scrum “The New New Product Development Game”,

Harvard Business Review, 1986 “The Chaos Model and the Chaos Life Cycle”, by

Raccoon, Software Engineering Notes, 1995 Agile Softwate Development with Scrum, Ken

Schwaber and Mike Beedle, 2001 Agile Project Management with Scrum, Ken

Schwaber, 2004 Extreme Programming

Kent Beck, Ward Cunningham, Ron Jeffries, 1999

Page 13: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.
Page 14: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Here’s How It Works

Page 15: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Sample Product Backlog

Backlog Items Estimate

Allow a guest to make a reservation 3

As a guest , I want to cancel a reservation 5

As a guest, I want to change the dates of a reservation.

3

As a hotel employee, I can run RevPAR reports (revenue-per-available-room)

8

Improve exception handling 8

Page 16: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Samples From a Travel Website

As a user, I want to reserve a hotel room.

As a user, I want to cancel a reservation.

As a vacation planner, I want to see photos of the hotels.

As a frequent flyer, I want to rebook a past trip, so that I save time booking trips I take.

Page 17: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Details Added in Smaller Stories

As a user, I want to cancel a reservation.

As a premium site member, I can cancel a reservation up to the last minute.

As a non-premium member, I can cancel up to 24 hours in advance.As a site visitor,

I am emailed a confirmation of any cancelled reservation.

Page 18: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Details as Conditions of Satisfaction

The product owner’s conditions of satisfaction can be added to a story. These become testing criteria to determine if the story has been satisfied.

As a user, I want to cancel a reservation.

•Verify that a premium member can cancel the same day with out a fee.

•Verify that a non-premium member is charged a 10% fee for a same-day cancellation.

•Verify that an email confirmation is sent.

•Verify that the hotel is notified of any cancellation.

Page 19: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Start With Epics and Iterate

Frequent Flyer

Frequent Flyer

As a frequent flyer, I want to be able to check my account

As a frequent flyer, I want to be able to check my accountAs a frequent flyer, I want to book a trip.

As a frequent flyer, I want to book a trip.

As a frequent flyer, I want to….

As a frequent flyer, I want to….

As a frequent flyer, I want to book a trip using my frequent flyer miles.

As a frequent flyer, I want to book a trip using my frequent flyer miles.

As a frequent flyer, I want to rebook a trip I take often.

As a frequent flyer, I want to rebook a trip I take often.

As a frequent flyer, I want to request an upgrade.

As a frequent flyer, I want to request an upgrade.

As a frequent flyer, I want to see if my upgrade cleared.

As a frequent flyer, I want to see if my upgrade cleared.

Page 20: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

A Sprint Backlog

As a vacation planner, I want to see photos of the hotels so that I can determine suitability for my client.

Design the user interface 8

Code the user interface

16Create & automate the tests

6Code the middle tier

8

o You leave sprint planning with an estimated set of tasks

ando The team’s commitment to complete the product

backlog items represented by this iteration backlog

Page 21: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Estimation Tips

Account for daily tasks 2x developers != 2x development

hours Design iterations feed estimates And the big one:

We are all optimists!

Page 22: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

A Scrum Reading List

Agile and Iterative Development: A Manager’s Guide by Craig Larman

Agile Estimating and Planning by Mike Cohn Agile Project Management with Scrum by Ken

Schwaber Agile Retrospectives by Esther Derby and

Diana Larsen Agile Software Development by Alistair

Cockburn Agile Software Development with Scrum by

Ken Schwaber and Mike Beedle User Stories Applied for Agile Software

Development by Mike Cohn

Page 23: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Scrum Tools & Web Resources

VersionOne www.versoion.net Rally Software www.rallydev.com Scrum Alliance

www.scrumalliance.org

Page 24: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Quality Assurance Tools

Source code control Code reviews Coding standards Reuse code

Page 25: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Design

Patterns Encapsulation and abstraction Coding and style standards Reuse code selections

Page 26: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Design

Encapsulation and abstraction Coding and style standards Reuse code selections

Page 27: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Design

Object-Oriented LabVIEW

UML

Page 28: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Implementation

Complex or High-Risk Components Recursion Daemons Polymorphic VIs XControls

Page 29: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Implementation

Templates VITs Merge code Express VIs

Page 30: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

After The Project

Retrospectives Code Libraries

Page 31: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Retrospectives

Lessons learned Technical Estimation

Prime Directive:

"Regardless of what we discover, we understand and truly believe that everyone did the best job he or she could, given what was known at the time, his or her skills and abilities, the resources available, and the situation at hand."

Page 32: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Code Libraries

Reduce time to completion

Reduce cost Improve robustness

Page 33: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Code Libraries

Generated from completed projects Identify candidates at

Design Implementation Post-completion

Architect serves as gatekeeper Components will become obsolete

over time

Page 34: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Software Architects

Align development efforts to customer needs

Guide the development team through the software process

Grow and improve the organization over several projects

Page 35: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Further Reading

“LabVIEW Advanced I, Architectures” National Instruments

“Good to Great” James Collins

“Built to Last” James Collins and Jerry Porras

Page 36: Welcome LabVIEW System Development: The Architect’s Perspective Allen C. Smith.

Questions

Allen C. Smith

[email protected]