lean development agile development project “projects without clear goals will not achieve their...

24
Lean Development Agile Development Project without clear goals will not achieve their goals clearly

Upload: hilary-booker

Post on 02-Jan-2016

223 views

Category:

Documents


1 download

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

Cost Vs Throughtput

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)

Swinburne University of Technology

References Agile Management for Software Engineering:

Applying the Theory of Constraints for Business Results, By David J. Anderson, Eli Schragenheim

Available on Safari – can be accessed using your Swinburne Library account