Value Engineering
Anything Agile brings you an interesting topic which will add 'value' to your agile experience.
Value Engineering
Value engineering is one of important cost reduction tool available in software development domain, there are various school of thoughts defining value engineering in their own way but the moral of every definition is quick customer satisfaction at low cost without impacting quality which is maximising value and minimising waste.
In Agile manifesto, Principle#1 helps bring light to value engineering.
Agile Principle#1 – Our highest priority is to satisfy the customer through quick and continuous delivery of valuable software.
In agile software development methodology, scrum development teams understand expected business outcome of the product with help of Product Owners, Product Managers or Senior Business Leaders. It is important that both scrum development team and business teams work together and interact on daily basis to identify and prioritise the value streams to drive the outcomes. This is how value engineering is realised in agile software development domain. By being transparent about the customer expectations Scrum teams are able to prioritise the user stories which will help bring the best value outcome to life for customer satisfaction. This is how Scrum teams are able to maximise the value.
Now the next question is how Scrum teams can take care to second part of value engineering which is minimising waste?
In Agile manifesto, Principle#10 helps bring light to value engineering by way of minimising waste.
Agile Principle#10 – Simplicity – the art of maximising the amount of work not done – is essential.
In most of software project meetings you will hear senior coaches saying less is always more, keep it simple. This agile principle#10 beautifully defines simplicity which means do more of less. Focus should be on key business requirements which are of low cost and maximum benefit.
There are multiple techniques to solve this problem of identifying those key business requirements. Lets review couple of them which are used by many Scrum teams and project management professionals.
1. MoSCoW rule: Prioritising the requirements or functions of product in order of must have, should have, could have and would like to have at last.
2. Pareto Principle: 80-20 rule, 80% of the outcome is derived from 20% of the most important tasks. So identify those 20% important tasks and do less of other 80% task which are of least importance but adds cost to your project/product.
If you know of more such techniques you have used in software development projects please share in feedback section.
In Scaled Agile Framework, there are defined set of eight flow accelerators to achieve continuous flow of business value and minimise waste.
With help of these accelerators software development teams can focus on maximising value and minimising waste, ensuring high focus on key changes which matter and lead to customer satisfaction and avoid wastage.
Flow accelerators:
1. Visualise & Limit WIP: WIP is work in progress, by limiting the work in progress team is able to complete the work which is in hand first before starting new work. This enables high productivity and cost efficiency.
2. Address Bottlenecks: Scrum Masters should help consider bottlenecks as impediments and immediately help software development teams resolve the same to avoid delay. Bottlenecks lead to wait time and increases time in overall value chain. This could happen due to limited specialist resources, too much of governance, pending approvals, handoffs, dependencies, incorrect planning and many other reasons. Agile leaders should enable team towards high value outcomes by way of addressing bottlenecks before these could lead to problems.
3. Minimizing Handoffs and Dependencies: When designing value streams in large software development projects, focus should be about aligning most of the work related to one function within a single team to avoid multiple teams delivering the same function/feature of the product which leads to handoffs and interdependencies. Although large features will need multiple teams to target the work and achieve quick outcomes but this should be highlighted and documented during Program Increment planning (PI Planning) event used in Scaled Agile framework. Overall, minimizing handoffs will lead to productive and self organized teams delivering high business value in less time.
4. Optimize time ‘in the zone’: In order to create business value it is important that software development team is allowed maximum allocated time on the development task rather than handoffs and governance. This will lead to focussed intellectual effort on the work enabling team creativity to rise.
5. Get faster feedback: It is important that software development team get quick feedback from product owner or end user or customer about the work in progress through regular demo. Faster feedback will eliminate waste enabling end product to be in line with high customer satisfaction and create great business value.
6. Work in smaller batches: Batch size is very important in agile software development methodology. If in the given sprint (2 weeks) software development team plans to deliver fewer product features/functions then that leads to quicker feedback and helps limit work in progress. Smaller batches hence mean delivering less number of features per sprint. This leads to quality outcome and focus development of the work.
7. Reduce queue lengths: In agile software development it is important that we support urgent high priority changes from business with least possible wait time. This is possible if project teams are able to reduce their queue lengths. This is possible by keeping team backlogs short and largely unapproved or uncommitted. This will allow higher priority new function request enter and leave the value chain in shortest possible time and new priority requirement or work will not be required to compete with busy backlog queue.
8. Remediate legacy policies and practices: It is important that software development teams overcome unnecessary standards and processes which slows them down, driving innovation and transformation of legacy procedures is very important to avoid waste.
Overall managing better flow of value in projects will lead to maximum outcome with minimum waste and save cost for the organisation. Value engineering manifests itself in various forms in agile software development, it is wiser to not just follow agile process and methodology at work but important aspect is delivery high quality value in lowest possible cost at speed.
Please share your feedback about how you like this blog about implementing value engineering at software engineering shop.