A guide to being Agile, SAFe, and Lean in Software Development

Satish Velagapudi
14 min readMay 4, 2021

--

Being Agile is the New Normal

“Definition of Agile

1.able to move quickly and easily.

2.relating to or denoting a method of project management, used especially for software development, that is characterized by the division of tasks into short phases of work and frequent reassessment and adaptation of plans.”

2 questions that always help get the perspective and make us course correct

  • Are we building fast enough?
  • Are we building the right thing?

The right thing means the product improves the end user’s world. That means the user can work faster, do a task differently or do something that was not possible before.

Agile Values & Principles

Agile development methodology is a different way of managing software development projects. This approach follows Agile principles that differ from the more traditional Waterfall approach.

So, a group of software developers agreed to craft a manifesto that values individuals and interactions, working software and customer collaboration, and responds to change more than the values highly prioritized in Waterfall, which are processes and tools, documentation, contract negotiation, and plans.

Agile principles

  • Customer satisfaction is the highest priority.
  • Changing requirements is welcome at any development stage.
  • Deliver working software frequently at shorter timescales.
  • Business users and developers should collaborate daily throughout the project.
  • Trust and support motivated individuals to find solutions.
  • A face-to-face conversation is the best method of conveying information.
  • Working software is the primary measure of progress.
  • Agile processes promote a sustainable environment.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • The team regularly reflects on how to become more effective and adjusts accordingly.

Agile Manifesto — Click here

Agile Mindset

An agile mindset is the set of attitudes supporting an agile working environment. These include respect, collaboration, improvement and learning cycles, pride in ownership, focus on delivering value, and the ability to adapt to change.

There are many different project management methodologies used to implement the Agile philosophy. Some of the most common include Kanban, Extreme Programming (XP), and Scrum.

Agile Methodology

+ Faster, smaller. Traditional software development relied on phases like outlining the requirements, planning, design, building, testing, and delivery. Agile methodology, by contrast, looks to deploy the first increment in weeks and the entire piece of software in months.

+ Communication. Agile teams within the business work together daily at every stage of the project through face-to-face meetings (online video call-based meetings in the current Work-from-Home times). This collaboration and communication ensure the process stays on track even as conditions change.

+ Feedback. Rather than waiting until the end of delivery, teams leveraging Agile methodology track the success and speed of the development process regularly. Velocity is measured after the delivery of each increment.

+ Trust. Agile teams and employees are self-organizing. They understand the goals and create their own path to reach them.

+Adjust. Agile teams tune and adjust the process continually, following the KIS (Keep It Simple) principle.

“agile methods replace high-level design with frequent redesign”

Agile Project Management

is a project philosophy or framework that takes an iterative approach towards the completion of a project. The Project Management Institute (PMI) says the goal of the Agile approach is to create early, measurable ROI through defined, iterative delivery of product features.

Due to the iterative nature of Agile approaches, continuous involvement with the client is necessary to ensure that the expectations are aligned and to allow the project team to adapt to changes throughout the process.

While different Agile methods have more similarities than differences, it is possible to pick out one or two distinguishing factors for each.

  • Scrum: Requires a Scrum Master. Burndown charts. Limited to code production
  • XP: Pair programming. Test-first programming. Selectable ideas
  • Kanban: Incremental but not iterative. Work In Progress (WIP) limits
  • DSDM: MoSCoW (must-haves, should-haves, could-haves, and will not have at this time ) prioritization. Heavy in detail. Addresses full lifecycle
  • DAD: Relatively new. Addresses full lifecycle. Borrows from elsewhere
  • AUP: Grew from RUP. Heavy on pre-iterative phases
  • Feature Driven Development: Implementation by functional area
  • Lean Development: Ideas to overlay on other processes

While DSDM is almost synonymous with Agile methodology, Scrum and XP are easier to implement and complementary because they tackle different aspects of development projects.

Are Agile and Scrum the same?

