Using feature teams to deliver high business value

Embed Size (px)

DESCRIPTION

A view into how most IT organisations structure their teams to deal with business demands and possible inefficiencies that emerge as a result. An alternate to the traditional project team composition is a way to deliver end to end features to the business, using what is known as feature teams.

Text of Using feature teams to deliver high business value

  • USINGFEATURETEAMSTODELIVER HIGHERBUSINESSVALUE Sameer Deans
  • How can IT organize to deliver higher value to the business? 2
  • AGENDA !What does business expect from IT? !How is IT set up to deliver? !Introducing feature teams !Q & A 3
  • 4 All businesses are driven by Return on Investment RoI can be in monetary form or intangible like a brand or social recognition
  • 5 The role of business is to maximize Customer Experience and Revenue or to Reduce Costs Software project aims to achieve at least one of these
  • 6 Once a business idea emerges, time to market is critical Can value be delivered to the business incrementally?
  • What does 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 7
  • So how does IT set themselves up to deliver? Typical team organization is around competent teams formed around architecture modules of the system. 8 User Management Security Account Maintenance Transaction Processing
  • Quite often organized by layer of application 9 UI team Business Logic team Services team Database team Number of applications in the system under development UI team Business Logic team Services team Database team UI team Business Logic team Services team Database team UI team Business Logic team Services team Database team
  • What do component teams lead to? 10
  • HANDOFF AND DELAY Team A Team B Team C Consider a requirement from the customer that needs to be developed by 3 component teams Hando Hando Waste due to rework and handling partially nished work Waste due to delays
  • DUPLICATION Team A Team B Team C Writes method to calculate interest so it can show this in the UI class SimpleInterestCalculator def initialize(principal, interestRate, numberOfYears) @principal = principal @interestRate = interestRate @numberOfYears = numberOfYears end def compute (@principal * @interestRate * @numberOfYears) /100 end end Writes method to calculate interest so it create a reusable service Class InterestCalculator def self.compute(loan_amount, rate_of_interest, term_in_years) (loan_amount * rate_of_interest * term_in_years) /100 end end Writes method to calculate interest so totals can be updated in database class SimpleInterestCalculator3 def initialize(options = {}) @loan_amount = options[:loan_amount] || @rate_of_interest = options[:rate_of_interest] || @term_in_years = options[:term_in_years] || end def compute @loan_amount * @term_in_years * rate_of_interest_in_fraction end private def rate_of_interest_in_fraction @rate_of_interest / 100 end end
  • BAD CODE AND DESIGN Work with the same code month after month Acceptance of bad design No outside eyes look at the codebase Do not seek to refactor
  • COORDINATION AND INTEGRATION Team A Team B Team C Requirement that spans several component teams
  • EXTRA MANAGEMENT
  • SEQUENTIAL DEVELOPMENT UI team Business logic team Services team Database team UI team Business logic team Services team Database team UI team Business logic team Services team Database team !!! Requirements analysis !!! Planning !!!!! Testing
  • DO THE EASY WORK Team A Team B Team C A A A A B B B B C C C C This comprises a customer requirement
  • PROMOTES SPECIALIZATION !!! !!! !!!
  • ANOTHER RESPONSE FROM IT : FEATURE PROJECTS Spin up a project to deliver a particular feature of the larger system Unfortunately this has its drawbacks too Feature touches 3 dierent components Component A Component B Component C ! ! !! ! !
  • NEW TEAM : LOWER PRODUCTIVITY Component A Component B Component C ! ! !! ! !
  • RESOURCE ALLOCATION TEAM USES KEY PEOPLE AS BAND-AIDS Component A Component B Component C ! ! !! ! ! ! Component C
  • ! Component C Impact to existing team OVER ALLOCATION Component X Component B Component C ! !! ! Component A Component B Component C ! !! ! !! 100% 25% !!
  • LOW MOTIVATION AND JOB SATISFACTION
  • INTRODUCING : FEATURE TEAMS What is a feature? Functionality that delivers usable value to the customer
  • FEATURES : EXAMPLES Internationalization Adding a new service provider to eCom site Ability to grant and service loans
  • What does a Feature Team look like?
  • NOT ALL GENERALISTS ! ! ! !! ! ! ! !
  • IDEALLY WOULD BE CO-LOCATED
  • TEAM MEMBERS WORK ON ANALYSIS, CODING AND TESTING Requirements analysis TestingCoding ! ! ! !!! ! ! !
  • HOW DOES A FEATURE GET DELIVERED UI task Business logic task Services task Database task A A A A B B B B C C C C This comprises a customer requirement A B B B C S S S S S S S Analysis & Planning Analysis & Planning S
  • What are the advantages of feature teams?
  • LEARN AND JELL TOGETHER
  • NO HAND OFFS UI task Business logic task Services task Database task S
  • VALUABLE WORK CAN BE PRIORITIZED 8 7 6 5 4 3 2 Analysis & Planning UI task Business logic task Services task Database task 1 Business Idea UI task Business logic task Services task Database task 18 7 6 5 4 3 2 Analysis & Planning This gets channeled into two features and two feature teams
  • VALUABLE WORK CAN BE PRIORITIZED 8 7 6 5 4 3 2 Analysis & Planning 8 7 6 5 4 3 2 Analysis & Planning UI task Business logic task Services task Database task 1 UI task Business logic task Services task Database task 1 The business wants a change and re-prioritizes the backlog 6 5 4 3 B A 2 Analysis & Planning 7 6 5 4 3 2 A Analysis & Planning
  • LESS MANAGEMENT OVERHEAD
  • So, can IT now organize dierently to deliver higher value to the business?
  • THANK YOU