1 of 52

Unit 2: �Software Processes �and� Agile Software Development�

Prepared by

Er. Binod Kumar Rajbhar

Er. Binod Kumar Rajbhar

1

8/13/2023

2 of 52

2.1 Software Process Models

  • Software processes are the activities for designing, implementing, and testing a software system.
  • A software process model is an abstraction of the software development process. The models specify the stages and order of a process. So, think of this as a representation of the order of activities of the process and the sequence in which they are performed.
  • A model will define the following:
  • The tasks to be performed
  • The input and output of each task
  • The pre and post-conditions for each task
  • The flow and sequence of each task

Er. Binod Kumar Rajbhar

2

8/13/2023

3 of 52

  • The goal of a software process model is to provide guidance for controlling and coordinating the tasks to achieve the end product and objectives as effectively as possible.
  • There are many kinds of process models for meeting different requirements.
  • We refer to these as SDLC models (Software Development Life Cycle models).
  • The most popular and important SDLC models are as follows:
  • Waterfall model
  • V model
  • Incremental model
  • RAD model
  • Agile model
  • Iterative model
  • Prototype model
  • Spiral model

Er. Binod Kumar Rajbhar

3

8/13/2023

4 of 52

Waterfall Model

  • Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure success of the project.
  • In "The Waterfall" approach, the whole process of software development is divided into separate phases. In this Waterfall model, typically, the outcome of one phase acts as the input for the next phase sequentially.

Er. Binod Kumar Rajbhar

4

8/13/2023

5 of 52

The following illustration is a representation of the different phases of the Waterfall Model.�

Er. Binod Kumar Rajbhar

5

8/13/2023

6 of 52

  • Requirement Gathering and analysis − All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document.

  • System Design − The requirement specifications from first phase are studied in this phase and the system design is prepared. This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture.

  • Implementation − With inputs from the system design, the system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality, which is referred to as Unit Testing.

Er. Binod Kumar Rajbhar

6

8/13/2023

7 of 52

  • Integration and Testing − All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures.

  • Deployment of system − Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market.

  • Maintenance − There are some issues which come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.

Er. Binod Kumar Rajbhar

7

8/13/2023

8 of 52

Advantages

  • Simple and easy to understand and use.
  • Phases are processed and completed one at a time.
  • Works well for smaller projects where requirements are very well understood.
  • Clearly defined stages.
  • Well understood milestones.
  • Easy to arrange tasks.
  • Process and results are well documented.

Er. Binod Kumar Rajbhar

8

8/13/2023

9 of 52

Disadvantages

  • No working software is produced until late during the life cycle.
  • High amounts of risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.
  • It is difficult to measure progress within stages.
  • Cannot accommodate changing requirements.

Er. Binod Kumar Rajbhar

9

8/13/2023

10 of 52

Spiral Model

  • Spiral Model is a risk-driven software development process model. It is a combination of waterfall model and iterative model.

Er. Binod Kumar Rajbhar

10

8/13/2023

11 of 52

  • Planning :

It includes estimating the cost, schedule and resources for the iteration. It also involves understanding the system requirements for continuous communication between the system analyst and the customer

  • Risk Analysis :

Identification of potential risk is done while risk mitigation strategy is planned and finalized

  • Engineering :

It includes testing, coding and deploying software at the customer site

  • Evaluation:

Evaluation of software by the customer. Also, includes identifying and monitoring risks such as schedule slippage and cost overrun

Er. Binod Kumar Rajbhar

11

8/13/2023

12 of 52

Advantage and Disadvantage

Er. Binod Kumar Rajbhar

12

8/13/2023

13 of 52

Iterative Model

Er. Binod Kumar Rajbhar

13

8/13/2023

14 of 52

The various phases of Iterative model are as follows:�

1. Requirement gathering & analysis: In this phase, requirements are gathered from customers and check by an analyst whether requirements will fulfil or not. Analyst checks that need will achieve within budget or not. After all of this, the software team skips to the next phase.

2. Design: In the design phase, team design the software by the different diagrams like Data Flow diagram, activity diagram, class diagram, state transition diagram, etc.

3. Implementation: In the implementation, requirements are written in the coding language and transformed into computer programmes which are called Software.

Er. Binod Kumar Rajbhar

14

8/13/2023

15 of 52

4. Testing: After completing the coding phase, software testing starts using different test methods. There are many test methods, but the most common are white box, black box, and grey box test methods.

