Sepm - Unit - III
Sepm - Unit - III
The Agile Manifesto is a set of values and principles that guide software
development. It prioritizes collaboration, customer satisfaction, and adaptability over
traditional processes and documentation.
Values
Principles
Communicate face-to-face
Keep it simple
1. Creating Tangible Value: Agile places a high priority on creating tangible value
as soon as possible in a project. Customers can benefit from early delivery of
promised advantages and opportunity for prompt feedback and modifications.
2. Planning: The development team creates a plan for delivering the software,
including the features that will be delivered in each iteration.
1. concept
Software Engineering and Project Management 17YCS602 Unit – III
2. inception
3. iteration/construction
4. release
5. production
6. retirement
Step 1: In the first step, concept, and business opportunities in each possible project
are identified and the amount of time and work needed to complete the project is
estimated. Based on their technical and financial viability, projects can then be
prioritized and determined which ones are worthwhile pursuing.
The design and Implementation phase also incorporates other activities such as
requirements elicitation and testing.
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.
The team has put their best efforts into getting the product to a complete stage. But
then out of the blue due to the rapidly changing environment, the company’s head
came up with an entirely new set of features that wanted 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 had not yet started coding and
they had no working model to display. Moreover, it was practically impossible for
them to implement new features since the waterfall model there is not revert to the
old phase once you proceed to the next stage, which means they would have to start
from square one again. That would incur heavy costs and a lot of overtime. Team B
Software Engineering and Project Management 17YCS602 Unit – III
was ahead of Team A in a lot of aspects, all thanks to Agile Development. They also
had a 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
was schedule these requirements for the next increment and then implement them.
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 than
processes and tools.
Continuous attention to technical excellence and good design.
Increased collaboration and communication: Agile Software Development
Methodology 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.
In the case of large software projects, it is difficult to assess the effort required
at the initial stages of the software development life cycle.
Agile Development is more code-focused and produces less documentation.
Agile development is heavily dependent on the inputs of the customer. If the
customer has ambiguity in his vision of the outcome, it is highly likely that the
project to get off track.
Face-to-face communication is harder in large-scale organizations.
Software Engineering and Project Management 17YCS602 Unit – III
Agile is a framework that defines how software development needs to be carried on.
Agile is not a single method, it represents the various collection of methods and
practices that follow the value statements provided in the manifesto. Agile methods
and practices do not promise to solve every problem present in the software industry
(No Software model ever can). But they sure help to establish a culture and
environment where solutions emerge.
The Agile Manifesto, which outlines the principles of agile development, values
individuals and interactions, working software, customer collaboration, and response
to change.
Agile methodologies are increasing day by day in project management due to their
flexibility and ability to adapt to the changes in the requirements of the projects.
Agile is referred to as a project management methodology that is particularly used
to break difficult projects into smaller, more focused chunks so teams can work in
short, incremental phases. There is a wide range of agile tools which are available
in the market that help the teams with planning, visualization, and collaboration
process throughout the journey of software development.
These Agile tools for software development are mostly widely used in the tech
world by the developers which helps them in reducing the risks and maintaining the
efficiency between the teams and also to manage and track the agile projects.
Therefore, in this article a complete overview has been provided about the Agile
software development tools and their main features.
There are multiple Agile tools which are used in Agile Software development and
these tools consist of various features which helps the software developers to
increase the efficiently of the Agile project development. Therefore some of the
most popular Agile tools which are used in Agile Software development are
mentioned below:
Jira is the most widely used Agile tool which is mainly used for issue tracking, bug
tracking and agile project management, it is also used by a large number of clients
and the users all over the world. Jira tool is also used for backlog tracking and
release planning , CI/CD and developer tools integrations.
Software Engineering and Project Management 17YCS602 Unit – III
Features:
Jira offers multiple features such as project tracking, reporting, tracking and
collaborating with the team.
Jira also provides tracking and planning tools which mainly helps the teams to
manage the dependencies, feature the requirements and stakeholders one by
one.
Jira mainly offers issue prioritization and also allows the software testers to
point out the major issues in the software development and products.
ClickUp is one of the most popular agile tools which is used to improve productivity
and this tool also allows the teams to work together on the given tasks and
projects. ClickUp has a user-friendly interface which helps the users to customize
their workspace and with its multiple features it helps the developers
Features:
ClickUp mainly consists of over 15 views which include Board, Timeline, Gantt
chart and so on.
There is also a time tracking feature available to record the time spent on the
task.
Mural is one of the digital collaboration platforms which helps the teams in
providing the functionality for the project planning. It is an easy to use white board
which provides both a collaborative space and the training to enhance the team’s
collaboration abilities. The users of Mural tool can make plans and also coordinate
in a single place.
Software Engineering and Project Management 17YCS602 Unit – III
Features:
Mural tool offers virtual whiteboard which works as a canvas for the team
collaboration with the visual element.
Mural comes with multiple collaboration tools which allow the team members to
work together in a real time.
Kanbanize is a web based tool used in agile tool which increases productivity and
accelerates with the team output. Kanbanize is used to manage the workflow by
using the Kanban method, the customizable Kanban board can sync with any team
requirement.
Features:
Kanbanize offers flexible and customizable Kanban board where the teams can
customize to the fit and their needs.
Kanbanize integrates with GitHub, Jira, Slack and with other multiple tools.
With the help of Kanbanize, teams can personalize the workflow for multiple
projects and teams.
GitHub is another widely used web based platform ideal for project management as
it allows the software development teams to perform the tasks effectively and track
the progress of the task at one place. GitHub allows sharing the tasks and it also
allows collaboration with the other team members.
Features
GitHub helps in safely managing the templates and also repositories of the
codes.
GitHub improves the code writing and increases the safety of the code.
Software Engineering and Project Management 17YCS602 Unit – III
With the help of GitHub easy code hosting and effective team management is
possible.
Monday.com is a Work Operating System which is used to manage all your team’s
work at a place. Monday tool particularly allows the businesses to assign the tasks,
set the budget and monitor the progress and track the projects which further helps
the developers in the agile software development.
Key Features:
Monday consists of automations to save time on the tasks and work in a smart
way.
It integrates with the multiple work tools, such as Gmail, HubSpot or slack
Jenkins is an open source and free automation server ideal for creating, testing and
deploying the software applications, it is one of the most popular automation
servers which is used in the DevOps community. Jenkins is used for automatically
building, testing and deploying the applications whenever the codebase is
modified.
Features:
Jenkins allows the distributed builds to various computers for increase in the
performance.
Jenkins integrates with the different tools used throughout the lifecycle of
software development.
Jenkins supports complex projects which consist of thousands of builds per day.
Shortcut is an agile tool for software development which combines planning and
development for the project into a unified experience, this tool allows you to
develop the ideas through the shortcut docs and collaborate with the design specs,
PRDs and MVPs.
Features:
Shortcut helps the users to view and monitor the work progress through the
Kanban board.
Shortcut integrates with GitLab, Slack and GitHub and completes the overview
of the work progress through the analytics and reporting.
Asana is another popular agile tool for software development which helps the
teams to organise the tasks in a better way and helps in setting the priorities and
deadlines to generate the reports in no time. Asana integrates with more than 100
collaboration tools to keep all the communications at one place.
Features:
Asana helps in setting priorities and deadlines between the team members.
Asana is one of the great tools which integrates with other tools.
Planbox is a type of cloud based agile tool designed for the project managers for all
the businesses to develop a collaborative environment among the team members,
partners and between the customers, it helps the teams to receive the feedback
and quickly adapt to the changes.
Software Engineering and Project Management 17YCS602 Unit – III
Features:
This tool consists of features of analytics and reporting which includes the
charts to visualize the project status.
Software Engineering and Project Management 17YCS602 Unit – III
The extreme programming model recommends taking the best practices that have
worked well in the past in program development projects to extreme levels.
6. A simple design that involves and improves with time is a better approach than
doing an elaborate design up front for handling all possible scenarios.
Some of the good practices that have been recognized in the extreme
programming model and suggested to maximize their use are given below:
Code Review: Code review detects and corrects errors efficiently. It suggests
pair programming as coding and reviewing of written code carried out by a pair
of programmers who switch their work between them every hour.
Testing: Testing code helps to remove errors and improves its reliability. XP
suggests test-driven development (TDD) to continually write and execute test
cases. In the TDD approach, test cases are written even before any code is
written.
Software Engineering and Project Management 17YCS602 Unit – III
Design: Good quality design is important to develop good quality software. So,
everybody should design daily.
XP is based on the frequent iteration through which the developers implement User
Stories. User stories are simple and informal statements of the customer about the
functionalities needed. A User Story is a conventional description by the user of a
feature of the required system. It does not mention finer details such as the
different scenarios that can occur. Based on User stories, the project team
proposes Metaphors. Metaphors are a common vision of how the system would
work. The development team may decide to build a Spike for some features. A
Spike is a very simple program that is constructed to explore the suitability of a
solution being proposed. It can be considered similar to a prototype. Some of the
basic activities that are followed during software development by using the XP
model are given below:
Listening: The developers need to carefully listen to the customers if they have
to develop good quality software. Sometimes programmers may not have the
depth knowledge of the system to be developed. So, the programmers should
understand properly the functionality of the system and they have to listen to the
customers.
Planning Game: XP follows a planning game, where the customer and the
development team collaborate to prioritize and plan development tasks. This
approach helps to ensure that the team is working on the most important
features and delivers value to the customer.
On-site Customer: XP requires an on-site customer who works closely with the
development team throughout the project. This approach helps to ensure that
the customer’s needs are understood and met, and also facilitates
communication and feedback.
Some of the projects that are suitable to develop using the XP model are given
below:
Projects with tight deadlines: The XP model can be used in projects that have
a tight deadline, as it emphasizes simplicity and iterative development.
2. Design: The team creates only the essential design needed for current user
stories, using a common analogy or story to help everyone understand the
overall system architecture and keep the design straightforward and clear.
3. Feedback: Feedback loops which are constant are among testing as well as
customer involvements which helps in detecting problems earlier during
development.
Costs incurred in changes: Extensive and continuing testing ensures that the
modifications do not impair the functioning of the system. A functioning system
always guarantees that there is enough time to accommodate changes without
impairing ongoing operations.
Business changes: Changes are accepted at any moment since they are seen
to be inevitable.
Production and post-delivery defects: the unit tests to find and repair bugs
as soon as possible.
Scrum is a management framework that teams use to self-organize tasks and work
towards a common goal. It is a framework within which people can address
complex adaptive problems while the productivity and creativity of delivering
products are at the highest possible value. Scrum is a management framework that
teams use to self-organize and work towards a common goal.
Scrum allows us to develop products of the highest value while making sure
that we maintain creativity and productivity.
The iterative and incremental approach used in scrum allows the teams to
adapt to the changing requirements.
Lifecycle of Scrum
Sprint: A Sprint is a time box of one month or less. A new Sprint starts
immediately after the completion of the previous Sprint. Release: When the
product is completed, it goes to the Release stage.
Sprint Review: If the product still has some non-achievable features, it will be
checked in this stage and then passed to the Sprint Retrospective stage.
Sprint Backlog: Sprint Backlog is divided into two parts Product assigned
features to sprint and Sprint planning meeting.
Scrum framework works by dividing the large product into small sub-products.
It’s like a divide and conquer strategy
Scrum framework is not fully described model. If you want to adopt it you need
to fill in the framework with your own details like Extreme Programming
XP), Kanban, Dynamic Systems Development Method (DSDM).
It can be difficult for the Scrum to plan, structure and organize a project that
lacks a clear definition.
The daily Scrum meetings and frequent reviews require substantial resources.