lean development agile development project “projects without clear goals will not achieve their...
TRANSCRIPT
Lean Development
Agile Development Project
“Projects without clear goals will not achieve their goals clearly”
Swinburne University of Technology
About rate of production In manufacturing – the capacity of the plant is determined by the
capacity (or speed) of the weakest link Generally known as Capacity Constraint Resource (CCR) Simply put – this is the bottleneck in the system
To be lean, all one needs to do it identify the CCR, and introduce raw materials at the speed at which this can process them – independent of the rest of the system.
Once this is done, we go about optimising it, and collect data to identify where the next CCR is….
Traditionally CCR are optimised with buffers – this can work in Software Development as well (where prior experience is available)
Swinburne University of Technology
Focus of traditional methods…. Based on the ‘Descartes philosophy’
Mathematical methods – to understand anything you need to decompose it first till it cannot be decomposed anymore, then you can study its behaviour and composition [top-down]
Mostly focused on ‘detail complexity’ rather than ‘system complexity”
Often detail complexity is seen to be system-complexity, this is a mistaken perception
Swinburne University of Technology
Agile methods .. a few issues still Some agile methods make the assumption that because
software development is inherently uncertain, we cannot classify/codify and hence we cannot measure it – this means control is only possible by letting people self-organise
Unfortunately: “The ability of an organism to understand what it does as a holistic system is the first step in becoming a learning organism”
It needs to understand ‘what it does’ & ‘how it actually does it’ in order to have any hope for improvement
Swinburne University of Technology
Metrics??? This is exactly where metrics help in agile processes To be agile/lean systems level thinking must be present
Ideally at all levels of an organisation – with out this knowledge, we just cannot scale agility beyond ‘expensive’ teams (i.e. high knowledge, high experience, highly skilled teams)
Software development is inherently a ‘convergent’ process [it is under a certain amount of control and is predictable]
However, it converges to an approximation (i.e. we are dealing with probabilities – not certainties)
Swinburne University of Technology
How will this work in practice? We are really talking about a completely different type of
thinking here, to ensure it works we need to: Define the desired output from the part of the system under
control Define rules for measuring that particular system Create conditions for the team to operate freely Let the team self-organise based on feedback Be aware of what is going on (conscious management as
opposed to reactive management)
Swinburne University of Technology
IT – Cost (or) Value? In many companies (non IT, e.g. Bank) IT is seen as a necessary
evil, and a cost centre Office cleaners are needed to provide a favourable environment, they do
not contribute directly to profit – IT is often seen with the same viewpoint, a cost
Agile management methods can provide information to the business by using terminology that positions IT as a value-centre
This approach can help a business see the value technology adds, when used effectively
US based retailer Wal-Mart keeps most IT-work in-house, spends less than 1% of their worldwide revenue (approx. US$256 billion) on IT and is considered one of the best run corporate IT departments – they apply a range of Agile management techniques
Swinburne University of Technology
Requirements, Investment in agile… The raw material for IT projects can be seen as
‘requirements’ that are perishable Initial investment is the sum of:
Cost of feature list acquisition Costs incurred during modelling (to understand & specify) Cost of base infrastructure setup (i.e.
PCs/Communications/Electricity …)
These costs can be calculated ‘per release’ or ‘per quarter’ – depending on project
Swinburne University of Technology
Throughput accounting
Throughput Accounting is a method of management reporting that adapts to the units of the desired adaptive behaviour of the system, i.e. it does not
have to be about money
Swinburne University of Technology
Software context… Inventory = Requirements Value of Inventory = Investment to Create the Requirements
Investment = ValueInput
ValueOutput = SalesPrice - DirectCosts
Note: DirectCosts are marginal costs directly associated with the sale of working code. These could include packaging and delivery, but more likely cover installation, training, and support.
ValueAdded = ValueOutput - ValueInput
Throughput = ValueOutput
Swinburne University of Technology
Throughtput accounting
Throughtput always implies a time period, so $x generated over time period t.
Swinburne University of Technology
Investment, Operating Expense and ROI
Investment is the initial costs incurred in a project These can be seen at a release or iteration level
Investment (Release) = Cost of Story Generation
Investment (Iteration) = Planning cost + Cost of tests
Operating expenses (OE) are the costs incurred to keep a project active – in most cases this is near constant per release
OE (release) = Salary costs + Infrastructure costs
• Given above, what costs should you decrease?• If you have to improve profit, where would you focus?
Swinburne University of Technology
Cost accounting Management cost control process focusing on
production cost per item Simple and very intuitive (how much did a particular
feature cost for me to develop?) Weakness – Ignores wastage by assuming that if a man
or machine is idle then they do not cost anything Throughput Accounting assumes that men and
machines are not easily removed, and the costs associated with them are fixed. Hence, efficiency cannot be expressed in terms of cost. It must be expressed in terms of value delivered.
Swinburne University of Technology
Calculating value of IT … In generic terms, value-to-business can be calculated
based on the ‘sale price’, but we need to look at the equation differently for IT projects:
Project budget = Sales price [IT-dept. is supplier]
All IT projects have a budget allocated (per release in agile) – this allows us to calculate throughput costs immediately
Throughput (budgeted) = ReleaseBudget – DeploymentCosts
Note: This assumes that the budget basis is accurate, the only real way to know if it added value is to get numbers at the end of project (post-deployment) and improve it for next project
Swinburne University of Technology
Value add of IT project The real value added can only be determined by the
business making use of the IT system procured Example: Value Added for the loans division can be:
VA-1 = #Loans (New release) - #Loans (old release) Usability, marketability of product?
VA-2 = $Lent (new release) - $Lent (old release) Better features, more competitive?
VA-3 = $Income (new release) - $Income (old release)
Note: These metrics are not ‘software metrics’ and are intended to give an indication to the business on the value of the new IT system, but a number of other factors also need to be taken into consideration
Swinburne University of Technology
Throughput accounting and ROI Once these numbers are available we can now look at
IT within the context of the whole business as well as look at the ROI (return on investment) for a project
Net profit (budget basis) =
T (budget basis) – OE (IT department)
ROI = Net Profit (budget basis)/Investment
Note: The same formulae will work with true-basis calculations as well.
A good manager will look at increasing T, while keeping OE and I down
Swinburne University of Technology
Management focus
Which is better?• Given a fixed time-frame and fixed-budget, tell me what you can deliver.• I want X, tell me how long and how much money it will take.
Swinburne University of Technology
Being aware of flow in project Nothing metaphysical here, we are interested in making
the flow of value through the system as transparent as possible – they can be either ragged or smooth
Picture from Chapter 9, see Reference list
Flow can be interrupted due to many causes, but broadly speaking they are due to: bottlenecks, poor quality, and/or overly large input batch size
Swinburne University of Technology
Detecting bottlenecks A bottleneck is the area that has the lowest production-rate (PR) A simple technique is the use of cumulative flow diagrams where we plot
the number of value-add functions pending at each stage of the process – essentially we are interested in the inventory levels
In this diagram, we can clearly see the build up of work at testing – the same may happen with requirements as well – which would indicate a very busy business analysis team
Swinburne University of Technology
Bottlenecks are expensive… Assume that the acceptance testing and deployment
part of the system is a bottleneck and they lost a key server – which has put the project back by 2-days, what would be the true cost of this failure?
We will work on this problem in the tutorials
Bottlenecks end up being a lot more expensive than they seem to be – it is imperative that they are detected early and necessary corrective steps taken to minimise the loss
There is only so much free overtime available
Swinburne University of Technology
Cost of poor quality A quick way to detect poor quality is by focusing on the amount of
rework We can get this information by measuring the change to existing work –
this should be minimised
To understand and control this, we need to keep a close eye on the production rate at various stages of the development
Essentially as code is transformed – we need to see what the velocity of the team is at and where most of the re-work is coming from
Defect taxonomies need to be built and used overtime to control this effectively
Swinburne University of Technology
Measuring the cost of poor quality To determine this properly we need to establish the production
rate of various aspects What is the production rate at which new features can be fed into the
development team What is the rate at which code can be developed and unit tested What is the rate at which integration/acceptance testing can be done
Constraints have to be looked at for each of these activities as well as analysing the nature of the defects that can picked up
If a defect is only picked up at acceptance testing – then the entire cost of developing that feature has to be shown as a ‘waste’. In this case we must write it off the ‘Investment’ and add it into Operating expense (which will have an immediate impact on the RIO number)