5. Deployment: After completing all the phases, software is deployed to its work environment.

6. Review: In this phase, after the product deployment, review phase is performed to check the behavior and validity of the developed product. And if there are any error found then the process starts again from the requirement gathering.

7. Maintenance: In the maintenance phase, after deployment of the software in the working environment there may be some bugs, some errors or new updates are required. Maintenance involves debugging and new addition options.

Er. Binod Kumar Rajbhar

15

8/13/2023

16 of 52

2.2 Process activities

  • Real software processes are interleaved sequences of technical, collaborative, and managerial activities with the overall goal of specifying, designing, implementing, and testing a software system.
  • Generally, processes are now tool-supported. This means that software developers may use a range of software tools to help them, such as requirements management systems, design model editors, program editors, automated testing tools, and debuggers.
  • The four basic process activities of specification, development, validation, and evolution are organized differently in different development processes.
  • In the waterfall model, they are organized in sequence, whereas in incremental development they are interleaved. How these activities ...

Er. Binod Kumar Rajbhar

16

8/13/2023

17 of 52

2.3 Coping with change

  • Change is inevitable in all large software projects.
  • The system requirements change as businesses respond to external pressures, competition, and changed management priorities.
  • As new technologies become available, new approaches to design and implementation become possible. Therefore whatever software process model is used, it is essential that it can accommodate changes to the software being developed.
  • Change adds to the costs of software development because it usually means that work that has been completed has to be redone. This is called rework. For example, if the relationships between the requirements in a system have been analyzed and new requirements are then identified, some or all of the requirements analysis has to be repeated.
  • It may then be necessary to redesign the system to deliver the new requirements, change any programs that have been developed, and retest the system.

Er. Binod Kumar Rajbhar

17

8/13/2023

18 of 52

Two related approaches may be used to reduce the costs of rework:

  1. Change anticipation, where the software process includes activities that can anticipate or predict possible changes before significant rework is required. For example, a prototype system may be developed to show some key features of the system to customers. They can experiment with the prototype and refine their requirements before committing to high software production costs.
  2. Change tolerance, where the process and software are designed so that changes can be easily made to the system. This normally involves some form of incremental development. Proposed changes may be implemented in increments that have not yet been developed. If this is impossible, then only a single increment (a small part of the system) may have to be altered to incorporate the change.

Er. Binod Kumar Rajbhar

18

8/13/2023

19 of 52

two ways of coping with change and changing system requirements:

  1. System prototyping, where a version of the system or part of the system is developed quickly to check the customer’s requirements and the feasibility of design decisions. This is a method of change anticipation as it allows users to experiment with the system before delivery and so refine their requirements. The number of requirements change proposals made after delivery is therefore likely to be reduced.
  2. Incremental delivery, where system increments are delivered to the customer for comment and experimentation. This supports both change avoidance and change tolerance. It avoids the premature commitment to requirements for the whole system and allows changes to be incorporated into later increments at relatively low cost.

Er. Binod Kumar Rajbhar

19

8/13/2023

20 of 52

Agile methods

  • Agile is a time-bound, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver all at once. 
  • The meaning of Agile is swift or versatile.
  • "Agile process model" refers to a software development approach based on iterative development.
  • Agile methods break tasks into smaller iterations, or parts do not directly involve long term planning.
  • The project scope and requirements are laid down at the beginning of the development process.
  • Plans regarding the number of iterations, the duration and the scope of each iteration are clearly defined in advance.

Er. Binod Kumar Rajbhar

20

8/13/2023

21 of 52

Agile Model

Er. Binod Kumar Rajbhar

21

8/13/2023

22 of 52

Phases of Agile Model:

  • Following are the phases in the Agile model are as follows:
  • Requirements gathering
  • Design the requirements
  • Construction/ iteration
  • Testing/ Quality assurance
  • Deployment
  • Feedback

Er. Binod Kumar Rajbhar

22

8/13/2023

23 of 52

1. Requirements gathering: In this phase, you must define the requirements. You should explain business opportunities and plan the time and effort needed to build the project. Based on this information, you can evaluate technical and economic feasibility.

2. Design the requirements: When you have identified the project, work with stakeholders to define requirements. You can use the user flow diagram or the high-level UML diagram to show the work of new features and show how it will apply to your existing system.

3. Construction/ iteration: When the team defines the requirements, the work begins. Designers and developers start working on their project, which aims to deploy a working product. The product will undergo various stages of improvement, so it includes simple, minimal functionality.

