Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
24 views

Assignment 02 SP

The document discusses key concepts in agile software development including: - The five values of commitment, courage, focus, openness, and respect that are important for Scrum team success. - The different roles of the Scrum Master and Product Owner and why it is not good for one person to fill both roles. - The differences between a product backlog which contains all development tasks and remains flexible, versus a sprint backlog which is created by the development team and contains only items for the current sprint. - The Agile Manifesto which values individuals and interactions, working software, customer collaboration, and responding to change over documentation, negotiation, plans and tools. It also discusses the 12 principles

Uploaded by

JOSIAH PRATHABAN
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Assignment 02 SP

The document discusses key concepts in agile software development including: - The five values of commitment, courage, focus, openness, and respect that are important for Scrum team success. - The different roles of the Scrum Master and Product Owner and why it is not good for one person to fill both roles. - The differences between a product backlog which contains all development tasks and remains flexible, versus a sprint backlog which is created by the development team and contains only items for the current sprint. - The Agile Manifesto which values individuals and interactions, working software, customer collaboration, and responding to change over documentation, negotiation, plans and tools. It also discusses the 12 principles

Uploaded by

JOSIAH PRATHABAN
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

SENG 34222

Software Process
Assignment 02

Josiah Prathaban
SE/2017/022
Question 01.

01. In the Scrum Guide they mention a team’s success with scrum depends on five values: commitment,
courage, focus, openness, and respect.

1. Commitment - People personally commit to achieving the goals of the Scrum team.
Scrum teams must be able to work together as a unit to achieve a common goal. That means
trusting one another to follow through on their tasks and deliver to the best of their abilities.
This will only happen when each team member is fully committed to the team and the project.

2. Courage - The Scrum team members have courage to do the right thing and work on tough
problems.
Scrum teams must have the courage to be honest, open, and transparent both with
themselves and with stakeholders about the project’s progress and any roadblocks they’re
experiencing. Team members also need the courage to ask for help when it’s needed, to try
new tactics or methods they’re not used to, and to respectfully disagree and have open
dialogue.

3. Focus - Everyone focuses on the work of the Sprint and the goals of the Scrum team.
Sprint is a specified period of time during which team members work to achieve a stated goal. In
order to get the most out of each sprint, each team member must remain focused on the task at
hand as well as how it impacts the sprint goal.

4. Openness - The Scrum team and its stakeholders agree to be open about all the work and the
challenges with performing the work.
For the Scrum team to make the most progress in the shortest time possible, each team
member must be brutally honest and open about their own progress. The purpose of the daily
Scrum meeting is to identify and solve problems. That can’t happen if team members aren’t
forthcoming about issues or roadblocks they’re experiencing. Additionally, team members must
be open to working with their colleagues and view them as valuable contributors to the success
of the project.

5. Respect - Scrum team members respect each other to be capable, independent people.
Respect in a Scrum team means recognizing that no single individual or their contribution is
more valuable than another. Respect also means trusting your fellow team members to fulfill
their tasks, listening to and considering their ideas, and recognizing their accomplishments.

02. Scrum Master and Procut Owner

Procut Owner
Product Owner is responsible for maximizing the value of the product and also for the effective
Product Backlog management. Here are some responsibilities for Product Owners.
• Create and maintain the product backlog.
• Work with the Product Manager to create a product vision and roadmap.
• Collaborate with the Scrum Master to ensure the product's development aligns with its
original vision.
• Ensure the product backlog is updated and available to the entire development team.
• Work across departments and prioritize tasks for the Scrum Master based on
stakeholder needs.
• Evaluate progress throughout the development process.

Scrum Master
The Scrum Master is responsible for the Scrum Team’s effectiveness. They do this by enabling
the Scrum Team to improve its practices, within the Scrum framework. Below are some of the
common responsibilities for the Scrum Master position.
• Plan and execute the Agile Methodology with the Scrum development team.
• Monitor the sprint's progress and remove roadblocks impeding the product's
development.
• Work with the Product Owner to make sure the product backlog is up to date.
• Communicate changes in the product backlog to the development team.
• Motivate the development team to complete tasks on time.
• Report on the success of the sprint.