Agile is a philosophy, whereas Scrum is a type of Agile methodology. If an Agile approach is right for your project, you will then need to determine whether or not Scrum is the best Agile methodology for your specific needs and goals. Scrum is typically best suited to projects which do not have clear requirements, are likely to experience change, and/or require frequent testing.

With agile project methodology, we implement the iterative, customer-focused process with short release cycles of testable function packages (user stories). Particular emphasis is placed in this context on close contact with and interaction between the people involved.

Agile Boards. Photo Source: stock.adobe.com

Key Agile Software Development Lifecycle Phases

When you break it down to the core concepts, Agile development is not that difficult. And while it may seem wasteful with the number of meetings involved, it saves a lot of time by optimizing the development tasks and reducing the gaps during the planning stages.

Phase 1: Requirements

Before a Product Owner can even start designing a project, they need to create the initial requirements. They are:

  • Project vision and roadmap
  • Feature backlog based on functional requirements
  • Categorizing the features into must have, nice to have, will not have now
  • Non-functional requirements

On further iterations, the Client and the Product Owner review the requirements and make them more relevant.

Phase 2: Design

There are two ways to approach design in the software development — one is the user experience/visual design and the other is the architectural design of the application.

UI/UX Design

During the requirements stage, the designers create a rough mock-up of the UI. In an ideal scenario, requirements and UX should be one team and work in tandem

Software (Architectural) Design

During the first iteration (sprint 0), the Product Owner assembles the architecture and development team and introduces the requirements created. The team then discusses how to tackle these requirements, and proposes the tools and approach needed to achieve the best result. For example, the team defines the programming language, frameworks, and libraries that the project is going to be using.

Further iterations are spent refining the initial design and/or reworking it to suit the new features.

Phase 3. Development and Coding

The development phase is about writing code and converting design artefacts into the actual software within the software development process. This stage of SDLC is generally the longest as it’s the backbone of the whole process.

There aren’t many changes between the iterations here.

Phase 4. Integration and Testing

This stage is spent on making sure that the software is bug-free and compatible with everything else that the developers have written before. The Quality Assurance team conducts a series of tests in order to ensure the code is clean and business goals of the solution are met.

During the further iterations of this SDLC stage, the testing becomes more involved and accounts not only for functionality testing, but also for regression, systems integration, interoperability, performance, security and user acceptance testing, etc.

Phase 5. Implementation and Deployment

The application is deployed on the servers and provided to the customers — either for the demo or the actual use. Further iterations update the already deployed application, introducing new features and resolving bugs.

Phase 6. Review

Once all previous development phases are complete, the Product Owner gathers the Development Team once again and reviews the progress made towards completing the requirements. The team introduces their ideas toward resolving the problems that arose during the previous phases and the Product Owner takes their propositions into consideration.

Afterwards, the Agile software development lifecycle phases start anew — either with a new iteration or by moving toward the next stage and scaled Agile.

What is SAFe Agile?

Scaled Agile Framework (SAFe) is a tool that is used to scale and implement an agile framework for larger organizations.

Full SAFe Agile Framework

Why was it created?

When an organization needs to expand beyond a single team and still maintain its agile system of working, SAFe comes into play. It helps multiple teams working in an agile setting to collaborate with one another.

SAFe principles

SAFe mainly relies on agile and lean practices and by using the principles from these frameworks, it forms its own principles. Some of these principles are as follows:

  • Take an economic view: This entails that the product delivered to the customer must be of great quality and should be delivered in the shortest, yet achievable time possible
  • Build incrementally with fast, integrated learning cycles: This allows the organization to attain user feedback promptly and does not leave all the testing and changes to the end of the product delivery
  • Unlock the intrinsic motivation of knowledge workers: This gives freedom to the employees working in the organization that encourages them to perform to their full capacity
  • Decentralize decision-making: This allows the team working on a specific feature to make their own decisions, making the overall process faster

Know more

https://www.scaledagileframework.com

https://www.scaledagileframework.com/safe-lean-agile-principles/

Essential SAFe Agile Framework

When to use SAFe