4. Testing: In this phase, the Quality Assurance team examines the product's performance and looks for the bug.

Er. Binod Kumar Rajbhar

23

8/13/2023

24 of 52

5. Deployment: In this phase, the team issues a product for the user's work environment.

6. Feedback: After releasing the product, the last step is feedback. In this, the team receives feedback about the product and works through the feedback.

When to use the Agile Model?

  • When frequent changes are required.
  • When a highly qualified and experienced team is available.
  • When a customer is ready to have a meeting with a software team all the time.
  • When project size is small.

Er. Binod Kumar Rajbhar

24

8/13/2023

25 of 52

Advantage(Pros) of Agile Method:

  • Frequent Delivery
  • Face-to-Face Communication with clients.
  • Efficient design and fulfils the business requirement.
  • Anytime changes are acceptable.
  • It reduces total development time.

Disadvantages(Cons) of Agile Model:

  • Due to the shortage of formal documents, it creates confusion and crucial decisions taken throughout various phases can be misinterpreted at any time by different team members.
  • Due to the lack of proper documentation, once the project completes and the developers allotted to another project, maintenance of the finished project can become a difficulty.

Er. Binod Kumar Rajbhar

25

8/13/2023

26 of 52

2.5Agile Development Techniques

  • Agile Software Development is a software development methodology that values flexibility, collaboration, and customer satisfaction.
  • It is based on the Agile Manifesto, a set of principles for software development that prioritize individuals and interactions, working software, customer collaboration, and responding to change.
  • Agile Software Development is an iterative and incremental approach to software development that emphasizes the importance of delivering a working product quickly and frequently.
  • It involves close collaboration between the development team and the customer to ensure that the product meets their needs and expectations.

Er. Binod Kumar Rajbhar

26

8/13/2023

27 of 52

The Agile Software Development process typically consists of the following steps:�

  1. Requirements Gathering: The customer’s requirements for the software are gathered and prioritized.
  2. Planning: The development team creates a plan for delivering the software, including the features that will be delivered in each iteration.
  3. Development: The development team works to build the software, using frequent and rapid iterations.
  4. Testing: The software is thoroughly tested to ensure that it meets the customer’s requirements and is of high quality.
  5. Deployment: The software is deployed and put into use.
  6. Maintenance: The software is maintained to ensure that it continues to meet the customer’s needs and expectations.

Er. Binod Kumar Rajbhar

27

8/13/2023

28 of 52

Agile Software Development

  • Agile Software Development is widely used by software development teams and is considered to be a flexible and adaptable approach to software development that is well-suited to changing requirements and the fast pace of software development.
  • Agile is a time-bound, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver all at once. 

Er. Binod Kumar Rajbhar

28

8/13/2023

29 of 52

Principles:

  1. Highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. It welcomes changing requirements, even late in development.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shortest timescale.
  4. Build projects around motivated individuals. Give them the environment and the support they need, and trust them to get the job done.
  5. Working software is the primary measure of progress.
  6. Simplicity the art of maximizing the amount of work not done is essential.
  7. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

Er. Binod Kumar Rajbhar

29

8/13/2023

30 of 52

Example:

Example: Let’s go through an example to understand clearly how agile actually works. A Software company named ABC wants to make a new web browser for the latest release of its operating system. The deadline for the task is 10 months. The company’s head assigned two teams named Team A and Team B for this task. In order to motivate the teams, the company head says that the first team to develop the browser would be given a salary hike and a one-week full-sponsored travel plan. With the dreams of their wild travel fantasies, the two teams set out on the journey of the web browser. Team A decided to play by the book and decided to choose the Waterfall model for the development. Team B after a heavy discussion decided to take a leap of faith and choose Agile as their development model.

Er. Binod Kumar Rajbhar

30

8/13/2023

31 of 52

The Development plan of the Team A is as follows:

  • Requirement analysis and Gathering – 1.5 Months
  • Design of System – 2 Months
  • Coding phase – 4 Months
  • System Integration and Testing – 2 Months
  • User Acceptance Testing – 5 Weeks

Er. Binod Kumar Rajbhar

31

8/13/2023

32 of 52

The Development plan for the Team B is as follows:

  • Since this was an Agile, the project was broken up into several iterations.
  • The iterations are all of the same time duration.
  • At the end of each iteration, a working product with a new feature has to be delivered.
  • Instead of Spending 1.5 months on requirements gathering, They will decide the core features that are required in the product and decide which of these features can be developed in the first iteration.
  • Any remaining features that cannot be delivered in the first iteration will be delivered in the next subsequent iteration, based on the priority
  • At the end of the first iterations, the team will deliver working software with the core basic features.

