Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 22

Agile Software Development Lab Vaidehi Verma

BTCS-711-18 1916533

Practical : 1
AIM :- Understanding the background and driving forces for taking an
agile approach to software development.

Introduction :- Agile was initially developed for the software industry in order to improve
and streamline the development process in a bid to quickly identify and adjust for defects and
issues. It offers a way for teams and developers to deliver a better project, faster, through
short, iterative sprints/sessions. And with many companies moving to the digital workplace,
agile is an excellent fit for the organizations looking to transform the way they manage .

The Agile software development paradigm is a software development methodology


comprising practices and approaches that thrive on iterative and incremental software
development. In this development methodology, the requirements – as well as the solutions –
evolve through collaboration amongst self-organizing, cross-functional programmer teams
that may not or may not be collocated or remote.

The Agile approach fosters adaptability, evolutionary development, and delivery, as well as a
time-bound, iterative approach and quick response to change. Agile promotes adaptive
planning, evolutionary growth, early delivery, and continual improvement.

The principles of Agile Software Development is :

1. Delivery of projects frequently, from a few weeks to a few months, with greater
preference to shorter timescales.
2. Embrace any changing requirements, even when it is late in project development.
Agile ’s processes leverage change for a customer’s competitive advantage.
3. Developers and stakeholders must collaborate and work together through the entire
project.
4. Build your projects around motivated personnel. Accord them the support and
environment they need and trust that they will get everything done.
5. A face-to-face conversation is the most efficient way of conveying information to
and within the development team.
6. A final working product is the real measure of project success.
7. Agile processes help promote sustainable development. The developers, sponsors,
and users must maintain the constant pace indefinitely.
8. Agility is greatly enhanced through the continuous attention to good design and
technical excellence.
9. Simplicity, which is the art of maximizing the amount of incomplete work, is vital.

1
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

10. The best designs, requirements, and architectures come from self-organizing teams.
11. At some regular intervals, the team should reflect on how they can become more
productive, then adjusts and tunes its behaviour appropriately.

Task 2 : Build

Figure :1

Driving Forces for taking an agile approach to software development –

1. Satisfied customers :- By involving customers in the development process, Agile teams


keep them in the loop and show that they value their opinion. 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. These tailor-made deliverables will likely improve the
overall user experience and boost customer retention.

2. Adaptability :- The central theme of Agile is flexibility. Agile teams are responsive to
change, even at the last minute, and can adapt to it without much disruption. Project
deliverables are not set in stone, so teams can easily reassess their plans and adjust their
priorities to align with updated goals. Being adaptable means teams can deliver consistently
and manage clients’ changing requirements effectively.

2
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

3. Improved quality :- Agile methodologies use an iterative approach to project


management, meaning processes are improved upon each time an interval is repeated. This
consistent focus on improvement .

4. Predictability :- Agile teams work in short time periods, sometimes referred to as sprints.
These fixed durations (e.g., two weeks) make it easier for project managers to measure team
performance and assign resources accordingly. It is also easier to predict costs for shorter
time periods than for a long-term project, simplifying the estimation process. 

5. Reduced risk :- Developers regularly assess progress during sprints, meaning they have
better visibility into the project and can spot potential obstacles quickly. These minor issues
can be tackled before they escalate, creating an effective risk mitigation process and giving
the project a greater chance of success.

6. Better communication :- Agile teams prioritize face-to-face communication and


continuous interaction. They will usually conduct daily meetings to ensure everyone is on the
same page and working towards the same objectives. By regularly communicating with each
other, they eliminate potential confusion to successfully achieve their objectives. 

It is clear that the Agile methodology offers plenty of benefits to teams in software
development and other sectors.

7. Superior quality product :- In Agile project management, testing is an integrated part of the
project execution phase which means that the overall quality of the final product is greater. The
client remains involved in the development process and can ask for changes depending on the
market realities. Since Agile is an iterative process, self-organizing teams keep on learning and
growing with time and continue improving.
8. Improved team morale :- As Agile teams are self-organized and self-managing, they have
increased autonomy and authority over their decisions. The project manager shields the team
from interference from sponsors and management.
The cross-functional nature of the teams also helps the members learn new project management
skills and grow in their current roles. The team gets together frequently to discuss challenges
and statuses letting them collaborate better. Since the team size is limited, Agile provides an
environment where teams are close-knit and can have flexible team structures.

3
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

9. More relevant metrics


The metrics used by Agile teams in estimating time and cost, measuring project performance are
more accurate and relevant than the ones used in traditional methodologies. Agile emphasizes on
producing results and optimizing performance while the metrics in Waterfall methodology show
how closely the project is tracking against the estimated cost and time.

