Professional Documents
Culture Documents
Patience Ochanya Egwu Agile Assessment
Patience Ochanya Egwu Agile Assessment
Question 1
What is traditional software development? How is agile different from this? Answer in 500
words or above.
Solution to question 1
Traditional software development methodologies, like Waterfall, V-Model, and RUP, are
and they require a well-defined set of requirements at the beginning of the project[1].
The four stages of traditional software development methods are requirements gathering and
analysis, design and architecture, development, testing and deployment. Each phase has its
own set of deliverable and documentation that must be completed before moving on to the
next phase. The success of a project using traditional software development methods depends
on knowing all the requirements upfront, making it challenging to implement changes during
the development process. However, this approach makes it easier to determine the costs, set a
One of the advantages of traditional software development methodologies is that they provide
a structured approach to software development that can help reduce the risk of failure.
However, they can also be inflexible and may not be suitable for projects where requirements
limited reusability of components, and the potential for inefficiencies and wasted effort if
projects are scrapped. Additionally, traditional methodologies are most suitable for projects
with well-defined and stable requirements, and may not be the best fit for large projects with
Through incremental and iterative development, where each iteration produces a functioning
collaboration, and adapting to changes in strategies, procedures, and tools. Different agile
development methodologies are available, each with its own set of guiding concepts and
procedures. Scrum, Extreme Programming (XP), and Lean Software Development are some
The highest priority for agile development approaches is business Return on Investment
(ROI)[2]. In the traditional development life cycle, development teams typically engage with
stakeholders in the initial stages of the process to gather specific requirements. Subsequently,
the design phase is initiated, followed by the coding phase. Testing is only conducted once all
coding is completed, and the stakeholders are shown the final product only if the testing
phase proceeds smoothly. However, this conventional approach has its drawbacks. One major
limitation is that the system is built as a single entity, resulting in potential setbacks if issues
arise during testing. In such cases, the entire module might need to be rolled back for
troubleshooting. Additionally, the traditional SDLC often fails to accurately capture
stakeholders' desired system features, as their requirements may not be fully known during
the earlier phases. Consequently, the implemented features may not align with stakeholders'
actual needs. After the product is launched and available to users, there may be adjustment
requests from stakeholders, leading to software degradation due to compatibility and integrity
problems resulting from multiple changes implemented by different parties. These issues are
The Agile SDLC follows an iterative approach that avoids the "up-front" requirement
gathering phase of the traditional SDLC. Stakeholders are not required to provide all
requirements in detail at the beginning of a project as they often struggle to choose which
features should be included in the system. Instead, customers can interact with the system
through frequent software demonstrations and releases, which allows them to obtain
sufficient information about the current system release and provide feedback to improve the
requirements provided earlier. The iterative approach of Agile SDLC allows for the start of
work even before all requirements are clear, and customers can postpone decisions until a
later iteration when more data or technology will be available to optimize the option. This
approach enables the team to respond to change quickly, thereby minimizing the risk of
project failure. Agile SDLC, therefore, provides an effective technique from a commercial
standpoint by delivering value to customers early and often, reducing the risk of project
development, where the project progresses linearly through a series of events from
flexible, iterative, and team-centered development. Both approaches aim to enhance the
efficiency of managing software development projects, but they operate in distinct manners.
The diagram also presents a comparison of key project variables, including cost, time,
following picture[6]
Question 2
Is Scrum Master the decision maker regarding the work to be done in the next sprint?
Solution:
No.
The Scrum Master is not the decision maker regarding the work to be done in the next sprint.
In the Scrum framework, the decision-making authority for the work to be done in the next
sprint lies with the Development Team, which is a self-organizing and cross-functional group
of individuals who collaborate to deliver a potentially releasable product increment at the end
of each sprint.
The role of the Scrum Master is to facilitate the Scrum process and help the Development
Team and the Product Owner work together effectively. The Scrum Master is responsible for
removing any obstacles that are preventing the Development Team from delivering the
product increment and ensuring that the Scrum framework is understood and implemented
correctly.
In summary, while the Scrum Master plays a critical role in facilitating the Scrum process,
the decision-making authority for the work to be done in the next sprint lies with the
Question 3
Solution;
Developing Agile software can present a number of challenges, some of which are:
1) Resistance to change: Adopting an Agile methodology requires a shift in mindset and work
practices that can be difficult for individuals and organizations that are used to more
traditional software development processes. Resistance to change can hinder the adoption of
which can sometimes lead to a lack of clarity around project requirements, goals, and
timelines. This can make it difficult to plan and estimate work accurately and can cause
and collaboration between team members, stakeholders, and customers. Ensuring that
everyone is on the same page and working towards a common goal can be a challenge,
styles.
4) Scalability: Agile methodologies are well-suited to small, self-organizing teams, but can be
difficult to scale up to larger, more complex projects. Ensuring that Agile practices are
5) Technical debt: Agile development prioritizes delivering working software quickly and
frequently, which can sometimes lead to a build-up of technical debt. Managing technical
debt is an ongoing challenge in Agile development and requires a focus on maintaining code
adaptation, which requires a willingness to reflect on and learn from past experiences.
Creating a culture of continuous improvement can be challenging, especially in organizations
Question 4
Explain in detail the process and workflow of the following agile frameworks and how
b. Kandan
c. Extreme programming
Solution;
Product. The visual representation below depicts the Agile Scrum framework,
"process framework." For example, the XP framework emphasizes pair programming, while
What sets the Scrum process apart from other agile approaches are its specific concepts and
practices organized into three categories: roles, artifacts, and time boxes. These elements
form the foundation of the Scrum process and contribute to its effectiveness in managing
following:
When using the agile Scrum methodology, the key benefits to the companies include the
following:
You have the freedom to adjust the requirements based on feedback from the client and
end users since the requirements (consisting of features, user stories, and other backlog
items) are purposefully maintained high-level at the beginning. This results from the
team's flexibility to redefine and re-plan following each sprint and release, allowing them
Based on a survey, it was found that in traditional waterfall projects, a significant number
of features deployed were never utilized or demanded by consumers due to scope creep
and feature bloat. In contrast, with the Scrum methodology, there is a relentless focus on
pruning the release backlog at the end of each sprint to promptly remove these
unnecessary features and minimize associated costs. The use of short time boxes in Scrum
enables incremental delivery and reduces the likelihood of risks arising during the sprint.
relentless test automation, it results in the generation of code, products, and processes of
significantly higher quality. These practices contribute to the success of Scrum as the
The issue of delivering a fixed scope, fixed schedule project with a team is solved with
the ability to change the scope and still provide outcomes. The team operates at a
sustainable speed that keeps employees happy of their work and prevents them from
Customers frequently lack the understanding of a system's operation until they use it,
which is one of the obstacles of software development for them. Customers may see what
they are receiving earlier in the process and be assured that it is what they genuinely need
A) Kandan
framework. It is based on the principles of the Kanban system, which is a visual system for
managing work and improving efficiency. Agile Kanban combines the principles of Kanban
with the flexibility and adaptability of Agile to create a powerful methodology that can be
practices:
1) Visualization of workflow.
3) Managing flow.
The majority of the system's activities, including visualizing work, restricting work-in-
progress (WIP), and regulating flow, all revolve around the Kanban board. For software
development teams, a Kanban board can be physical, although it is typically digital,
Task-based work is pushed onto the Kanban board and is symbolically represented by a
colored card. Task-based work is sometimes referred to as user stories for Agile development
teams. The capability of the development team should be reflected in the amount of tasks
Boards are broken down into columns that represent different stages of a task’s completion.
I. To do
II. In progress
III. Complete
Companies can benefit from using the Agile Kanban methodology in several ways:
b) Improved flow: By managing the flow of work, the team can improve efficiency and
reduce waste.
contexts, making it ideal for teams that need to adapt to changing requirements or
priorities.
improvement, which can lead to higher-quality work and better outcomes over time.
Overall, Agile Kanban is a powerful methodology that can help companies manage work
B) Extreme programming
Extreme Programming (XP) is an agile software development process that places a strong
Beck in the late 1990s, and the software development sector has subsequently embraced it.
To enhance software quality and responsiveness to shifting client needs, XP adheres to a set
of practices and principles. The following are some essential traits of extreme programming:
They give input, specify requirements, and rank features to make sure the product
reviews and adjustments are made to requirements and priorities to account for
groups of programmers, testers, and clients. The team's ability to communicate and
promote knowledge exchange, improve code quality, and lower mistakes, one person
code. Tests are regularly run to make sure the code works as intended and act as a
This keeps a dependable and continuously operating system and aids in the early
the code without altering its outward behavior. This procedure assures the
Collective Code Ownership: The upkeep and enhancement of the codebase is the
Sustainable tempo: To prevent burnout and promote a good work-life balance for
a. Critically evaluate the approach the agile project team takes in managing stakeholders
Solution
The approach an agile project team takes in managing stakeholders and communicating with
Agile techniques place a strong emphasis on stakeholders' active participation throughout the
project. Stakeholders are regularly involved in interactions to obtain needs, offer comments,
and help the team make choices. They are seen as essential members of the team.
Agile teams integrate stakeholders in the planning process through collaborative planning. To
extract requirements, rank features, and define the project scope, they lead workshops,
Agile projects employ iterative development cycles, in which workable software increments
are provided at the conclusion of each iteration. This enables early-stage stakeholders to
observe observable progress and offer criticism. In order to maintain continual alignment
with stakeholder expectations, the team then incorporates the input into following iterations.
Agile teams build regular communication channels to update stakeholders of the project's
advancement, modifications, and difficulties. Stakeholders have the chance to keep informed
and offer valuable advice at daily stand-up meetings, sprint reviews, and demos. In order to
stakeholders access to the team's work. Sharing information regarding task boards, burndown
charts, and other pertinent data is part of this. Stakeholders may grasp the state of the project,
make wise decisions, and spot any problems or risks with the support of transparent work
visibility.
input and Validation in Collaboration: Agile teams aggressively solicit input from
acceptability testing (UAT), frequent demos, and feedback sessions are used to get input. The
product is improved through an iterative feedback cycle, which also makes sure it lives up to
stakeholder expectations.
stakeholder management, and progress. These meetings offer the chance to pinpoint problem
areas, resolve any communication or stakeholder-related issues, and modify the strategy as
adaptable and quick to change. The group adjusts proactively to shifting stakeholder
demands, market circumstances, or organizational goals. The team is able to alter plans and
which maintains stakeholder satisfaction. The agile project team plans to promote
cooperation, including stakeholders, and keep lines of communication open throughout the
project lifecycle by using these techniques. This strategy makes it easier to meet the demands
of stakeholders, incorporate their comments, and keep the project on track with their
expectations.
b. What mistakes project manager can do and how are these mistakes be avoided?
Project managers can make various mistakes that can have a negative impact on the project's
success Here are some common mistakes and suggestions on how to avoid them:
Project scope creep and project drift can result from unclear project goals and scope
definitions. To avoid this, project managers should engage closely with stakeholders to set
clear and quantifiable project objectives. They should record the scope, acquire stakeholder
Poor Planning and estimating: Poor planning and imprecise estimating can result in missed
deadlines, overruns on the budget, and issues with resource allocation. Project managers
should spend time outlining tasks, dependencies, and resource needs as part of thorough
project planning. To secure their competence and dedication, they should include the project
communication channels, assure frequent updates, and actively engage stakeholders. They
should promote honest and open communication among team members and immediately
Failure to Manage Risks: Project risks can cause unforeseen problems and project failure if
they are ignored or addressed insufficiently. Project managers should identify and analyze
risks early on, devise risk mitigation techniques, and prepare contingency plans. Regular risk
monitoring and prompt mitigation steps are needed to limit the effect of hazards.
Poor resource management can lead to overworked team members, burnout, and below-
assess resource requirements, plan resource allocation, and monitor workload. They should
also give help and handle any resource restrictions or issues swiftly.
Ignoring Team Dynamics and Morale: Neglecting team dynamics and morale can lead to
poor productivity, lack of motivation, and greater turnover. Project managers should promote
a supportive work environment, promote teamwork, and resolve any disputes or issues as
soon as they arise. Recognizing and recognizing team members' efforts may increase morale
lack of support for the project. Project managers should actively involve stakeholders
throughout the project, ensure their needs are understood, and regularly seek their input and
Lack of Monitoring and Control: Failing to monitor project progress and lacking control over
project activities can result in missed milestones and deviations from the project plan. Project
managers should build effective monitoring tools, track progress against the plan, and execute
corrective actions when needed. Regular project status reviews and updates help keep things
Project managers should continually improve their project management abilities, get input
from stakeholders and team members, and draw lessons from prior projects in order to avoid
making these errors. In order to enable efficient project execution and communication, they
should also make use of project management best practices, frameworks, and tools.
Question 6
management?
Solution
The process of estimating the work, time, and resources needed to execute a software project
them into tasks, and calculating the amount of work required to execute each job. For the
Estimation aids in the development of realistic project plans and timetables. It enables project
managers to deploy resources efficiently, identify project checkpoints, and establish realistic
deadlines. Accurate estimations allow for efficient resource management and help to keep the
project on schedule.
Budgeting and cost control: Estimation is a key component of both processes. Project
managers may calculate the related costs, such as labor, infrastructure, and tooling costs, by
evaluating the effort needed for each activity. This data facilitates the creation and monitoring
of budgets and enables efficient cost control throughout the course of the project.
Estimation aids in identifying possible risks and uncertainties in the project and aids in risk
mitigation. Project managers can pinpoint areas that could be vulnerable to delays or
difficulties by examining the projected effort for various activities. They may then
proactively prepare for risk mitigation techniques, assign extra resources, and modify the
Resource Allocation: Estimation offers information on the project's resource needs. Based on
the projected effort, project managers may evaluate the number of team members, their
qualifications, and the length of their engagement. This makes it easier to allocate resources
effectively and guarantees that assignments are given to the correct individuals with the
relevant capabilities.
expectations. Project managers may manage expectations with stakeholders and clients by
giving reasonable schedules and delivery dates based on estimation. Effective communication
may be used by project managers to compare various project possibilities, weigh trade-offs,
and come to wise judgments. Estimation enables project managers to assess the viability of
project management. The cornerstone for effective project execution is accurate estimating,
which also aids in completing software projects within their allotted budgets, timelines, and
scopes.
b. How can a project manager improve their estimation accuracy? What options are
available to them?
To improve estimation accuracy, project managers can consider the following options and
strategies:
Analysis of Historical Data: To spot patterns and trends, project managers might examine
historical project data, including previous estimates and actual performance. This study can
aid in determining the causes of estimation deviations and offer guidance for next
estimations.
Expert input: Enlisting the assistance of knowledgeable team members and subject matter
experts helps improve estimation accuracy. Participants with the necessary experience can
offer insightful information about the difficulty of the work, anticipated difficulties, and
Task Division: Dividing project tasks into smaller, easier-to-manage components enhances
estimating precision. Complex jobs can be broken down into smaller parts for a more detailed
examination and estimation. This method makes it less likely that crucial facts will be missed
Techniques for estimating: Using tried-and-true methodologies and techniques for estimating,
such as Function Point Analysis, Use Case Points, or Story Points, can increase accuracy.
These methods offer organized frameworks for calculating effort and assessing requirements
while taking into account numerous elements including functionality, complexity, and risk.
Project managers can use an iterative estimating strategy rather to depending on a single
uncertainties are minimized during the project lifespan, they can adjust and update estimates.
Reference and Comparative estimating: Project managers can increase estimating accuracy
by comparing the demands and duties of the present project with those of comparable earlier
endeavors. They can use lessons gained, spot possible problems, and modify estimates by
Project managers should take into account potential risks and uncertainties throughout the
estimating phase. Estimation accuracy can be increased by including a contingency buffer for
probable risks and uncertainties. This buffer can take into account unknowns and unforeseen
Reviews of the estimate process and results should be done on a regular basis by project
upcoming projects are all aided by analysis of estimation accuracy and the identification of
improvement areas.
Collaboration-enhancing estimating: Including the project team in the estimating process
promotes teamwork and makes use of their combined skills. More accurate estimations may
accuracy may be improved. Project managers should evaluate the results of their estimating,
get input from the team and other stakeholders, and apply what they have learnt to their
Project managers may gradually increase the accuracy of their estimations by putting these
ideas into practice. It is crucial to understand that estimating presents a number of intrinsic
Question 7
a) To calculate the velocity of the project, we sum up the Story Points completed in each
sprint. Let's calculate the velocity based on the provided Story Points:
Sprint 1: 2 + 8 + 13 + 5 = 28
Sprint 2: 5 + 8 + 5 + 5 + 13 = 36
Sprint 3: 2 + 5 + 8 + 5 + 8 = 28
Sprint 4: 5 + 2 + 8 + 2 + 13 + 5 = 35
Velocity = Sum of Story Points completed / Number of Sprints
Number of Sprints = 4
Therefore, the velocity of the project, based on the provided Story Points, is approximately
31.75.
b) The kind of figures utilized as Story Points in the aforementioned team are significant
since they accurately represent the relative difficulty or complexity of the user stories or tasks
being measured. Typically, Fibonacci numbers (1, 2, 3, 5, 8, 13, etc.) or t-shirt sizes (XS, S,
M, L, XL) are used as a scale to give story points. In order to authentically depict the
uncertainty and challenge of estimating effort, these values are purposefully non-linear.
Teams can concentrate on relative sizes rather than absolute quantities with the use of such
figures. It promotes team talks so that everyone is aware of and on the same page regarding
the difficulty and effort required to complete certain jobs. Additionally, it prevents the
erroneous accuracy that may result from using precise numbers (such as 10, 20, or 30) and
provides more latitude for revising predictions in accordance with team expertise and project
dynamics.
c) To calculate the number of sprints required to complete the project, we need to determine
the remaining Story Points and divide them by the velocity. Let's calculate:
Question 8
As a customer, I want to log in/signup to the site so that I can access my account.
As a customer, I want to be able to collect payment so that I can purchase the products.
As a customer, I want to rate the products so that I can give feedback to the owner.
As a customer, I want to buy products so that I can purchase the items I like.
As a guest, I want to check the platform so that I can see the products and feel confident
As an owner, I want to remove products so that I can delete products that are no longer
available.
As an owner, I want to edit prices so that I can provide discounts to customers and update the
prices.
As a customer, I want to call support so that I can discuss my concerns and get help if
needed.
As a customer, I want to store my Bank Card for future payments so that I can easily make
future purchases.
b. The baseline User Story can be identified as User Story 5 - "As a guest, I want to check the
platform so that I can see the products and feel confident buying clothes here." This story is
relatively simple compared to the others and can be used as a baseline to rate the rest.
c. The allocated Story Points using Fibonacci Numbers with descriptions are as follows:
As a customer, I want to log in/signup to the site so that I can access my account. - 3 Story
Points (Moderate)
As a customer, I want to be able to collect payment so that I can purchase the products. - 8
Points (Simple)
As a customer, I want to buy products so that I can purchase the items I like. - 5 Story Points
(Moderate)
As a guest, I want to check the platform so that I can see the products and feel confident
As an owner, I want to list products along with descriptions and price so that customers can
see the products available for purchase. - 13 Story Points (Very Complex)
As an owner, I want to remove products so that I can delete products that are no longer
As an owner, I want to edit prices so that I can provide discounts to customers and update the
As a customer, I want to call support so that I can discuss my concerns and get help if
As a customer, I want to store my Bank Card for future payments so that I can easily make
Acceptance Criteria for each User Story can be defined by the project team based on the
Question 9
Create User Story mapping for the ‘Mobile Banking System’. You can use open-source tools such as Miro
or Trello of your choice. Your Tasks: • Consider the given topic as a Theme. • Find out 3 Epics for the
given theme. Further split them into user stories and tasks. • Give a brief explanation of the story mapping
https://trello.com/invite/b/M0lufaZJ/ATTIa2e4797aa387c151400df18334df37a229D11C96/
story
Epics:
User Authentication
Account Management
Transaction Processing
User Story 1: As a user, I want to be able to register for a mobile banking account.
User Story 2: As a user, I want to be able to log in securely to my mobile banking account.
User Story 4: As a user, I want to view my account balance and recent transactions.
User Story 5: As a user, I want to transfer funds between my own accounts.
User Story 6: As a user, I want to link external bank accounts for easy transfers.
User Story 10: As a user, I want to make bill payments to registered payees.
User Story 11: As a user, I want to initiate fund transfers to other bank accounts.
User Story 12: As a user, I want to receive real-time notifications for account activities.
User Story 13: As a user, I want to view and manage my debit/credit card details.
User Story 14: As a user, I want to apply for new banking products (e.g., loans, credit cards).
Explanation:
The user story mapping above represents the 'Mobile Banking System' theme with three
Each epic is broken down into user stories that capture the specific functionality or feature
desired by the users. The user stories can further be divided into tasks during the sprint
planning phase. This user story mapping provides a high-level overview of the user
requirements and helps in visualizing the flow of features in the mobile banking system. It
allows the development team to prioritize and plan the implementation of the user stories
References
[1] Nikiforova, O., Nikulsins, V., Sukovskis, U.: Integration of MDA Framework into the
Applications, Databases and Information Systems V, vol. 187, pp. 229–239. IOS Press,
Amsterdam (2009)
[2]Rico, David F. What is the ROI of agile vs. traditional Methods. 2008.
[3]Cho, Juyun. Issues and Challenges of agile software development with SCRUM. Issues in
Information System.
[4]Martin, R.C., Agile Software Development, Principles, Patterns and Practice. Prentice
Hall. 2002
[5] Thanh (Bruce) Pham, Agile Vs. Waterfall in Software Development. 25 Jan 2019
[7] Izhar Alam, Scrum Master | PSM Certification | Scrum Certification on February 1, 2023.