Er. Binod Kumar Rajbhar

32

8/13/2023

33 of 52

  • Both the team have put their best efforts to get the product to a complete stage. But then out of blue due to the rapidly changing environment, the company’s head come up with an entirely new set of features and want to be implemented as quickly as possible and wanted to push out a working model in 2 days. Team A was now in a fix, they were still in their design phase and did not yet start coding and they had no working model to display. And moreover, it was practically impossible for them to implement new features since waterfall model there is not reverting back to the old phase once you proceed to the next stage, which means they would have to start from the square one again. That would incur their heavy cost and a lot of overtime. Team B was ahead of Team A in a lot of aspects, all thanks to Agile Development. They also had the working product with most of the core requirements since the first increment. And it was a piece of cake for them to add the new requirements. All they had to do is schedule these requirements for the next increment and then implement them.

Er. Binod Kumar Rajbhar

33

8/13/2023

34 of 52

Advantages:

  • Deployment of software is quicker and thus helps in increasing the trust of the customer.
  • Can better adapt to rapidly changing requirements and respond faster.
  • Helps in getting immediate feedback which can be used to improve the software in the next increment.
  • People – Not Process. People and interactions are given a higher priority rather than process and tools.
  • Continuous attention to technical excellence and good design.
  • Increased collaboration and communication: Agile methodologies emphasize collaboration and communication among team members, stakeholders, and customers. This leads to improved understanding, better alignment, and increased buy-in from everyone involved.
  • Flexibility and adaptability: Agile methodologies are designed to be flexible and adaptable, making it easier to respond to changes in requirements, priorities, or market conditions. This allows teams to quickly adjust their approach and stay focused on delivering value.
  • Improved quality and reliability: Agile methodologies place a strong emphasis on testing, quality assurance, and continuous improvement. This helps to ensure that software is delivered with high quality and reliability, reducing the risk of defects or issues that can impact the user experience.
  • Enhanced customer satisfaction: Agile methodologies prioritize customer satisfaction and focus on delivering value to the customer. By involving customers throughout the development process, teams can ensure that the software meets their needs and expectations.
  • Increased team morale and motivation: Agile methodologies promote a collaborative, supportive, and positive work environment. This can lead to increased team morale, motivation, and engagement, which can in turn lead to better productivity, higher quality work, and improved outcomes.

Er. Binod Kumar Rajbhar

34

8/13/2023

35 of 52

Disadvantages:

  • In case of large software projects, it is difficult to assess the effort required at the initial stages of the software development life cycle.
  • The Agile Development is more code focused and produces less documentation.
  • Agile development is heavily depended on the inputs of the customer. If the customer has ambiguity in his vision of the final outcome, it is highly likely for the project to get off track.
  • Face to Face communication is harder in large-scale organizations.
  • Only senior programmers are capable of taking the kind of decisions required during the development process. Hence it’s a difficult situation for new programmers to adapt to the environment.
  • Lack of predictability: Agile Development relies heavily on customer feedback and continuous iteration, which can make it difficult to predict project outcomes, timelines, and budgets.
  • Limited scope control: Agile Development is designed to be flexible and adaptable, which means that scope changes can be easily accommodated. However, this can also lead to scope creep and a lack of control over the project scope.
  • Lack of emphasis on testing: Agile Development places a greater emphasis on delivering working code quickly, which can lead to a lack of focus on testing and quality assurance. This can result in bugs and other issues that may go undetected until later stages of the project.
  • Risk of team burnout: Agile Development can be intense and fast-paced, with frequent sprints and deadlines. This can put a lot of pressure on team members and lead to burnout, especially if the team is not given adequate time for rest and recovery.
  • Lack of structure and governance: Agile Development is often less formal and structured than other development methodologies, which can lead to a lack of governance and oversight. This can result in inconsistent processes and practices, which can impact project quality and outcomes.

Er. Binod Kumar Rajbhar

35

8/13/2023

36 of 52

Difference between Traditional and Agile Software Development

Traditional Software Development

  • Traditional Software Development is the software development process used to design and develop simple software.
  • It is used when the security and many other factors of the software are not much important.
  • It is used by fresher's to develop the software.
  • It consists of five phases:

1. Requirements analysis

2. Design

3. Implementation

4. Coding and Testing