Agile produces important metrics like lead time, cycle time, and throughput that helps measure
the team’s performance, identify bottlenecks and make data-driven decisions to correct them.

The Agile framework is a powerful tool that helps managers, team members, and clients. From
improving the quality of the product to helping in the professional development of the team
members, the benefits of Agile are numerous. It helps teams overcome pitfalls like excessive
costs and scope creep.

Project visibility & transparency :- Compared to traditional project management approaches,


Agile makes the project visible to all stakeholders the entire time, not only at the beginning
and towards the end. Everyone can clearly observe the progress that is being made in the
project and feedback it instead of waiting for the project to be finished. Also because Agile
somewhat relies on the client’s involvement throughout the project: from features
prioritization, through weekly meetings up to review sessions, it also provides a superior
level of transparency for all parties involved.

Figure 2: Agile Development

4
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Practical : 2
AIM : Build out backlogs and user stories.
Topic : LIBRARY MANAGEMENT
Student Module :
TASK 1 : To enrolled in the library for the authentication of book issue.
TASK 2: Provide details / attributes oof books , like name of book with the book number
which are available in the library so that student can borrow the required book from library.
(for example : RD Sharma Book with Book no – M54) .
TASK 2 : - To understand the policies for borrow and return the of book on time.

Library Manager Module :


TASK 1 : To access the details of the book , available in the library .
TASK 2 : To verify the enrolled student for the authentication of book issue.
TASK 2 : To establish borrow and return policies and procedures for the issue of book

Visitor Module :
TASK 1: To view the books they want to read .

TASK NO. PRIORITY


1. As a<Library I want So that<I can 1
Manager> to<Access Book issue the
Details> books.>

2. As a<Library I want So that<Book 1


Manager > to<Verify issued only to
enrolled authenticated
student> student.>
3. As a<Library I want to< So that<Proper 1
Manager> Establishing book
policies and acquisition, and
procedures for circulation is
book issue> performed.>

5
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

4. As a<Student > I want So that<I can 1


to<Enrolled> get access to
study the
book.>
5. As a<Student> I want So that<I can 1
to<borrow book study>
>

6. As a<Visitor> I want <Entry So that<I can 2


Permission> read book in the
Library>

6
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Practical 3
AIM : TO Study and use AUTOMATED build tool.
NAME OF THE AUTOMATED BUILD TOOL : ASANA
STEP 1 : DEFINING AND SCHEDULING A NEW TASK
1. Go to New Task module of the ABANA tool
2. Add new task by clicking on “+” sign .
3. The start date and the end date of each task can also be set here .
4. Tasks can be defined and viewed in three different ways in this tool , these ways are :

Figure:1

7
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Figure : 2

Figure : 3

8
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Practical : 4
AIM : To study version control tool.
Version Control : A version control system, or a version control tool or version history, is
used to store and track the developer’s changes over time. As the development environments
have accelerated, version control systems are designed to help the software
development teams to work faster. These systems are handy for the DevOps team as they
help them reduce the development time and enhance the quality of successful deployments.

Version control is absolutely essential for modern software development, regardless of the
size of the project and its state of agile or DevOps adoption.

Version Control Tool :- Version control tools provide an organized way to track changes
over time. They record changes so that specific versions can be recalled later, synchronize
versions to make sure that team members don’t make different code changes, and provide
process enforcement and permissions. 

Key features of an ideal version control tool include:


1. Complete change history of every file
2. Branching and merging
3. Traceability
4. Conflict resolution
5. Rollback source code
6. Off-site source code backup (if using centralized version control)
In general, you will also want to consider 3rd party integrations, whether the tool
encompasses collaboration and messaging, and metrics capture and analysis. 

Benefits of Version Control Tools:-


Version control tools allow everyone on the team to work and collaborate freely on any file at
any time. Changes and updates are in no danger of being overwritten, and team members
don’t have to wait for others to finish before working on a file. In addition, version control
tools save versions in a well-structured and organized manner. Thorny issues like how much
to save, how to name the versions, and how to document the changes are all side-stepped by
the fact that version control only allows for one version. That version becomes the single
source of truth for all team members, so that they can consistently get a snapshot of the
complete project. 

9
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Example of Version Control Tool :-

1].CloudBees CI :-
CloudBees CI is a cloud-native solution that can be hosted on-premise or in the public cloud
used to deliver CI at scale. It provides a shared, centrally managed, self-service experience
for all development teams running Jenkins. The pipeline policy enforcement for modernized
pipelines helps design secure CI/CD, including security features that integrate as DevSecOps
pipeline

