Enterprise Agility through Product Patterns and Agile Methods

1 / 23
About This Presentation
Title:

Enterprise Agility through Product Patterns and Agile Methods

Description:

Lightweight (Low overhead / baggage) Fast (Small, ... A family of People Centered Methods(Alistair Cockburn) ... Development, Alistair Cockburn ... –

Number of Views:90
Avg rating:3.0/5.0
Slides: 24
Provided by: jws2
Category:

less

Transcript and Presenter's Notes

Title: Enterprise Agility through Product Patterns and Agile Methods


1
Enterprise Agility through Product Patterns and
Agile Methods
  • Jeff Smith, Senior Developer,
  • Titan Professional Services
  • Austin-SPIN
  • October 15, 2002

2
Defining Agility
  • Lightweight (Low overhead / baggage)
  • Fast (Small, Meaningful cycles)
  • Flexible (Adapts quickly for new needs,
    customers)
  • Collaborative But not Cumbersome
  • More People-oriented than Traditional Process

3
Good Process
  • Only a few goals for processFaster Cycle Time,
    Decreased Cost, Improved Quality/Repeatability,
    Business Flexibility
  • Good Process is Predictable, Simple, Measured,
    Non-intrusive(Transparent - Automatic),
    Flexible(Where Business Human Value Add occurs)
  • Good Process makes you wonder why you didnt do
    this sooner Easier than the Alternatives. No one
    wishes to circumvent because good process,
    because the process is easier than alternatives.

4
Process Overhead
  • In accounting, overhead is generally everything
    that is not direct production This includes
    management, the electric bill, office space,
    reports, schedules, pencils,
  • In the world of software development process it
    is anything that feels like drudgery anything
    repetitive or cumbersome likely is looking for a
    machine solution.
  • Developers, being the creative arm, abhor obvious
    overhead. Especially if they have to own it.
    Unfortunately many consider almost everything
    done by project management also as overhead.
    (Common, though not enlightened)

5
Enter Agile Processes
  • Generally, agile methods represent the
    development community questioning the mechanistic
    and control oriented approach in traditional
    software development. The suggestion is that too
    much complexity exists and programmers are too
    often the overworked whipping boys in an
    unpredictable endeavor. Agile methods are
    typically about less developer control and are
    considered more humanistic in their approach.
  • Whether they are always better will vary

6
Quotes
  • Frequent, Tangible, Working Results!
  • Peter Coad
  • The factory of the future will have only two
    employees, a man and a dog. The man will be there
    to feed the dog. The dog will be there to keep
    the man from touching the equipment.
  • Warren Bennis,
  • Professor Business Admin USC

7
RUP as a Reference
  • While UP/RUP is truly a framework, many treat it
    as a silver bullet.. Thorough in its coverage,
    it is like UML if implemented completely. It is
    not agile. It is best trimmed and tuned for the
    situation.
  • Iterative model 4 Phases Multiple Workflows
    Volumes of Best Practices Information, Risk, and
    Control Managed en Masse
  • Like the Waterfall RUP may really be just a good
    reference(depending on the organization)

8
XP (eXtreme Programming)
  • Planning Process
  • Small Releases
  • Metaphor
  • Simple Design
  • Testing
  • Refactoring
  • Pair Programming
  • Collective Ownership
  • Continuous Integration
  • 40-hour Week
  • On-site Customer
  • Coding Standard

Primary XP authors Kent Beck, Ken Auer, Ward
Cunningham, Martin Fowler.
9
SCRUM
  • 30 Day Sprints
  • Sprint Backlog
  • Feature Backlog
  • Daily 15 minute Meetings for Coordination
    Integration

10
(FDD) Feature Driven Development
  • Appears first in
  • Java Modeling in Color with UML
  • 2 Week Iterations
  • Client-valued Features and Feature sets
  • Best Practices include Domain Object Modeling,
    Developing by Feature, Individual Class
    Ownership, Feature Teams, Inspections, Regular
    Builds, Version Control, Progress Reporting

Primary FDD authors Peter Coad, Jeff De Luca,
Stephen Palmer
11
Feature Driven Development(Contd)
  • 5 Processes
  • 1 Develop overall model (use initial reqts /
    features, snap together with components, focusing
    on shape)
  • 2 Build a detailed, prioritized features list.
  • 3 Plan by feature.
  • 4 Design by feature (use components, focus on
    sequences).
  • 5 Build by feature.

12
Other Agile Methods
  • Crystal Methods A family of People Centered
    Methods(Alistair Cockburn)
  • Lean Development Risk Entrepreneurship, Change
    Tolerant Organization(Bob Charette)
  • Dynamic Systems Development Method (DSDM)
    Principles, Docs and Training from the UK
  • Adaptive Software Development Practices and
    Philosophy (Jim Highsmith III)

13
Agile Modeling
  • Instead of in-depth, comprehensive modeling
    Design capture can be in code file folders of
    post-it notes, white board printouts, engineering
    notepaper, and prototypes Its about using the
    simplest tool possible
  • All possible methods are at your disposal but
    should only be applied as needed.. Not
    dogmatically. Communicate just enough to drive
    code.
  • Re Agile Modeling Effective Practices for
    Extreme Programming and the Unifies Process, Scot
    Ambler

14
JIT, Reverse, Automated Documentation
  • Documentation may be generated from code (e.g.
    JavaDoc, Visio, Database methods, Script methods)
  • Tools may help a lot e.g. TogetherSoft
    products(Code is data Changing design changes
    code Changing code updates design)
  • Much documentation should be generated on the fly
    as the code evolves So it matches the
    problems as they are truly solved Usually only
    major architectural and interface details need
    extra, earlier attention.

15
Design Patterns
  • The Gof Book talks about common software design
    patterns Behavioral, Structural, Creational.
    More architectural than algorithmic, design
    patterns represent solutions to common software
    problems. This book is required reading for
    coders. Some problems are basically already
    solved.
  • The refactoring book talks about improving code,
    with an awareness of Design Patterns
  • If you truly desire libraries of reusable code
    These are fundamental education. Applicable in
    the OO and near-OO world. (e.g. VB)

16
Product Patterns
  • Product patterns are typically more meaningful at
    implementation time They may be meaningful to a
    customer or an integrator They are the levers to
    product flexibility. Studied and properly
    exposed, they easily provide long-term
    opportunity.
  • Types of Opportunities

17
Examples
  • Questonnaires Questions, rules, flow, and
    answers can usually be totally data-driven
  • Application presentation Apps follow patterns
    An app has menus, forms, controls, layout,
    toolbars All of which can likely be identified
    in a data structure and easily customized
  • Many solutions are recurring Approaches to
    Security Object generation from Database schema
    But just user-specific enough that it makes
    sense to write tools instead of hard-coded
    solutions.

18
Knowledge Management
  • The Pro-Active Push of Critical Business
    Information to the Point of Use
  • Not just a Tool People, Process, Technology
  • Requires Planning, Role Identification,
    Recognition of critical and non-critical
    information, motivations
  • Lots of Strategies Portals, Phone Lists, Brown
    Bags, Training,

19
Organizational Issues
  • Develop a Culture for Aggression
  • Avoid Complacency, Stability, Over-Analysis
  • Keep It Simple about the Velocity of Quality
    Code
  • Make Fast Positive Change a Habit
  • Make the Team Dependent on Each and Provide
    Compelling, Challenging Goals

20
Organizational Issues (Contd)
  • Must be Willing and Able to Change from the Top
    Down
  • Will Need to Start Small May have Education
    Issues Across the Board
  • Using Product Patterns truly may redefine the
    Business Approach
  • Agile Methods may want more customer contact than
    you are used to
  • Knowledge Management is difficult in any
    organization where collaboration is difficult

21
References
  • Extreme Programming Explained Embrace Change ,
    Kent Beck
  • Extreme Programming in Practice, James W.
    Newkirk, Robert C. Martin
  • Extreme Programming Perspectives, Michele
    Marchesi
  • Questioning Extreme Programming, Pete McBreen,
    Kent Beck
  • Extreme Programming Explored, William C. Wake
  • Extreme Programming Examined, Giancarlo Succi,
    Michele Marchesi
  • Extreme Programming Examined, Giancarlo Succi,
    Michele Marchesi
  • Extreme Programming Applied Playing to Win, Ken
    Auer
  • Planning Extreme Programming, Kent Beck, Martin
    Fowler
  • Extreme Programming Installed, Ron Jeffries

22
References
  • A Practical Guide to Feature Driven Development,
    Palmer / Felsing
  • Agile Software Development Ecosystems, Jim
    Highsmith
  • Agile Software Development, Alistair Cockburn
  • Refactoring Improving the Design of Existing
    Code, Martin Fowler
  • Design Patterns Elements of Re-usable
    Object-Oriented Software, Gamma / Helm / Johnson
    / Vlissides
  • Adaptive Software Development A Collaborative
    Approach to Managing Complex Systems, by James A.
    Highsmith III,
  • DSDM Dynamic Systems Development Method The
    Method in Practice,
  • by Jennifer Stapleton
  • The Rational Unified Process - An Introduction,
    Philippe Kruchten
  • Mentoring Object Technology Projects, Richard Due

23
References
  • Software Product Lines Practices and Patterns,
    Clements / Northrup
  • The PDMA Handbook of New Product Development,
    Product Development Management Association
  • Common Knowledge How Companies Thrive by
    Sharing What They Know, Nancy Dixon
  • If Only We Knew What We Know, ODell / Grayson
  • Working Knowledge, Davenport / Prusak
Write a Comment
User Comments (0)
About PowerShow.com