- Solutions
Our solutions
Digital solutions combining strategy, technology, automation and people.
Technology advisory
Navigate the fast-changing world
Cloud engineering
Transformational change at scale and speed
Data solutions
Realise the untapped potential of data
AI and machine learning
Leverage your data assets
Application engineering
Optimise and grow your digital investment
Maintenance and support
End-to-end application management
Business process solutions
Manage business processes to reduce operating costs
Quality solutions
Independent testing for your systems and software
Digital experience platforms
Redesign your digital assets for the optimal customer experience
- Industries
Industries
We provide solutions tailored to your sector to assist you in identifying opportunities, realising value and opening up new markets.
Financial services
Insurance, risk management, banks, and fintech
Healthcare
Patient empowerment, lifesciences, and pharma
Retail
Functional and emotional customer experiences online and in-store
Travel
Airlines, online travel giants, niche disruptors
Media and publishing
Content consumption for the tech-driven audience
Hi-tech and IOT
Real-time information and operational agility and flexibility to respond to market changes
Logistics and supply chain
Reimagine a supply chain that is more flexible and resilient to change
Education
Create an exciting and engaging digital experience for students and departments
- Our thinking
Our thinking
The latest updates to help future-focused organisations on the issues that matter most in business.
News
Keep up to date with company news and announcements at NashTech
Digital Leadership Report
Explore insights from the latest world's largest and longest-running study on technology leadership
Insights
The latest expertise and thought leadership from the NashTech and our clients
Resources
Expert guidance on everything from complex technological issues to current trends
- Case studies
- About us
About us
Find out what makes us who we are
Leadership
The diverse leadership team at NashTech
Nash Squared
A global professional services organisation with three key areas of focus
Vietnam 360°
Experience a 360 degree all-encompassing virtual tour of NashTech’s Vietnam offices
ESG
Discover our environmental, social and governance commitments
Diversity, equality and inclusion
Making diversity, equality and inclusion an integral part of our culture
Our locations
Discover our network of global offices, centres of excellence and innovation
- English
Lean software development - how to eliminate waste?
Lean software development involves applying lean manufacturing principles and practices to the software development domain. One of lean’s key principles is eliminating waste — but what is waste in software development terms, how can it be eliminated, and what value does its elimination deliver?
Lean principles trace their roots back to the lean production methods used by Toyota. Just as manufacturing is integral to a car maker’s success, software development is a critical enabler of digital transformation initiatives.
Lean software development involves applying lean manufacturing principles and practices to the software development domain. The approach can be summarised in seven principles, which are very close in concept to lean manufacturing principles:
- Eliminate waste
- Amplify learning
- Decide as late as possible
- Deliver as fast as possible
- Empower the team
- Build integrity in
- Optimise the whole
In this blog we’re discussing the first of those principles: eliminate waste. We look at how NashTech is working towards eliminating waste from software development to deliver additional value to clients.
Defining waste in software development
To eliminate waste, we have to know what it is. Lean philosophy regards everything that doesn’t add value to the client as waste. If an activity can be bypassed, or a result can be achieved without it, then it’s waste. So all of the following can be defined as waste:
- Partially done coding that’s ultimately abandoned during the development process
- Extra features — such as paperwork, or features never deployed by the client
- Switching people between tasks
- Waiting for other activities or teams
- Relearning required to complete work
- Defects and lower quality
- Managerial overhead that doesn’t produce real value
Of course, that’s not an exhaustive list. Once we started thinking about waste in software development, we realised there were lots of activities that could be eliminated. We also realised we couldn’t tackle waste elimination on our own.
Why is partnership key to removing waste?
Understanding what waste is in the software development process is one thing. Getting to the sources of waste and eliminating them is another.
Over many software development projects we’ve learned that a close partnership with our clients is key to eliminating waste. A client needs to:
- Understand and appreciate the definition of waste
- Accept the minor changes in approach needed to eliminate it
Adopting lean thinking is a journey we have to make together. It means leveraging the trust and confidence built by NashTech demonstrating a smooth delivery to influence and drive improvement across the entire project.
Plan to remove waste early
Many of the causes of waste are set in motion early in the software development process, such as discussion and planning of requirements and technical architecture.
These early processes – when the product is being defined – can themselves be wasteful. They can deliver late or in an incomplete state for the development teams. And they can build in problems that will cause waste at a later stage, such as:
- The need to rework
- Unnecessary complexity
- Extensive dependencies that could lead to blocks of partially complete work
Let’s not forget that another Lean principle tells us: Decide as late as possible. This is another reason to avoid attempting to over-define the product too early on.
Plan for the unexpected
We shouldn’t rule out the fact that the day-to-day operations of a live application can impose on the development team at short notice.
We’ve mentioned defects as a source of waste in their own right, but when a production bug (even if mission critical in nature) impinges on a sprint team, the relearning and task-switching involved can lead to more waste.
In a typical project, design and operations functions will often lie with the client’s team. This shows why eliminating waste should be a joint goal – and tackling it a joint activity – across the entire engagement.
Once we’ve worked as a team to:
- Ensure near-perfect initial stories are planned into our sprint with controlled dependencies and careful prioritisation – and without extra features or unnecessary complexity
- Mitigate as far as possible against unavoidable disruption from production issues
— we can then look at eliminating waste during code development, testing, and deployment.
Apply the Scrum Agile framework
Applying the Scrum Agile framework to the development team means we’re already guarding – to some degree at least – against the software development wastes identified above.
Ideally, the team will have a guaranteed undisrupted two-week period during which they can:
- Manage their own time
- Avoid excessive management involvement
- Have all their questions and dependencies answered in advance for a size-estimated quantity of work that doesn’t exceed their measured capacity
- Fully commit to deliver in sprint, avoiding partially complete work at the end
Work-in-progress limits can be applied to encourage the team to focus on task completion. Avoiding skills over-specialisation of team members – a practice that supports other lean principles – can help here.
Of course, this theoretical perfect sprint supporting lean software development principles is extremely challenging to achieve. What we can say is that the sprint, its ideals and processes must be defended by a knowledgeable and assertive Scrum Master.
Final thoughts
The benefits of Agile and lean software development practices may appear simple to achieve, but can prove quite elusive in a real-world engagement. The continuous improvement approach – that will take us from where we are today to where we want to be tomorrow – requires determination and understanding. It also depends on a trustful and open working relationship between partners to tackle shared issues and reach shared goals. Fostering and supporting this ambition is key for any development manager – otherwise they could end up fitting the lean definition of ‘waste’!
Ready to know more?
To learn more about NashTech’s approach to lean software development, visit our software development services or email info@nashtechglobal.com and a member of the team will be in touch.
Suggested articles
From rising above adversity to riding the wave of digital transformation in the education sector
Explore how NashTech help Trinity College London ride the wave of digital transformation in the education sector
Migrating and modernising the virtual learning environment to AWS for an enhanced experience
The migrated and modernised Moodle infrastructure means that The Open University can now take advantage of cloud benefits.
A glimpse into a year-long RPA journey with a leading digital advertising service
A glimpse into a year-long RPA journey with a leading digital advertising services and solutions provider and how NashTech helped them.