Figure:1
2].AWS CodePipeline:-
AWS CodePipeline is a continuous integration and continuous delivery service for
application and infrastructure updates. Setting up a pipeline is easy through the CLI with
stages, actions, and transitions. If all of your code, tools, and infrastructure are in AWS
already, CodePipeline is your best option to create pipelines.

Figure : 2

3].CA Harvest Software Change Manager


This tool provides functionalities for the release process like maintaining the version release
of a specific patch or feature using a package-based deployment. It can be configured as
working state, managed control state, baseline, and production, and those states as dev,
staging, and production for more flexibility.

Figure : 3

10
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

4].Azure DevOps Server


Azure DevOps is an enterprise server for teams to share code, track work, and ship software
for any language, all in a single package. It integrates 3rd party plugins to your pipeline like
connecting to app center, AWS, and other tools, which makes the pipeline seamless. It can be
used for different tasks like saving search queries, logging bugs, making tests, creating user
stories, and building deployments.

Figure : 4

11
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Practical : 5
AIM : Introduction to Kanban board.
Introduction : Kanban is a popular framework used to
implement agile and DevOps software development. It requires real-time communication of
capacity and full transparency of work. Work items are represented visually on a kanban
board, allowing team members to see the state of every piece of work at any time.

Kanban board : The work of all anban teams revolves around a kanban board, a tool used to
visualize work and optimize the flow of the work among the team. While physical boards are
popular among some teams, virtual boards are a crucial feature in any agile software
development tool for their traceability, easier collaboration, and accessibility from multiple
locations.

Regardless of whether a team’s board is physical or digital, their function is to ensure


the team’s work is visualized, their workflow is standardized, and all blockers and
dependencies are immediately identified and resolved. A basic anban board has a three-step
workflow: To Do, In Progress, and Done. However, depending on a team’s size, structure,
and objectives, the workflow can be mapped to meet the unique process of any particular
team.

The Kanban methodology relies upon full transparency of work and real-time
communication of capacity. Therefore, the Kanban board should be seen as the single source
of truth for the team’s work.

Basically , a Kanban board is a physical or digital project management designed to help


visualize work , limit work in progress and maximize efficiency.

What Are the Kanban Board Features and Components?

12
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Figure 1:Kanban Board

Kanban boards use Card, Column, Swimlanes, and WIP Limits to enable teams to visualize
and manage their workflows effectively. Let us introduce you to the main components more
closely:

Kanban Board Components:


Kanban Cards – This is the visual representation of tasks. Each card contains information
about the task and its status, such as deadline, assignee, description, etc.
Kanban Columns – Each column on the board represents a different stage of your workflow.
The cards go through the workflow until their full completion.
Work-in-Progress Limits – They restrict the maximum amount of tasks in the different
stages of the workflow. Limiting WIP allows you to finish work items faster by helping your
team focus only on current tasks.
Kanban Swimlanes – These are horizontal lanes you can use to separate different activities,
teams, classes of service, and more.
Commitment Point – A commitment marks a point in the work process where a work item is
ready to be pulled into the system.
Delivery Point – The point in the workflow where work items are considered finished.

Types of Kanban Boards:- There are two types of Kanban boards – physical and digital
boards.  
1.A physical Kanban board is the most basic form of a Kanban board where teams use
sticky notes (representing tasks) and a whiteboard (corkboard). Work phases are represented
as columns and sticky notes are getting moved from one stage to the next. 

Figure2 : Physical Kanban Board

2.A digital Kanban board is a software solution, making it much more accessible than its
physical counterparts. These types of boards can provide you with visibility into the progress
of work from virtually anywhere while facilitating team collaboration. Some digital solutions
are highly flexible, allowing managers to track multiple workflows and organize their work in

13
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

different categories. There are plenty of examples of Kanban boards successfully applied


throughout industries and teams with various backgrounds.

Figure 3 : Digital Kanban Board

Benefits of Kanban Board :


As you implement Kanban, you will be able to start small and step-by-step build sustainable,
long-term improvements in your processes, thus enabling a greater level of productivity,
reduced stress, and enhanced quality, among other benefits. 

 Enhanced visibility 
 Increased productivity 
 Greater flexibility 
 Improved team focus 
 Decreased levels of waste 
 Better collaboration 
 Improved predictability 
 Alignment with company values

How to Use a Kanban Board?


1. Visualize Your Workflow on the Kanban Board
2. Spot Workflow Bottlenecks on the Kanban Board

3. Use the Kanban Board to Limit Work in Progress and Focus

4. Use the Kanban Dashboard to Save Time Wasted on Unnecessary Meetings

5. Visualize Work Blockers on Your Kanban Board

6. Automate Work Processes on Your Agile Kanban Board

7. Collect Key Workflow Metrics and Improve

14
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Working of Kanban Board Implementation:


