Lean, agile and scrum – which approach will be the best for your app development?

design thinking team

The moment you decide that your project needs to be taken from the idea phase into the development phase is actually…one of the hardest moments. It is the time to face reality and answer many difficult questions about the process of development. In the past, many incredible ideas failed just because they were carried out in the wrong way.

At AppTailors, we believe that having the right process is a guarantee of effectiveness and high quality in app development. That’s why we are always working on the improvements of our internal processes. Like many development teams, we love Lean, Agile and Scrum. Those words took our world by storm in the last few years. These approaches are especially popular in the IT environment but can be used in almost every product or service development, as well as in every industry.

Nowadays, still not everyone understands what those words mean, how to implement them in your product development and in which way they can influence your project. That’s why we prepared this guide – to explain everything, to answer all your possible questions and describe in more details about the most popular approaches in mobile or web app development.

| Lean software development – what does it mean?

Lean management philosophy was developed and introduced by Toyota, based on their practices and experience in creating effective processes of automotive manufacturing. The main purpose of lean methodology is to reduce the risk and waste with scaling the value and to improve the end-user experience. Later, this methodology of physical product development was translated into the development of other things, like software development for example and gained very high popularity in this industry as it is a guarantee of fast and good results. Lean is a pillar of Agile.

| There are five principles of lean product development:

1. Defining value

By using quantitative and qualitative techniques like interviews, statistics etc., you are able to discover what will be the most valuable asset for your customer and what they will pay for;

2. Mapping streams

Everything that is not adding the value should be treated as waste – that’s why it is important to map every activity that brings value to your customer;

3. Building a production flow

Your process should run smoothly without any interruptions or delays;

4. Streamlining inventory

Inventory might be your biggest waste, so you have to make sure that you only have enough materials or information to keep the smooth workflow;

5. Continuously improving products

That’s probably the most important principle, as the work to improve your process never ends; your company should learn from every cycle and every employee should strive towards perfection;

| Lean software development – benefits

  • Reduce waste – because during the lean development process you are continually repeating and refining your workflow, you are able to identify and remove activities and issues which are blocking the productivity of your team
  • Better results – as you remove all the waste and map the value, you are able to deliver better results, more focused on what your end-user really needs;
  • Faster results – with the smooth and fast process, without any blocking points you are able to deliver results faster
  • Added flexibility – the development is going step by step, not all-in-one, so if at one moment you identify that your current path is a dead-end, you are able to change it
  • Extended knowledge – it’s easier to learn when your organization have clear processes, maped values, identified goals and the whole process is repetitive
  • Easier error tracking – lean pushes for standardization, removing the process which can lead to errors
  • Clear metrics – you can easily control and monitor almost every process inside your organization
  • | Lean software development – cons

  • Hard to implement – in some cases, implementing lean product development might be problematic, especially from the side of employees who don’t want to adapt to the new rules or they are frustrated or demotivated by the process
  • Expensive to implement – it also might be a bit expensive to implement this methodology, as you might need to send your employees to workshops (if they didn’t work with lean before) or even hire some new people (especially when someone from your current crew will not want to adapt)
  • It takes time – implementing lean development can’t happen overnight, it simply needs time to create your internal processes
  • Overstructered processes - sometimes the process itself might take more time than the tasks and goals
  • Focus – in general, one of the goals of lean development is stay focused on the most important task, but there is a risk of two things – task which are “good enough” will be removed from the workflow and by staying too focused on the upcoming task you might lose the whole strategy from your sight
  • | Agile software development – what does it mean?

    Agile is a product building philosophy. It helps you to build your product step-by-step, with priorities, milestones, and overall simplicity. During the development you should be focused on customers, test each of your steps and implement changes if tests say that they are needed. The biggest advantage of agile methodology is the fact that agile lets you develop your product in more flexible ways and lets you adapt faster. Also, you can expect faster results.

    You can look for Agile origins in the Agile Manifesto, created by the developers tired of non-effective development methods. In general, agile methods are focused on three areas:
    - customer focus
    - iterations
    - testing and validation

    | Agile software development – advantages

  • Focus on users and business value – the main goal of implementing Agile practices is to improve the end-user experience and give the highest amount of business value as possible
  • High quality – if you focus only on the next step of the project you can usually deliver at a higher quality than when you focus on the whole project
  • Predictable costs and schedule – you are able to define how much each of your steps will cost as well as how much time you will need to reach each milestone. That is a huge advantage for the business side.
  • Flexibility – if tests say that your project needs a change, you are able to easily implement it without drastic changes in the whole project
  • Faster results - with everything based on a smooth and predictable process you are able to deliver the results faster and without any unexpected brakes;
  • | Agile software development – disadvantages

  • Hard to implement – in some cases you can face similar problems like with implementing lean methodologies – your employees might not want to adapt to the new rules or they will be frustrated or demotivated by the process
  • Expensive to implement – it also might be a bit expensive to implement this methodology, as you might need to send your employees to workshops (if they didn’t work with lean before) or even to hire some new people (especially when someone from your current crew will not want to adapt). Getting new knowledge is usually costful.
  • Hard to scale - while Agile methodologies are perfect for smaller teams, it might be hard to scale them to larger teams, but from the other side – there is a lot of tools to make this process easier, like for example The Scaled Agile Framework
  • Poor resource planning – Agile is based on the belief that teams will not know how their end product will look like, as it will be the result of cycles, sometimes it might be hard to predict what you will really need in the project
  • Limited documentation – as the final result is not known, the documentation is made during the product development – that means sometimes it can be over fragmented and low quality
  • No end – it’s hard to define when the product will reach a “finished” status
  • It’s hard to measure – as you are not sure how the final project will look like, it’s hard to set valuable KPIs
  • | Scrum framework

    Agile and Lean are methodologies, Scrum is a framework. What does it mean? Scrum is a set of practices, roles, events, artifacts, and rules. It is perfect for the agile product development documentation. It can be understood as a tool or evolution for both previously explained methods.

    | Scrum framework – benefits

  • Project deliverability – processes based on the SCRUM framework can help your team to deliver projects faster and more efficiently. It is good for the business side of your project – usually shorter time for development means more money saved.
  • Money well spent – with the SCRUM framework you can be sure that your money is spent on the right milestones and is not wasted
  • More control – large projects are divided into easy-to-reach milestones, this gives you more control over them, together with scrum meetings you also get better visibility over your project
  • Flexibility – working in short sprints give you the ability to make changes almost in real time
  • Daily meetings – your project goes at the right speed and your employees can also feel more motivated and more committed seeing the work of the whole team
  • | Scrum framework – cons

  • No end – it’s hard to define when the product development process ends, as the product is evolving with every sprint
  • Higher chance of failure – the whole project can collapse if every team member is not working with the same commitment and speed. The Scrum framework also needs experienced people in the team.
  • Hard to scale – it can be hard to implement Scrum framework with larger teams and projects
  • Higher level of frustration – daily meeting can also be boring and considered as a waste of time
  • | Summary

    At AppTailors we believe in presentation and transparency – that’s why we love to work with all described methods. Only the right approach can guarantee that your app will be released without wasting any precious resources like time, money or skill.