Unit 2
Unit 2
2. Design
● Developing a high-level system architecture.
● Creating detailed specifications, which include data structures, algorithms, and
interfaces.
● Planning for the software’s user interface.
3. Development (Coding)
Writing the actual code for the software.
4. Testing
This phase involves several types of testing:
1. Integration Testing:
2. System Testing:
3. User Acceptance Testing:
4. Performance Testing:
5. Deployment
6. Review (Maintenance)
Need of Agile software development
2. Welcome Change:
● Every changing requirement should be welcome, even in the late
development phase.
● Agile process works to increase the customers' competitive advantage.
3.Deliver the Working Software: Deliver the working software frequently,
ranging from a few weeks to a few months with considering the shortest time
period.
4.Collaboration: Business people (Scrum Master and Project Owner) and
developers must work together during the entire life of a project development
phase.
5.Motivation: Projects should be build around motivated team members.
Provide such environment that supports individual team members and trust
them. It makes them feel responsible for getting the job done thoroughly.
6.Face-to-face Conversation: Face-to-face conversation between Scrum Master
and development team and between the Scrum Master and customers for the
most efficient and effective method of conveying information to and within a
development team.
7.Measure the Progress as per the Working Software: The working software is
the key and primary measure of the progress.
8.Maintain Constant Pace: The aim of agile development is sustainable
development. All the businesses and users should be able to maintain a
constant pace with the project.
9.Monitoring: Pay regular attention to technical excellence and good design to
maximize agility.
10.Simplicity: Keep things simple and use simple terms to measure the work
that is not completed.
11.Self-organized Teams: They should not be depending heavily on other
teams because the best architectures, requirements, and designs emerge from
self-organized teams.
12.Review the Work Regularly: The work should be reviewed at regular
intervals, so that the team can reflect on how to become more productive and
adjust its behaviour accordingly.
Stakeholders and Challenges
1.Stakeholders TYPE
● Internal.
● External.
2.Role of agile to Stakeholders.
3.Agile development stakeholders.
1.Project Sponsors
● Interest primarily
● External stakeholders.
● Provide needful finances.
2.Product Owner
● Core stakeholder
● Story mapping activities and specifies tasks.
● Share his vision.
3.Development Team
● Works in sprints.
● Team discussion.
● Software developers-backlog
● The quality estimation.
4.Project Manager
● Project Manager Roles.
● Necessary information.
5.Business Analysts:
1.Budget and the time,requirements.
6.End user
1.Feedback.
Overview of Agile Development Models
1.Scrum
2.Extreme Programming (XP)
3.Crystal
4.Dynamic Software Development Method (DSDM)
5.Feature Driven Development (FDD)
6.Lean Software Development
7.Kanban
1.Scrum:
● It is an agile development methodology that focuses on task management
within a team-based development environment.
● Small teams.
● Three Team Members
1.Product owner
● A product backlog is a list of the new features.
● Changes to existing features, bug fixes.
● Infrastructure changes.
● Other activities that a team may deliver in order to
achieve a specific outcome.
2.Scrum Master: Sets up the team, holds sprint meetings, and removes
roadblocks to development.
3.Developer and QA.
Advantages of Scrum
● Scrum often leads to scope creep, due to the lack of a definite end-date.
● The chances of project failure are high if individuals aren't very
committed or cooperative.
● Adopting the Scrum framework in large teams is challenging.
● The framework can be successful only with experienced team members.
● Daily meetings sometimes frustrate team members.
● If any team member leaves in the middle of a project, it can have a huge
negative impact on the project.
● Quality is hard to implement until the team goes through an aggressive
testing process.
Extreme Programming (XP)
1. Planning:
● Customer meets the development team
● User stories
● Release plan broken down into iterations
● Spikes
2. Designing:
● A good design brings logic and structure to the system and allows to
avoid unnecessary complexities and redundancies.
3.Coding:
● Coding standards, pair programming, continuous integration.
4.Testing
● Unit tests
● Acceptance tests
5.Listening
● Constant communication and feedback.
Advantage
1 In the Scrum framework, teamwork in iterations is In Extreme Programming(XP), teamwork for 1-2 weeks
called Sprint which is 2 weeks to 1 month long. only.
2 Scrum models do not allow changes in their timeline Extreme Programming allows changes in their set
or their guidelines timelines
4 Scrum does not put emphasis on software Extreme Programming (XP) emphasizes programming
engineering practices that developers should use. techniques that developers should use to ensure a
better outcome.
5 In scrum, the scrum master asks the owner of the In XP, customer decides the job priorities being the
product to prioritize the tasks according to their owner of the product and then analyses the releases
requirements.
Crystal
● Teams have a lot of autonomy to work in the way they deem most
effective.
● Teams communicate directly with each other, reducing management
overhead.
● The framework can adapt as a team grows or shrinks.
Disadvantages of using
❖ Pre-Project:
➢ Planing
➢ Owners can address risk
❖ Feasibility Study:
➢ Meet your goals with the budget
➢ Timeline and technology available
❖ Business Study:
➢ Competes effectively with other organisations
❖ Functional Model Iteration:
➢ Build a prototype
➢ Test and evaluate
➢ Repeat prototype
❖ Design and Build Iteration:
➢ Refine your prototype
➢ Design additional components
❖ Implementation:
➢ Release your project
➢ Users provide feedback.
❖ Post-Project:
➢ Project managers
➢ Planned results with the actual results
Advantages
● Projects are delivered on time, whilst still allowing flexibility
● Progress can be easily understood across the organisation
● Business cases are at the core of the DSDM model, ensuring delivered
projects have real business value
Disadvantages: Large management overhead and costly implementation
makes this unsuitable for small organisations.
Feature Driven Development (FDD)
FDD in Agile encourages status reporting at all levels, which helps to track
progress and results.
E.g “complete the login process” might be considered a feature in the Feature
Driven Development (FDD) methodology.
1. Domain Object Modeling:
a. Clear understanding of the problem domain.
b. The key concepts involved.
c. Visual representation of the system's structure.
Disadvantages of FDD
● This agile practice is not good for smaller projects.
● There is high dependency on lead programmers, designers and mentors.
● There is lack of documentation which can create an issue afterwards.
Lean Software Development
● Lean software development is a concept that emphasizes optimizing
efficiency and minimizing waste in the software development process.
● This approach has its roots in the Lean manufacturing movement of the
1980s.
● E.g Toyota
● It was first adopted in software development in 2003.
1. Eliminating the waste
1. Avoid unnecessary code, delay in processes, inefficient
communication, the issue with quality, data duplication, more
tasks in the log than completed.
2. Regular meetings are held by Project Managers.
2. Fast Delivery
1. Building complex systems with unwanted features
2. MVP strategy
3. Amplify Learning
1. Ample code reviewing, meeting that is cross-team applicable.
2. Paired programming is used.
4.Builds Quality
2. Reduction of WIP
● Ensure maximum efficiency.
● The Limit has been apply on Kanban board one tasks that performed
at once.
● No new task can be pulled.
3. Efficient workflow management:
● Measuring lead time and cycle time. ex.Jira ,Nimble
4. Explicit management policies:
● Project team must know the project goal.
5. Take feedback
● Effective feedback system is extremely important.
● External evaluator or the customers.
Benefits of using Kanban Framework
● Limiting Work in Progress and setting policies will result in a better focus
on quality and, as a result, increased customer satisfaction.
● Use transparency to drive process improvement.
● Minimized Waste.
● Less process overhead.
● A more precise and predictable pace guarantees that team members are
never overburdened.
● Allows for quick reprioritization in order to adapt changes according to
market demand.
● Better task flow.
● The composition of the team can also be changed.
● Helps achieve improved productivity of teams
● Prioritization helps in streamlining processes and workflow.
● Enhanced quality of work
● Reduced queue time
● Reduction of wasted effort
Sr. Kanban Scrum
no
1 Planning, release, and process Iteration is timeboxed.
improvement can have separate
cadences.
2 For planning and process improvement, For planning and process improvement,
the lead time is used as the default Velocity is used as the default metric
metric
3 Cross-functional teams are optional. Cross-functional teams prescribed.
4 Project Tracking: CFD can be used to Project Tracking: Burndown chart is prescribed
understand workflow progress.
5 WIP limited directly (per workflow WIP is limited indirectly (per sprint).
state)
6 Can add new items whenever the WIP Cannot add items to ongoing iteration.
limit falls
The benefits of Agile
1. Satisfied customers
● Stakeholders want to be engaged throughout the project life cycle so
they can offer feedback and ensure that the final product will be suited
to their needs.
2. Improved quality.
● Agile methodologies use an iterative approach.
● This consistent focus on improvement and quality control is one of the
core principles of Agile.
3. Adaptability
● The central theme of Agile is flexibility.
● Deliver consistently and manage clients changing requirements
effectively.
4. Predictability
● Sprints.
● Measure team performance and assign resources accordingly.
● Predict costs for shorter time periods.
5. Reduced risk
● Developers regularly assess progress during sprints.
● Effective risk mitigation process.
6. Better communication
● Face-to-face communication and continuous interaction.
● Conduct daily meetings.
● Eliminate potential confusion to successfully achieve their objectives.