5. Maintenance

Er. Binod Kumar Rajbhar

36

8/13/2023

37 of 52

Er. Binod Kumar Rajbhar

37

8/13/2023

38 of 52

Advantages of Traditional Software Development

  • Well-Established Methodology: Traditional software development follows a well-established methodology that is widely understood and documented.
  • Clear Requirements: Traditional software development relies on clear and detailed requirements, which helps to ensure that the final product meets the customer’s needs.
  • Structured Approach: Traditional software development follows a structured approach, with clear phases and milestones, which helps to ensure that the project stays on track.
  • Proven Success: Traditional software development has a proven track record of success and is widely used in many industries.
  • Quality Control: Traditional software development typically includes extensive testing and quality control processes, which helps to ensure that the final product is of high quality.

Er. Binod Kumar Rajbhar

38

8/13/2023

39 of 52

Disadvantages of Traditional Software Development

  • Slow Process: Traditional software development can be a slow process, with lengthy planning and design phases.
  • Lack of Flexibility: Traditional software development can be inflexible, with changes to requirements or design difficult to implement once development has begun.
  • High Cost: Traditional software development can be expensive, particularly if the project is large or complex.
  • Limited Customer Involvement: Traditional software development often limits customer involvement to the planning and design phases, which can result in a product that does not fully meet their needs.
  • Limited Innovation: Traditional software development can be conservative and risk-averse, which can limit innovation and the development of new ideas.

Er. Binod Kumar Rajbhar

39

8/13/2023

40 of 52

Agile Software Development

  • Agile Software Development is the software development process used to design complicated software.
  • It is used when the software is quite sensitive and complicated. It is used when security is much more important.
  • It is used by professionals to develop the software. It consists of three phases:

1. Planning

2. Requirement Analysis

3. Designing

4. Implementation

5. Testing

6. Deployment

Er. Binod Kumar Rajbhar

40

8/13/2023

41 of 52

Er. Binod Kumar Rajbhar

41

8/13/2023

Agile Software Development

42 of 52

Advantages of Agile Software Development

  • Flexibility: Agile software development is highly flexible and can easily adapt to changes in requirements, design, and scope.
  • Customer Involvement: Agile software development encourages frequent customer involvement, which can result in a final product that better meets their needs.
  • Continuous Delivery: Agile software development typically includes continuous delivery, which means that working software is delivered to the customer on a regular basis.
  • Collaboration: Agile software development emphasizes collaboration between team members, which can lead to better communication and problem-solving.
  • Early and Frequent Testing: Agile software development includes early and frequent testing, which can help to catch issues and bugs early in the development process.

Er. Binod Kumar Rajbhar

42

8/13/2023

43 of 52

Disadvantages of Agile Software Development

  • Lack of Predictability: Agile software development can be less predictable than traditional methods, with less certainty about the final product and its delivery schedule.
  • Limited Documentation: Agile software development often relies less on documentation, which can make it difficult to track changes and understand the system architecture.
  • Time and Resource Constraints: Agile software development requires a significant commitment of time and resources from all team members.
  • Less Emphasis on Planning: Agile software development often places less emphasis on detailed planning, which can result in scope creep and delays.
  • Resistance to Change: Agile software development requires a significant cultural shift and may be difficult for some team members and organizations to adopt.

Er. Binod Kumar Rajbhar

43

8/13/2023

44 of 52

Difference Between Traditional and Agile Software Development�

Traditional Software Development

  • In this methodology, testing is done once the development phase is completed.
  • It follows a linear organizational expectation structure.
  • It provides less security.
  • Client involvement is less as compared to Agile development.
  • It provides less functionality in the software.
  • It is used by fresher's.
  • It is less used by software development firms.
  • Examples
  • Office productivity suites
  • Data management software
  • Media players 
  • Security programs 

Agile Software Development

  • In this methodology, testing and development processes are performed concurrently.
  • It follows an iterative organizational structure.
  • It provides high security.
  • Client involvement is high as compared to traditional software development.
  • It provides all the functionality needed by the users.
  • It is used by professionals.
  • It is normally used by software development firms.
  • Examples
  • Sky
  • Phillips
  • JP Morgan Chase

Er. Binod Kumar Rajbhar

44

8/13/2023

45 of 52

