Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Disciplined agile reuse engineering

453 views

Published on

The vast majority of developers, agile or otherwise, take an ad-hoc approach to reuse. Although this is a good start, we have the opportunity to do much better. The goals of reuse engineering are to achieve quicker time to market, improved ROI, improved consistency within delivered solutions, and easier updates to common functionality. Unfortunately reuse engineering is easier said than done.
This presentation addresses the following topics:
- What is reuse engineering?
- Why is reuse engineering difficult?
- How does reuse engineering fit into agile software delivery?
- Where do reusable assets come from?
- How can you support and evolve reusable assets over time?
- How do you fund reuse?

Published in: Technology
  • Be the first to comment

Disciplined agile reuse engineering

  1. 1. © Disciplined Agile Consortium 1 Disciplined Agile Reuse Engineering
  2. 2. Agenda •  Fundamentals –  What is reuse engineering? –  Why reuse engineering? –  What can you reuse? –  How do you know something is reusable? –  The not invented here (NIH) syndrome –  Where do reusable assets come from? •  How does reuse engineering fit into agile software delivery? •  Reuse engineering in practice –  What do reuse engineers do? –  How can you support and evolve reusable assets over time? –  How do you fund reuse? –  Why is reuse engineering difficult? © Disciplined Agile Consortium 2
  3. 3. Fundamentals © Disciplined Agile Consortium 3
  4. 4. © Disciplined Agile Consortium 4 Reuse Engineering is the purposeful creation (or rescue), management, support, and governance of reusable assets.
  5. 5. Why Reuse Engineering? •  There are many reasons to consider reuse engineering: –  Quicker time to market –  Improved ROI –  Improved consistency –  Easier updates to common functionality –  Improved quality •  There are a few reasons to not consider reuse engineering: –  It requires discipline –  It requires long-term funding © Disciplined Agile Consortium 5
  6. 6. What Can You Reuse? © Disciplined Agile Consortium 6
  7. 7. When Do You Know Something is Reusable? •  Some definitions: –  Asset: An artifact that is retained after its initial purpose is fulfilled –  Robust asset: An asset that is appropriately documented and generalized beyond the needs of a single team –  Reusable asset: An asset that has been reused at least three times in three different contexts –  Reuseless asset: An asset that has been declared reusable but after consideration by other teams has not actually been reused in practice © Disciplined Agile Consortium 7 An asset isn’t reusable because you say so, it’s reusable because it’s being reused
  8. 8. The Not Invented Here (NIH) Syndrome © Disciplined Agile Consortium 8 •  Myth –  Developers won’t reuse something that they didn’t create themselves •  Facts –  Developers reuse things all the time –  Developers are eager to reuse high-quality assets that are consumable (the assets meet their needs and they’re easy to work with) –  Many times the creators of reuseless artifacts blame the NIH syndrome when their artifacts aren’t considered consumable by others
  9. 9. How does Reuse Engineering Fit In? © Disciplined Agile Consortium 9
  10. 10. Strategic Scaling: The Agile IT Department © Disciplined Agile Consortium 10
  11. 11. © Disciplined Agile Consortium 11
  12. 12. Reuse Engineering in Practice © Disciplined Agile Consortium 12
  13. 13. What do Reuse Engineers Do? © Disciplined Agile Consortium 13
  14. 14. Where Do Reusable Assets Come From? •  There are several sources for reusable assets: –  Harvested assets •  Asset is already in use •  Asset will need to be generalized and then reintegrated into source solution •  The reuse team needs to take over ownership of the asset –  Purchased/downloaded assets •  Lower cost of support and evolution •  Asset may evolve in a direction that you don’t like •  Marketplace support for asset may disappear –  Built for reuse •  Hard to predict what others will want •  Much more expensive to build something to be reusable © Disciplined Agile Consortium 14
  15. 15. How Can You Support and Evolve Reusable Assets Over Time? •  Reusable assets: –  Live beyond the life of a project –  Are used by multiple teams in different contexts –  Are used by teams with evolving requirements –  Are implemented using evolving technologies –  Are deployed onto evolving platforms •  To support and evolve reusable assets, they need: –  To be findable –  Funding that isn’t tied to projects –  To be documented –  To have examples of how to use them in practice –  To have feedback mechanisms in place –  To be versioned and deprecated appropriately © Disciplined Agile Consortium 15
  16. 16. Why is Reuse Engineering Hard? •  What other teams want, particularly in the future, isn’t always obvious •  There is a greater impact when a reused asset breaks •  Teams must go beyond source-code reuse •  Reuse requires enterprise awareness •  Reuse requires investment •  Your approach to funding will make or break reuse © Disciplined Agile Consortium 16
  17. 17. How do You Fund Reuse? © Disciplined Agile Consortium 17 •  There are several ways to fund reuse engineering: –  Funded reuse engineering team: Explicit reuse team exists –  Asset-level funding: The creation, support, and evolution of an asset is explicitly budgeted for –  Development team-based funding: Team budgets include funding for reuse –  No explicit funding: Reuse is ad hoc –  Charge-back funding: Assets are funded by charging teams to reuse them
  18. 18. © Disciplined Agile Consortium 18
  19. 19. What do Reuse Engineers Do? © Disciplined Agile Consortium 19
  20. 20. Strategic Scaling: The Agile IT Department © Disciplined Agile Consortium 20
  21. 21. © Disciplined Agile Consortium 21
  22. 22. Got Discipline? DisciplinedAgileConsortium.org DisciplinedAgileDelivery.com ScottAmbler.com © Disciplined Agile Consortium 22
  23. 23. Shuhari and Disciplined Agile Certification At the shu stage you are beginning to learn the techniques and philosophies of disciplined agile development. Your goal is to build a strong foundation from which to build upon. At the ha stage you reflect upon and question why disciplined agile strategies work, seeking to understand the range of strategies available to you and when they are best applied. At the ri stage you seek to extend and improve upon disciplined agile techniques, sharing your learnings with others. © Disciplined Agile Consortium 23
  24. 24. Scott Ambler + Associates is the thought leader behind the Disciplined Agile Delivery (DAD) framework and its application. We are an IT management consulting firm that advises organizations to be more effective applying disciplined agile and lean processes within the context of your business. Our website is ScottAmbler.com We can help © Disciplined Agile Consortium

×