Why it is not good to have the same person assigned to play the role of “Product Owner” and
“Scrum Master”?
Because The product owner and scrum master are two different roles that complement each
other. If one is not played properly, the other suffers.
The Product Owner is a full-time job, and if they're taking time to perform Scrum Master duties,
they'll have to cut corners when creating the product backlog and managing the development
process. There'll be less room for innovation and more focus on completing tasks before
deadlines. Since the product owner has too much on their plate, the value of your product will
begin to suffer.

03. Product Backlog and Sprint Backlog

Product Backlog Sprint Backlog


Contains all tasks for the development project Contains only the items to complete in the current
Sprint
Created by the Product Owner The development team and Scrum Master create
the list
Flexible, a living document that will change Once set in the Sprint planning meeting it does not
over time change
Independent parent list Dependent on the Product Backlog
Specific to the project goal Specific to the Sprint
Remains until the project is complete Ends when the Sprint ends
Product Owner manages Scrum team manages
Question 02.

01. Agile Manifesto

17 software developers who gathered in Utah, USA, to discuss their ideas and different approaches to
software development. Their smart thoughts were expressed in the famous Agile Manifesto. The Agile
Manifesto consists of 4 foundational values and 12 supporting principles that lead the Agile approach to
software development. Each Agile methodology applies the 4 values in different ways. However, all of
them rely on these values to guide the development and delivery of high-quality, working software.

4 values of the Agile Manifesto

1. Individuals and interactions over processes and tools

It’s crucial to value people more highly than processes or tools. It is the people who respond to
business needs and drive the development process. When the development is driven by the
process or tools, then the team is less responsive to changes and less likely to meet customer
needs.

2. Software over documentation

Documenting the product for development and ultimate delivery required enormous amounts
of time. Technical requirements, specifications, prospectus, testing plans, interface design
documents, and different approvals were required for each. There were long delays in
development. Agile values documentation, but it values working software more.

3. Customer collaboration over contract negotiation

Negotiations are important. It’s about the period when customers and a product manager work
out the details of a delivery with all the details. However, collaboration is a different creature
entirely and it really matters.

According to Waterfall, customers negotiate the requirements for the product, often in great
detail, prior to any work starting. The Agile Manifesto describes a customer who collaborates
throughout the development process, making. It’s easier for development to meet their needs
of the customer.

According to Agile methods, the customer may be included at intervals for periodic demos, but a
project could just as easily have an end-user as a daily part of the team.

4. Responding to changes over following a plan

Traditional software development regarded change as an expense. It was to be avoided.


According to Agile, the shortness of an iteration means priorities can be shifted from iteration to
iteration and new features can be added into the next iteration. Changes always improve a
project and provide additional value.

12 principles of Agile development

These principles can guide us define whether or not we are being Agile.

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.
2. Welcome changing requirements, even late in development. Agile processes harness change for
the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter timescale.
4. Businesspeople and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need
and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development
team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should
be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
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. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts
its behavior accordingly.

02. Time boxing

A timebox is a time limit placed on a task or activity. A timebox in Agile determines when a team must
do something, minimizing risk by implementing careful estimation techniques and project planning to
achieve successful outcomes.

03. Backlog refinement/grooming

Backlog grooming is a regular session where backlog items are discussed, reviewed, and prioritized by
product managers, product owners, and the rest of the team. The primary goal of backlog grooming is to
keep the backlog up-to-date and ensure that backlog items are prepared for upcoming sprints.

• removing user stories that no longer appear relevant


• creating new user stories in response to newly discovered needs
• re-assessing the relative priority of stories
• assigning estimates to stories which have yet to receive one
• correcting estimates in light of newly discovered information
• splitting user stories which are high priority but too coarse grained to fit in an upcoming
iteration

Benefits of backlog grooming

• Keeps the backlog clean


• Keeps the backlog relevant
• Keeps the whole product team up to date
• Increases work velocity

Question 03.

01. DevOps

DevOps describes a culture and set of processes that bring development and operations teams together
to complete software development. It allows organizations to create and improve products at a faster
pace than they can with traditional software development approaches. And it’s gaining popularity at a
rapid rate.

Here are the reasons why the industry has been so quick to adopt DevOps principles:

• Shorter Development Cycles, Faster Innovation


• Reduced Deployment Failures, Rollbacks, and Time to Recover
• Improved Communication and Collaboration
• Increased Efficiencies
• Reduced Costs and IT Headcount

