0% found this document useful (0 votes)
7 views

Software Engineering - Agile Software Development

Uploaded by

ficajo8878
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Software Engineering - Agile Software Development

Uploaded by

ficajo8878
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Agility and Agile Process model

•Agility refers to the ability to adapt quickly and efficiently to changing


conditions.
•Agile Process model emphasizes iterative progress, collaboration, and
flexibility.
•breaks projects into small, manageable units called sprints.
•Sprint lasting 1-4 weeks.
•Teams deliver working software at the end of each sprint.
•continuous feedback and improvement.
Popular Frameworks

•Scrum
•Kanban
•Extreme Programming (XP).
Advantage

•The goal is faster delivery, higher quality, and greater customer


satisfaction.
•Agile promotes customer collaboration, responding to change over
following a rigid plan, and values individuals and interactions over
processes and tools.
Agile Manifesto
1. Customer satisfaction through early and continuous delivery of
valuable software.
2. Welcome changing requirements, even late in development.
3. Deliver working software frequently (from a couple of weeks to a
couple of months).
4. Business people and developers must work together daily
throughout the project.
Agile Manifesto
5. Build projects around motivated individuals.
6. Face-to-face conversation is the best form of communication.
7. Working software is the primary measure of progress.
8. Sustainable development, with a constant pace.
Agile Manifesto
9. Continuous attention to technical excellence and good design.
10. Simplicity—the art of maximizing the amount of work not done—is
essential.
11. The best architectures, requirements, and designs emerge from
self-organizing teams.
12. Regularly reflect on how to become more effective, then tune and
adjust behavior accordingly
Extreme Programming
•Extreme Programming (XP) is an agile software development methodology focused on
improving software quality and responsiveness to changing customer requirements.
•It emphasizes practices like pair programming, continuous integration, test-driven
development (TDD), and frequent releases to ensure high-quality code and close
collaboration between developers and clients.
Extreme Programming
•XP promotes simplicity, flexibility, and rapid feedback loops to reduce risks and
deliver functional software quickly.
•Its core values include communication, simplicity, feedback, and courage,
aiming to improve both the development process and the relationships within
the team.
•XP is particularly well-suited for projects with evolving or unclear
requirements.
Scrum Framework
• The Scrum Agile framework is a lightweight, iterative process used for
software development and project management.
• It organizes work into fixed-length sprints (usually 2-4 weeks) to deliver small,
incremental improvements.
• Scrum includes key roles: Product Owner (responsible for the product
backlog), Scrum Master (facilitates the process), and Development Team
(delivers the work).
Scrum Framework
• Key ceremonies are Sprint Planning, Daily Stand-ups, Sprint Review, and Sprint
Retrospective.
•Scrum emphasizes collaboration, flexibility, and continuous
improvement, with a focus on delivering high-value features quickly and
iterating based on feedback to meet evolving customer needs.
Kanban Framework
•Kanban is an Agile framework that focuses on continuous delivery and flow by
visualizing work, limiting work in progress (WIP), and improving efficiency.
•It uses a Kanban board with columns representing stages of the workflow, such
as "To Do," "In Progress," and "Done.“
•Tasks move across the board as work progresses.
Kanban Framework
•The key principles of Kanban include managing flow, making process policies
explicit, and continuously improving through regular feedback loops.
•Unlike Scrum, it does not have fixed iterations or sprints, offering more
flexibility and adaptability for teams to respond to changing priorities and
demands.
Software Project Management
•Software project management involves planning, organizing, and overseeing
the development of software applications to ensure they meet goals,
deadlines, and budgets.
•It includes defining project scope, managing resources, coordinating team
activities, risk management, and maintaining quality standards.
•Key methodologies like Agile, Scrum, or Waterfall guide the process, depending
on project needs.
Software Project Management
•Effective communication and collaboration among stakeholders, such as
developers, clients, and managers, are crucial.
•The manager monitors progress, addresses issues, and ensures the final
product aligns with user requirements and expectations, delivering value
efficiently and effectively.
•Proper management ensures timely, cost-effective, and successful software
delivery.
Management Spectrum
●The Management Spectrum in software engineering refers to the various roles
and responsibilities involved in managing software development projects.
●It encompasses three key dimensions:
○ technical management, which focuses on overseeing software design, coding, and quality assurance