2.6 Agile Project Management (APM)

  • Agile project management (APM) is an iterative approach to planning and guiding project processes.
  • It breaks project processes down into smaller cycles called sprints, or iterations.
  • Agile project management enables project teams in software development to work quickly and collaboratively on a project while being able to adapt to changing requirements in development.
  • It also enables development teams to react to feedback quickly, so they can make changes at each sprint and product cycle.
  • The main benefit of getting started with Agile project management is its ability to respond to issues that arise throughout the course of the project.
  • Making a necessary change to a project at the right time can save resources and help to deliver a successful project on time and within budget.

Er. Binod Kumar Rajbhar

45

8/13/2023

46 of 52

The 12 principles of Agile project management are as follows:

  1. Early and continuous delivery of software is the highest priority to achieve customer satisfaction.
  2. Teams must be able to change requirements at any point in the development process, even in late stages.
  3. Prioritize continuous creation and deployment of working software in short succession.
  4. Developers must work together with end users and project stakeholders throughout the project.
  5. Team members need to be motivated to support their surrounding environment.
  6. Convey information in development teams through face-to-face conversations, if possible.
  7. Measure progress primarily by progress made on creating working software.
  8. Developers must maintain a constant pace to continue a sustainable development process.
  9. Continuous attention should be given to the quality of software to ensure good design.
  10. Maximize the work done by focusing on simplicity in design.
  11. Teams must be self-organizing to produce the best software.
  12. Teams need to reflect on how to become more effective at regular intervals.

Er. Binod Kumar Rajbhar

46

8/13/2023

47 of 52

The 5 phases of APM

Er. Binod Kumar Rajbhar

47

8/13/2023

48 of 52

The 5 phases of APM

  • There are five main phases involved in the APM process:
  • Envision. The project and overall product are first conceptualized in this phase, and the needs of the end customers are identified. This phase also determines who is going to work on the project and its stakeholders.
  • Speculate. This phase involves creating the initial requirements for the product. Teams will work together to brainstorm a features list of the final product, then identify milestones involving the project timeline.
  • Explore. The project is worked on with a focus on staying within project constraints, but teams will also explore alternatives to fulfill project requirements. Teams work on single milestones and iterate before moving on to the next.
  • Adapt. Delivered results are reviewed and teams adapt as needed. This phase focuses on changes or corrections that occur based on customer and staff perspectives. Feedback should be constantly given so each part of the project meets end-user requirements. The project should improve with each iteration.
  • Close. Delivered results are reviewed and teams adapt as needed. The final project is measured against updated requirements. Mistakes or issues encountered within the process should be reviewed to avoid similar issues in the future.

Er. Binod Kumar Rajbhar

48

8/13/2023

49 of 52

2.7 Scaling Agile Method

  • In many organizations, Agile takes root in software development teams aiming to deliver more value to the customer, faster.
  • While this is a great start, meaningful organizational change comes from scaling Agile: enabling teams across the enterprise to use Agile frameworks and techniques to transform the way work gets done and improve the products or services delivered to end users.
  • Scaling Agile requires extending Agile principles beyond software development and IT to the rest of the business, both horizontally and vertically.
  • Scaling Agile can bring about tremendous benefits at every level of the organization, but it also introduces more challenges than the relatively straightforward process of implementing Agile in a single team.

Er. Binod Kumar Rajbhar

49

8/13/2023

50 of 52

  • Scaling Agile requires extending Agile principles beyond software development and IT to the rest of the business, both horizontally and vertically.

Er. Binod Kumar Rajbhar

50

8/13/2023

51 of 52

What does “scaling Agile” mean?

  • Scaling Agile refers to the process of translating established Agile methods, like Scrum and Kanban, to larger groups of people.
  • Traditional Agile teams, according to the Scaled Agile Framework (SAFe), work best with groups of five to eleven members.
  • As companies see success in these small groups, they often want to replicate it at a larger team, department, or organizational level. That’s where scaling Agile comes in.
  • Scaling Agile is not as simple as applying traditional Agile principles to a larger group of people.
  • The Software Engineering Institute at Carnegie Mellon University identified eight attributes that should be considered when scaling Agile as organizations create programs that implement Agile processes:

Er. Binod Kumar Rajbhar

51

8/13/2023

52 of 52

  1. Team size
  2. Specialization of roles
  3. Iteration length
  4. Synchronized cadence
  5. Release definition
  6. Batch size
  7. Product owner role
  8. User role

Each of these components plays a role in scaling Agile successfully, but getting it “right” is a complex task. For that reason, many enterprises use a scaling Agile framework to guide their efforts.

Er. Binod Kumar Rajbhar

52

8/13/2023