Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Using feature teams to deliverhigher business value            Sameer Deans @ThoughtWorks
How can IT organize to deliverhigher value to the business?
The role of business is to maximize                   customer experience                        and revenue              ...
Once a business idea emerges,             time to market is criticalCan value be delivered to the business incrementally?
So what does the business expect from IT?             Visibility into progress  Flexibility to change requirements     Abi...
So how does IT set themselves up to deliver?Typical team organization is around component teams formed around architecture...
Quite often organized by layer of the application      UI team                                     UI team      Business  ...
What do component teams lead to?
Handoff and DelayConsider a requirement from the customer that needs        to be developed by 3 component teams          ...
Duplication    Team A                                     Team B                             Team CWrites method to       ...
Bad code and designWork with the same code month after month         Acceptance of bad design  No outside eyes look at the...
Coordination and Integration   Team A                                Team C                 Requirement                   ...
Extra management
Sequential developmentRequirements analysis         Planning                                                             T...
Do the easy workA     A    A   A       Team AB     B    B    B      Team BC     C    C    C      Team C    This comprises ...
Promotes specialization                                                                           
Another response from IT : feature projects       Spin up a project to deliver a particular              feature of the la...
New team : lower productivity      Component   Component   Component         A            B           C                 ...
Resource allocation team uses key people as                 Band-Aids            Component   Component   Component        ...
Over allocationComponent     Component   Component   A              B           C                                     ...
Low motivation and job satisfaction
Introducing : Feature Teams                What is a feature?Functionality that delivers usable value to the customer
Features : examples  Adding a new service  provider to eCom site   Internationalization    Ability to   grant andservice l...
What does a feature team look like?
Not all generalists        
Ideally would be co-located
Team members work on  analysis, coding and testingRequirements analysis   Coding   Testing             
How does a feature get delivered                   Analysis & Planning                       Analysis & PlanningA    A    ...
What are the advantages of feature teams?
Learn and jell together
No hand offs       UI task       Business      logic taskS      Services        task      Database        task
Valuable work can be prioritized                                                                UI task                   ...
Valuable work can be prioritized                                                                            UI taskAnalysi...
Less management overhead
So, can IT now organize differently todeliver higher value to the business?
Thank you
Próxima SlideShare
Cargando en…5
×

Using feature teams_to_deliver_higher_business_value-sameer deans

775 visualizaciones

Publicado el

Publicado en: Tecnología, Empresariales
  • Inicia sesión para ver los comentarios

  • Sé el primero en recomendar esto

Using feature teams_to_deliver_higher_business_value-sameer deans

  1. 1. Using feature teams to deliverhigher business value Sameer Deans @ThoughtWorks
  2. 2. How can IT organize to deliverhigher value to the business?
  3. 3. The role of business is to maximize customer experience and revenue or to reduce costsAny software project aims to achieve at least one of these
  4. 4. Once a business idea emerges, time to market is criticalCan value be delivered to the business incrementally?
  5. 5. So what does the business expect from IT? Visibility into progress Flexibility to change requirements Ability to change priorities of requirements Expectation that domain knowledge will be retained in the organization for future development
  6. 6. So how does IT set themselves up to deliver?Typical team organization is around component teams formed around architecture modules of the system User Account Transaction Security management Maintenance Processing
  7. 7. Quite often organized by layer of the application UI team UI team Business Number of UI team logic team applications in Business UI team logic team Business the system logic team Business Services Services under team logic team team development Services team Services Database team Database team Database team Database team team
  8. 8. What do component teams lead to?
  9. 9. Handoff and DelayConsider a requirement from the customer that needs to be developed by 3 component teams Handoff Handoff Team A Team B Team C Waste due to Waste due to rework and delays handling partially finished work
  10. 10. Duplication Team A Team B Team CWrites method to Writes method to Writes method to calculatecalculate interest so it calculate interest so interest so totals can becan show this in the UI it create a reusable updated in databaseclass SimpleInterestCalculator service class SimpleInterestCalculator3 def initialize(principal, interestRate, Class InterestCalculator def initialize(options = {})numberOfYears) @loan_amount = def self.compute(loan_amount, options[:loan_amount] || @principal = principal rate_of_interest, term_in_years) @interestRate = interestRate @rate_of_interest = (loan_amount * options[:rate_of_interest] || @numberOfYears = rate_of_interest *numberOfYears @term_in_years = term_in_years) /100 options[:term_in_years] || end end end def compute end (@principal * @interestRate * def compute@numberOfYears) /100 @loan_amount * @term_in_years * end rate_of_interest_in_fractionend end private def rate_of_interest_in_fraction @rate_of_interest / 100 end end
  11. 11. Bad code and designWork with the same code month after month Acceptance of bad design No outside eyes look at the codebase Do not seek to refactor
  12. 12. Coordination and Integration Team A Team C Requirement that spans several component teams Team B
  13. 13. Extra management
  14. 14. Sequential developmentRequirements analysis Planning Testing        UI team UI team UI team Business Business logic team logic team Business Services logic team Services team team Services Database team Database team team Database team
  15. 15. Do the easy workA A A A Team AB B B B Team BC C C C Team C This comprises a customer requirement
  16. 16. Promotes specialization      
  17. 17. Another response from IT : feature projects Spin up a project to deliver a particular feature of the larger system Component Component Component A B C       Feature touches 3 different components Unfortunately this has its drawbacks too
  18. 18. New team : lower productivity Component Component Component A B C      
  19. 19. Resource allocation team uses key people as Band-Aids Component Component Component A B C       Component C 
  20. 20. Over allocationComponent Component Component A B C     100% Component   C 25%  Impact to existing teamComponent Component Component X B C  
  21. 21. Low motivation and job satisfaction
  22. 22. Introducing : Feature Teams What is a feature?Functionality that delivers usable value to the customer
  23. 23. Features : examples Adding a new service provider to eCom site Internationalization Ability to grant andservice loans
  24. 24. What does a feature team look like?
  25. 25. Not all generalists        
  26. 26. Ideally would be co-located
  27. 27. Team members work on analysis, coding and testingRequirements analysis Coding Testing 
  28. 28. How does a feature get delivered Analysis & Planning Analysis & PlanningA A A A A B B B C S S S S S S SB B B BC C C C UI task Business logic task This comprises S a customer Services requirement task Database task
  29. 29. What are the advantages of feature teams?
  30. 30. Learn and jell together
  31. 31. No hand offs UI task Business logic taskS Services task Database task
  32. 32. Valuable work can be prioritized UI task Analysis & Planning Business logic task 8 7 6 5 4 3 2 1 Services taskBusiness Idea Database task This gets channeled into two features and UI task two feature teams Analysis & Planning Business logic task 8 7 6 5 4 3 2 1 Services task Database task
  33. 33. Valuable work can be prioritized UI taskAnalysis & Planning Analysis & Planning Business logic task 8 7 6 5 4 3 2 6 5 4 3 B A 2 1 Services task Database task The business wants a change and re-prioritizes the backlog UI taskAnalysis & Planning Analysis & Planning Business logic task 8 7 6 5 4 3 2 7 6 5 4 3 2 A 1 Services task Database task
  34. 34. Less management overhead
  35. 35. So, can IT now organize differently todeliver higher value to the business?
  36. 36. Thank you

×