Not every enterprise requires SAFe, but here are some tell-tale signs indicating that it might:

  • You’re already working within the Agile practices, and there’s an immediate need for scaling up the teams, but you can’t predict the changes in roles.
  • Several of your teams have developed internal dependencies and are delaying delivery for each other.
  • You need to align product vision between enterprise and team level so that it can transform into value.
  • Your distributed agile teams consistently run into synchronization issues or request more autonomy.
  • You need to boost productivity and shorten the delivery time for a rapidly growing enterprise across multiple teams.

And here’s another thought: before choosing to go with SAFe, consider other Agile scaling frameworks.

LeSS

The Large-Scale Scrum (LeSS) framework is most efficient with scaling multiple teams that work on the same product. With its two configurations, Basic LeSS for two to eight teams (10–50 people) and LeSS Huge for over 6000 people, it introduces multiple changes to the standard scrum practices. For instance, teams in LeSS are cross-functional: in addition to developers and testers, they may include architects, UI/UX specialists, business analysts, and they must be able to develop both backend and frontend features. This provides for more autonomy and increased responsibility within teams.

Nexus

Another Scrum-based methodology, this framework is intended for three to nine teams that consist of three to nine people. By keeping everything compact and in check, the Nexus framework offers an excellent solution for smaller projects. All teams work on producing a common presentable increment at every sprint. Ideal for small and medium-sized projects, but not so much potential for scaling up further.

What is Lean Methodology?

At its core, Lean is a business methodology that promotes the flow of value to the customer through two guiding tenets: continuous improvement and respect for people.

Often, the best ideas come from the people with their hands on the product. In most organizations, decisions are made at the top of the organization and trickled down to the frontline. Lean thinking encourages allowing everyone, especially those closest to the product and the customer, to have an equal voice, to ensure that the voice of the customer, and those doing the work, is heard.

Lean leadership empowers employees with the autonomy to make decisions, the opportunity to master their craft and the purpose (the “why” behind the work) to understand the value of their efforts. The role of the leader is to define the goal at hand and then allow their talented employees to discover the most appropriate course of action toward that goal.

The Lean Principles are:

  • Eliminate Waste
  • Build Quality
  • Create Knowledge
  • Show Responsibility
  • Deliver Fast
  • Respect People
  • Optimize As A Whole

How is Agile and Lean related?

Approach to speed and iteration, a method for putting customers first; while Lean teams also aim to let the voice of the customer drive decision-making, they put equal emphasis on streamlining their processes as a way of putting their customers first.

Overall, these values correspond with the Agile methodology pretty well and can be used to supplement it if questions arise.

Role of Discipline

Although far less regimented than its predecessors, most Agile implementations are still much more structured than Lean practices. They rely on:

  • Defined roles
  • Structured meetings
  • Estimation techniques
  • Systematic reviews

and other disciplined project management practices to ensure that the system works. Although shared principles are important to Agile implementations, a disciplined process is what allows Agile teams to move and adapt to change quickly.

Lean thinking also relies on discipline, but in a different way. Successful Lean implementations are typically those in which Lean principles and Lean thinking have become a part of an organization’s culture. Therefore, discipline in Lean is less about upholding external expectations and rules, and more about each individual and team buying into and upholding the same Lean principles, which allow the system to operate smoothly and efficiently.

Role of Respect

At the end of the day, Lean principles are rooted in respect: Respect for the customer, respect for fellow employees, respect for the current and future state of the organization. This is what makes Lean easier to implement in theory but often far more challenging to implement in practice, especially across larger organizations.

Differences in Agile and Lean

The main difference is that the Agile methodology is about the optimization of a development process, while the Lean method is about the optimization of a production process.

In production, we generally have a predefined product and we want to produce as many high-quality products as possible, in the most economical way possible. Variation and rework are negative and expensive, while in a development process they are good and optimal. Indeed, in the development process, the factors are continuously reviewed and are changed according to new information or feedback.

It is no coincidence that Lean Management was born in the industrial sector with the intention of making production systems more efficient, while the Agile methodology was born in the creative and software development environment with the intention of making the development faster and adjust to change early.