02. Roles and responsibilities of DevOps Engineer

A DevOps engineer works with diverse teams and departments to create and implement software
systems. People who work in DevOps are experienced IT professionals who collaborate with software
developers, quality assurance professionals, and IT staff to manage code releases.

DevOps engineer’s responsibilities include:

• Documentation: Writes specifications and documentation for the server-side features.


• Systems analysis: Analyzes the technology currently being used and develops plans and
processes for improvement and expansion. The DevOps engineer provides support for urgent
analytic needs.
• Development: Develops, codes, builds, installs, configures, and maintains IT solutions.
• Project planning: Participates in project planning meetings to share their knowledge of system
options, risk, impact, and costs vs. benefits. In addition, DevOps engineers communicate
operational requirements and development forecasts.
• Testing: Tests code, processes, and deployments to identify ways to streamline and minimize
errors.
• Deployment: Uses configuration management software to automatically deploy updates and
fixes into the production environment.
• Maintenance and troubleshooting: Performs routine application maintenance to ensure the
production environment runs smoothly. Develops maintenance requirements and procedures.
• Performance management: Recommends performance enhancements by performing gap
analysis, identifying alternative solutions, and assisting with modifications.
• Management: Depending on the size of the organization, the DevOps engineer may also be
responsible for managing a team of DevOps engineers.

03. Tools use in DevOps

Source code management and build tools

• Git: Distributed source code management and version control system


• Jira: Issue and project tracking platform
• SonarQube: Automated code review tool
• Gradle: Multi-language build automation tool

Containerization platforms

• Docker: Open-source containerization platform


• Kubernetes: Automated container-orchestration platform

CI/CD and deployment tools

• Jenkins: Open-source automated CI/CD server


• Bamboo: Commercial automated CI/CD server
• Octopus Deploy: Automated deployment and release management platform

Configuration management tools

• Puppet Enterprise: A platform-independent configuration management platform


• Ansible: A YAML-based configuration management tool

Cloud DevOps tools

• Azure DevOps Services: Microsoft’s cloud-based integrated DevOps platform


• AWS DevOps: Amazon’s cloud-based DevOps toolkit

Monitoring and error reporting platforms

• Raygun: Error monitoring and crash reporting platform


• Nagios: Infrastructure monitoring system

Ref: https://raygun.com/blog/best-devops-tools/
Docker

It’s widely regarded as one of the most important DevOps tools. Docker has made containerization
popular in the tech world, mainly because it makes distributed development possible and helps
automate the deployment process. It isolates applications into separate containers, so they become
portable across environments and more secure. Docker apps are OS- and platform-independent. We can
use Docker containers instead of virtual machines such as VirtualBox. With Docker, we don’t have to
worry about dependency management. We can package all dependencies within the app’s container
and ship the whole thing as an independent unit. Then, we can run the app on any machine or platform
without a headache.

GIT

Git is one of the most popular DevOps tools, widely used across the software industry. It’s a distributed
SCM (source code management) tool, loved by remote teams and open-source contributors. Git allows
us to track the progress of our development work. We can save different versions of our source code
and return to a previous version when necessary. It’s also great for experimenting, as we can create
separate branches and merge new features only when they’re ready to go.

Kubernetes

Kubernetes is a container orchestration platform that takes container management to the next level.
Kubernetes works well with Docker or any of its alternatives to help us group our containers into logical
units. We may not need a container orchestration platform if we have only a few containers. However,
it’s the next logical step once we reach a certain level of complexity and need to scale our resources.
Kubernetes allows us to automate the process of managing hundreds or thousands of containers.

Jenkins

Jenkins is one of the most popular DevOps automation tools in the market. It’s an open-source CI/CD
server that allows us to automate the different stages of our delivery pipeline. The main reason for
Jenkins’ popularity is its huge plugin ecosystem. With more than 1,800 plugins, it integrates with almost
all DevOps tools, including Docker, Puppet, Octopus Deploy, and more. With Jenkins, we can set up and
customize your CI/CD pipeline according to our own needs. With Jenkins, we can iterate and deploy new
code as quickly as possible. It also allows you to measure the success of each step of your pipeline. You
can use it either as a simple CI server solely on the development side or as a complete CI/CD solution
that also takes care of our deployment workflow.

You might also like