1]. In this practical, I have used the online ATLASSIAN Kanban tool , the figure below
shows the Home Page of this software .

Figure : 4

2]. Here a new task is defined using this online Kanban tool.

15
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Figure : 5

3]. The tasks could be defined using this tool , the person responsible for the completion of
the task could also be added as shown in the figure below

Figure : 6

16
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

4]. Here I have defined the tasks to be performed , with their priorities and deadlines .
Categorized all tasks in to do , in progress and done.

Figure : 8

5]. Here , the complete Kanban board is ready .

Figure : 9

17
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Practical : 6
AIM : To study Continuous Integration Tool.
Continuous Integration Tool :- Continuous integration, continuous delivery, and continuous
deployment are all closely related terms. Here’s a breakdown of their distinct, contextual
meanings:

 continuous integration — a means of merging new codes changes regularly to the


main branch of source code 
 continuous delivery — a software engineering approach encouraging teams to
produce software in short, intermittent cycles
 continuous deployment — a software release process that relies heavily on
automated testing; each change must pass through all these stages of software
development life cycle.

CI/CD is a shorthand that conveys the aforementioned terminology with ease. And the phrase
is in regular usage within the software realm. 

The main idea of these concepts is that making constant adjustments to a software project
will mean stricter error checking and unbridled improvements along the way. 

Continuous Integration Tools :- Continuous integration tools are able to assess the
stability and correctness of new code for integration.

Continuous integration tools ensure that code is stable and error-free. 

CI tools have a number of benefits. Some of the advantages of continuous integrations tools
include the following:

1. CI tools prevent merge conflicts such as bugs and duplicate code, making for cleaner
code
2. CI tools decrease code review time and ultimately speed up development time
3. CI tools reduce the project backlog
4. CI tools automate time-consuming tasks
5. CI tools allow for continuous feedback meaning a better software product overall

In general, CI tools increase engineering teams’ capacity to build high-quality software by


yielding developers code views, integration tests, and other useful tooling. 

18
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

5 Best Continuous Integration Tools :-

Continuous integration tools can complement a robust ecosystem of software tools that help
meet your business needs. Look below to see what continuous integration tools can fortify
your software development.
1]. Jenkins

Jenkins is one of the most popular open-source tools on the market for automating your
projects. Deployed on a standalone continuous integration server, Jenkins can bolster
scalability for your business by automating testing and finding defects quickly. 

Its popularity likely stems from its rich features and plugins and easy installation through a
WAR file. Jenkins is also free and thus widely accessible. 

Figure : 6.1

2]. CircleCI

CircleCI is a continuous integration tool that is in direct competition with the Jenkins CI/CD
platform. Both Circle and Jenkins are notably popular and claim to do the same things. 

However, CircleCI guarantees faster builds, simplified maintenance, and shorter


feedback cycles. 

With CircleCI, you can scale up to 80x concurrency , meaning you can execute multiple tasks
simultaneously. CircleCI is free, with paid plans starting at $30 per month. 

19
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

Figure : 6.2

3]. Travis CI

Travis CI is a software-as-a-service (SaaS) cloud technology for open-source projects,


enabling development teams to test and ship their apps efficiently.  
This continuous integration platform was actually the first of its kind to offer its service for
free. And despite the costs, you get more than what you pay for. 

The CI tool supports multiple languages and platforms, parallel testing, and seamless GitHub
synchronization. 

Figure : 6.3

4]. Bitbucket Pipelines

Bitbucket Pipelines and Bamboo are both Atlassian products. Though Bamboo was
discontinued some time ago, the name is still used interchangeably with BitBucket Pipelines
which offers similar key features. 

BitBucket Pipelines extends both continuous integration and continuous deployment. As


a result, you do not have to manage servers, synchronize repositories, or configure user
management for your development projects. 

BitBucket Pipelines also integrates with Jira, a software product for bug tracking and agile
project management.

20
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

‘Pipelines’ is a reference to the automated processes DevOps professionals employ towards


efficient deployment. A standard deployment pipeline includes version control,
acceptance tests, independent deployment, and production deployment. 

Figure : 6.4

5]. TeamCity

TeamCity is a product of JetBrains, a Czech software development company well-known for


building popular integrated development environments (IDEs) like PyCharm and IntelliJ. 

Of course, JetBrains does much more than develop IDEs. For instance, TeamCity is a
powerful CI solution that you can use for free for your first 100 build configurations. 

TeamCity’s feature set warrants complete control over your production


environments. Whether you want to run three builds alongside each other or import source
code from two separate version control systems (VCSs), TeamCity can do it all. 

Figure : 6.5

21
Agile Software Development Lab Vaidehi Verma
BTCS-711-18 1916533

22

You might also like