In Lean, it is important that processes work in such a way that no waste occurs. This ultimately translates into a final product that is produced as efficiently as possible.

In Agile, instead, the prototypes are developed, tested, and evaluated in order to then develop the final product.

Which is better

The Lean methodology is often applied to improve processes in all organizations. On the other hand, the Agile methodology is applied within a team or group of teams, often each team composed of 5–9 people.

It is difficult to say which methodology is better. This is something that people must understand for themselves and also depends on the organization and the type of project that must be developed. Both methods are strictly interconnected, everything revolves around the focus on customers and giving them the product they want in the most efficient way possible.

A project management software or tool should not force in one methodology but should let you use both, managing even different projects in a different way. Agile DevOps Boards allow you to do both while other popular tools like Jira, smartsheet, Kisflow, Nifty, and many others allow doing

Photo by Jo Szczepanska on Unsplash

What is Kanban

Kanban project management is a type of Agile methodology that seeks to improve the project management process through workflow visualization using a tool called a Kanban board. A Kanban board is composed of columns that depict a specific stage in the project management process, with cards or sticky notes representing tasks placed in the appropriate stage. As the project progresses, the cards will move from column to column on the board until they are completed.

A key difference between Kanban and other Agile methodologies, such as Scrum, is that there are typically limitations regarding how many tasks can be in progress at one time. Project management teams will typically assign a specific number of tasks to each column on the board, which means that new tasks cannot begin until others have been completed.

Photo by stock.adobe.com

Tools to manage Agile

Azure DevOps Boards

Scrum ready — Track work with built-in scrum boards and planning tools to help your teams run sprints, stand-ups, and planning meetings.

Kanban boards, backlogs, team dashboards, and custom reporting to have the perfect home for all your ideas–big and small.

Jira

Plan, track, work — It handles all kinds of issues (bugs, features, enhancements, and tasks) and can be used for bug tracking, development help, project management, or group task cataloging.

Smartsheet

From task management to complex portfolio management, Smartsheet enables project management professionals to streamline workflows, eliminate silos, and achieve more.

Monday

The complete toolkit for every project. Take your team’s project management to the next level with customizable features that help you plan, strategize, and deliver your best work.

Kissflow Project

is a collaborative project management tool built especially for teams that want to get more done. Kissflow Project is designed with a focus on collaboration and coordination and cutting down all the unnecessary tracking

Nifty

is an easy to use, yet powerful project management software for managing projects, tasks, and client work. Nifty splits things into timelines, workloads, and deliverables, making it easy to gauge where you are at a glance.

Conclusion

OSI’s Project Execution Approach — Hybrid — Lean Agile

Based on the requirement of the project/client, OSI is capable of adapting to a hybrid engineering process which will give much better control on the project at each level. The initiation and design phase will follow waterfall methodology; however, the development and UAT phase will follow agile methodology.

Traditional Project Management (waterfall)

  • Project plan with phases
  • Milestones and deadlines
  • Project risks and mitigation

Lean Agile Methods

  • Implementation based on user stories
  • Parallel, deferred implementation
  • Function-centered development
  • continuous improvement and respect for people.

Advantages of OSI Hybrid (waterfall + lean agile) Model

  • Faster and flexible time-to-market
  • Influence in real-time
  • Better overview of project status and issues

Managing a Product and Solution @ OSI

Product Management is responsible for defining and supporting the building of desirable, feasible, viable, and sustainable products that meet customer needs over the product-market lifecycle.

Solution Management is responsible for defining and supporting the building of desirable, feasible, viable, and sustainable large-scale business solutions that meet customer needs over time.

References

Content provided in this blog is for educational purposes only. Any similarity with what you read before is purely coincidental. All trademarks, service marks, and company names used are the property of their respective owners. Images courtesy: stock.adobe.com, unsplash.com

--

--

Satish Velagapudi
Satish Velagapudi

Written by Satish Velagapudi

Product Ownership, User Experience Engineering @ OSI Digital

No responses yet