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

PM Assignment 1

The document discusses four agile methodologies: Test-driven development, Feature Driven Development, Extreme Programming, and Scrum. For each methodology, it defines the key roles and processes. Test-driven development focuses on writing test cases before code and iteratively testing and refactoring. Feature Driven Development plans work in small iterations by prioritized features. Extreme Programming emphasizes pair programming and frequent code reviews. Scrum uses fixed-length sprints for planning, daily stand-ups, demos, and retrospectives. The document also compares traditional and agile project management, noting agile is more adaptive by allowing changes during development through incremental work in sprints.

Uploaded by

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

PM Assignment 1

The document discusses four agile methodologies: Test-driven development, Feature Driven Development, Extreme Programming, and Scrum. For each methodology, it defines the key roles and processes. Test-driven development focuses on writing test cases before code and iteratively testing and refactoring. Feature Driven Development plans work in small iterations by prioritized features. Extreme Programming emphasizes pair programming and frequent code reviews. Scrum uses fixed-length sprints for planning, daily stand-ups, demos, and retrospectives. The document also compares traditional and agile project management, noting agile is more adaptive by allowing changes during development through incremental work in sprints.

Uploaded by

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

Project Management

Assignment #1

NAME: MUHAMMAD WAQAS KHAN


ID: 4482
SUBMITTED TO: MISS FAIZA YOUSUF
SESSION: 9-12
Q1 - What is Agile and how is it different from traditional Software Development
methodologies? Is it better, faster or more adaptive?

Traditional methodology follows a sequence of steps i.e. first the requirements from the client
is carefully gathered and documented. Then, the architecture of the software is planned,
designed and then actual coding begins. Then comes the various types of testing and the final
deployment.

Agile came about as a solution to the disadvantages of the traditional methodology. Instead of
a sequential design process, the Agile methodology follows an incremental approach.

Developers start off with a simplistic project design, and then begin to work on small modules.
The work on these modules is done in weekly or monthly sprints, and at the end of each sprint,
project priorities are evaluated and tests are run. These sprints allow for bugs to be discovered,
and customer feedback to be incorporated into the design before the next sprint is run.

Advantages of the Agile Methodology


 The Agile methodology allows for changes to be made after the initial planning. Re-
writes to the program, as the client decides to make changes, are expected.
 Because the Agile methodology allows you to make changes, it’s easier to add features
that will keep you up to date with the latest developments in your industry.
 At the end of each sprint, project priorities are evaluated. This allows clients to add their
feedback so that they ultimately get the product they desire.
 The testing at the end of each sprint ensures that the bugs are caught and taken care of
in the development cycle. They won’t be found at the end.
 Because the products are tested so thoroughly with Agile, the product could be
launched at the end of any cycle. As a result, it’s more likely to reach its launch date.

When should you use Agile methodology?


 When rapid production is more important than the quality of the product.
 When clients will be able to change the scope of the project.
 When there isn’t a clear picture of what the final product should look like.
 When you have skilled developers, who are adaptable and able to think independently.
 When the product is intended for an industry with rapidly changing standards.
So, based on the above statements we can say that agile is more fast, better and adaptive.
Q2 - Does the role of a Project Manager is different while managing Agile projects? What are
its duties now?
Unlike traditional waterfall methods, roles and responsibilities in agile teams are distributed
equitably among all the members on a project and the main distinctive roles in this flatter
environment are those of: team member, scrum master and product owner.

Agile methodology suggest that the time has come for project managers to adapt their existing
role into that of a scrum master or product owner in order to remain relevant in agile teams.

The duties of project managers in agile teams can include:

 Project financials
 Status reporting
 Project governance
 Identification of missing roles and/or resources
 Business stakeholder communication
 Risk communication and management
 Project planning

Q3 - Define the roles and processes in the following Agile Methodologies.

1) Test-driven development (TDD)

It is a method of software development in which unit testing is repeatedly done on source code.


The concept is to "get something working now and perfect it later." After each
test, refactoring is done and then the similar test is performed again. The process is iterated as
many times until each unit is functioning according to the desired specifications. Test-driven
development is part of a larger software design paradigm known as Extreme Programming (XP).

Roles:
In TDD approach both developers and QA use test cases to develop their code and execute test
cases respectively. So, it can be concluded that the major dependency is on test cases. So,
writing test cases that have good coverage of requirements is important for making TDD
successful.

 Beginner Level Tester: able to write a unit test prior to writing the corresponding code.
 Intermediate Level Tester: able to decompose a compound program feature into a
sequence of several unit tests to be written.
 Advance Level Tester: able to "test drive" a variety of design paradigms: object-
oriented, functional, event-drive.
2) Feature Driven Development (FDD)
It is an iterative and incremental software development method that is business requirements-
driven and emphasizes quality through the process with a timely, accurate and meaningful
status reporting and progress tracking for all levels of leadership.
It consists of five stages:

 Develop an overall model – high-level description of the system, including requirements


and domain models.
 Build a feature list based on client-valued functionality.
 Plan by feature – sequence features according to their dependencies
 Design by feature
 Build by feature
All these are executed iteratively for small groups of features selected from the feature list. FDD
uses models for specification (as well as communication) and encourages frequent progress
reporting. Iterations are usually around 2 weeks in length.

Roles
 Project Manager
 Chief Architect
 Development Manager
 System Administrator
 Release Manager
 Testers
 Deployers
 Technical Writer

3) Extreme Programming

It is a discipline of software development based on values of simplicity, communication,


feedback, and courage. It works by bringing the whole team together in the presence of simple
practices, with enough feedback to enable the team to see where they are and to tune the
practices to their unique situation.

Pair programming: two programmers, sitting side by side, at the same machine. This practice
ensures that all production code is reviewed by at least one other programmer, and results in
better design, better testing, and better code.

Roles
 The driver (or less commonly pilot) has hands on with the keyboard and is right there,
banging out the code.
 The navigator (or observer) is sitting alongside with the reference documents making
sure the code is going the right way.

4) Scrum

It is a subset of Agile. It is a lightweight process framework for agile development, and the most
widely-used one.

The Scrum process framework requires the use of development cycles called Sprints. Sprints are
basically fix length iterations which consist of sprint planning, daily stand-up, sprint demo and
sprint retrospective.

It is lightweight, the overhead of the process is kept as small as possible, to maximize the
amount of productive time available for getting useful work done.

Roles

 Product Owner: The most important member of SCRUM development is the


product owner who is responsible for the successful outcome of the product
delivered by the team. This member also serves as the intermediary between the
team and the other stakeholders involved.
 Scrum Master: The Scrum Master acts as a facilitator (not the manager) for the
Product Owner and the team. SM helps the team remain creative and productive
while making sure its successes are visible to the Product Owner.
 Team:  For software projects, a typical team includes a mix of software engineers,
architects, programmers, analysts, QA experts, testers, and UI designers. Each
sprint, the team is responsible for determining how it will accomplish the work to be
completed.

You might also like