○ people management, which involves team building, motivation, and communication

○ project management, which ensures effective planning, resource allocation, and progress tracking.


Management of People
●managing people spans several key areas:
○ Leadership
○ Communication
○ Team development
●Effective leaders provide clear vision, set expectations, and inspire team
collaboration.
●Communication is crucial for aligning goals, addressing concerns, and fostering
Management of People
●Managers also focus on skill development, ensuring continuous learning and
professional growth.
●Balancing individual needs with team goals is vital for maintaining productivity
and morale.
●Delegating tasks based on strengths, promoting a culture of feedback, and
managing conflict constructively all contribute to building high-performing
teams that drive software innovation and delivery.
Product management
●It involves overseeing the development, lifecycle, and strategic direction of a
product.
●Product managers act as the bridge between stakeholders, users, and
development teams.
●They gather market and user insights, define product vision and roadmap, and
prioritize features based on business goals, user needs, and technical
feasibility.
Product management
●A key aspect is collaboration—working closely with engineers, designers,

marketing, and sales teams to ensure successful product delivery.


●Product managers act as the bridge between stakeholders, users, and
development teams.
●Product managers also measure product success through metrics, gather
feedback for continuous improvement, and adapt to changing market
dynamics to ensure the product remains competitive and valuable.
Process Management
● It involves defining, optimizing, and controlling the processes used to develop
software.
●It includes planning, monitoring, and improving activities like requirement
analysis, design, coding, testing, and deployment.
●Effective process management ensures consistent quality, efficiency, and
timely delivery.
Process Management
● It also focuses on risk management, resource allocation, and continuous

improvement through methodologies like Agile, Scrum, and Waterfall, helping


teams meet project goals and adapt to changes.
Process Management
● It involves planning, organizing, and overseeing the development of software
projects from inception to completion.
●It includes defining project scope, setting timelines, allocating resources,
managing risks, and ensuring quality control.
●Project managers use methodologies like Agile, Scrum, or Waterfall to guide
teams, track progress, and adjust plans as needed.
● The goal is to deliver the project on time, within budget, and to meet
Example Case Study: Healthcare.gov Launch (2013)
● Scope & Objectives: Aimed to create a portal for Americans to access

health insurance under the Affordable Care Act.

● Methodology Used: The project involved various contractors, but there

were issues with integration and testing, leading to major launch failures.
● Challenges: Poor project management, lack of coordination, and
inadequate testing caused the site to crash.
Example Case Study: Healthcare.gov Launch (2013)
● Successes/Failures: While the site eventually succeeded after repairs, the

initial failure led to delays and budget overruns.


Example Case Study: Healthcare.gov Launch (2013)
● Expected Outcome:

○ Increased Understanding: Gain insight into real-world software


development challenges and solutions.
○ Skills Application: Apply project and process management concepts to
evaluate project performance and derive actionable insights.

W5HH Principle
● Define the key characteristics of a project and create a project plan.

○ Why: Why is the software being built? This question helps define the business reasons

for the project and ensures that the project is aligned with the organization's goals.
○ What: What will be done? This question helps define the scope of the project, including
the specific features and functionalities that will be developed.
○ When: When will it be done? This question helps establish a project timeline, including
key milestones and deadlines.
W5HH Principle
● Define the key characteristics of a project and create a project plan.
○ Who: Who is responsible for each function? This question helps assign responsibilities to
team members and other stakeholders.
○ Where: Where are they organizationally located? This question helps identify the location
of team members and other stakeholders, which can be important for communication and
collaboration.
○ How: How will the job be done technically and managerially? This question helps define
the technical approach and management style that will be used for the project.
W5HH Principle
● Define the key characteristics of a project and create a project plan.
○ How Much: How much of each resource is needed? This question helps identify the
resources required for the project, including people, hardware, and software.
By addressing these questions, the W5HH principle helps project managers gain a clear
understanding of the project scope, identify potential risks, and allocate resources effectively.
It is a valuable tool for ensuring project success.
Case Study: Applying W5HH to a Website Redesign Project

Project: Redesign the company's e-commerce website to improve user experience and
increase sales.

W5HH Breakdown:

1. Why:

○ Increase online sales by 20% within the next year.


○ Improve website's user experience and engagement.
○ Enhance brand image and customer satisfaction.
Case Study: Applying W5HH to a Website Redesign Project

What:

● Redesign the website's homepage, product pages, and checkout process.


● Optimize the website for mobile devices.
● Implement a new content management system (CMS).
● Improve website loading speed and performance.
Case Study: Applying W5HH to a Website Redesign Project

When:

● Project kickoff: January 1st


● Design phase: January 1st - March 15th
● Development phase: March 16th - June 15th
● Testing phase: June 16th - July 15th
● Launch: July 16th
Case Study: Applying W5HH to a Website Redesign Project

Who:

● Project Manager: [Name]


● UI/UX Designer: [Name]
● Web Developers: [Names]
● Content Writers: [Names]
● Quality Assurance (QA) Tester: [Name]
Case Study: Applying W5HH to a Website Redesign Project

Where:

● Remote work for most team members.


● Regular virtual team meetings.
● In-person meetings for critical discussions and planning.
Case Study: Applying W5HH to a Website Redesign Project

How:

● Agile methodology (Scrum or Kanban) for project management.


● Design thinking approach for user-centered design.
● Version control system (Git) for code management.
● Continuous integration and continuous delivery (CI/CD) pipeline for automated testing and
deployment..
Case Study: Applying W5HH to a Website Redesign Project

How Much:

● Budget: $100,000
● Resource allocation:
○ 2 UI/UX designers
○ 3 web developers
○ 1 content writer
○ 1 QA tester
○ 1 project manager
Introduction to Team Management

Team management in software engineering involves leading and coordinating a team of


developers to build and maintain software systems.

Team Structure: Organizing the team into appropriate structures like agile, scrum, or
traditional hierarchical models.
Task Allocation: Assigning tasks to team members based on their skills and workload.
Communication: Fostering effective communication channels to ensure smooth collaboration.
Conflict Resolution: Addressing and resolving conflicts within the team.
Introduction to Team Management

Motivation: Inspiring and motivating team members to achieve project goals.


Performance Management: Evaluating team members' performance and providing feedback.
Mentorship: Guiding and mentoring team members to enhance their skills.

Effective team management is crucial for successful software development projects, as it


directly impacts productivity, quality, and team morale.
Key Aspects of Team Management

Effective team management in software engineering involves:

● Clear Communication: Establishing open and honest communication channels to ensure


everyone is aligned.
● Effective Leadership: Inspiring and motivating the team, providing guidance, and making
sound decisions.
● Task Allocation: Assigning tasks based on team members' skills and workload to optimize
productivity.
Key Aspects of Team Management

● Conflict Resolution: Addressing and resolving conflicts promptly and professionally.


● Performance Management: Regularly evaluating team members' performance and providing
feedback.
● Team Building: Fostering a positive team culture and encouraging collaboration.
● Continuous Learning: Promoting a learning environment and encouraging skill development.
● Adaptability: Responding to changes and challenges in a flexible and agile manner.
Activity: Team Collaboration Exercise

Team Collaboration Exercise

Objective: To foster teamwork, communication, and problem-solving skills.

Activity: Divide into teams of [number] and choose a team leader. Each team will be presented
with a [challenge or scenario].

Task: Collaborate to develop a creative and effective solution within a set time limit. Consider the
following:

● Communication: Active listening, clear articulation, and respectful dialogue.


● Collaboration: Shared responsibility, diverse perspectives, and constructive feedback.
● Problem-solving: Identifying root causes, brainstorming solutions, and selecting the best
Activity: Team Collaboration Exercise

Presentation: Each team will present their solution to the group, explaining their thought process
and decision-making.

Evaluation: Teams will be assessed on their creativity, teamwork, problem-solving, and


presentation skills.

You might also like