CPSC 544 Advanced Software Process

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

CPSC 544 ADVANCED SOFTWARE PROCESS

TEAM 8 PROJECT REPORT


ANSHULA SHARMA SRAVANI KALLEMPUDI

CWID: 814009098 CWID: 885332171

TABLE OF CONTENTS

EXECUTIVE SUMMARY.......................................................................................................................2
INTRODUCTION.....................................................................................................................................2
ANALYSIS OF THE CURRENT SITUATION.....................................................................................2
PROBLEM AREAS AND RECOMMENDATION................................................................................3
ACTION PLANS.......................................................................................................................................8
ANALYSIS OF HOW THESE WOULD BENEFIT COLLABO..........................................................9
REFERENCE PAGE................................................................................................................................9

Page | 1
EXECUTIVE SUMMARY

Collabo, a start-up providing a collaborative tool for fully remote teams, has shown promise with
several successful Beta releases and positive feedback from Beta customers. Despite these
achievements, our analysis reveals significant challenges within the Research and Development
group that hinder our progress towards the general release planned in six months. Key issues
include a lack of uniformity in product features leading to user confusion, an overwhelmed
support team due to non-intuitive features, a rapidly growing defect rate outpacing resolutions,
and an unsustainable workload resulting in employee burnout. Additionally, inadequate review
and prioritization of features have caused disorganization and inefficient use of resources.
Current development practices lack a formalized methodology, and ineffective project
management software has led to poor sprint planning and unclear metrics. These issues threaten
the timely delivery of a stable product and impact overall team morale and customer satisfaction.

INTRODUCTION

Collabo, a burgeoning start-up, offers an innovative design-sharing tool tailored to enhance


collaboration among fully remote teams. This platform has gained traction with several
successful beta releases, drawing keen interest and active participation from beta customers.
These stakeholders are not just using the product but are integral to its iterative development
through their insightful feedback. The venture's promise is shadowed by significant challenges
faced by the Research and Development (R&D) group, as noted by Thomas Jensen, the CEO of
Collabo. Despite a promising product backlog, there is a discernible struggle with increasing
defects, non-intuitive feature releases, and an unsustainable workload that collectively threatens
the company’s objectives and employee well-being. These issues are further exacerbated by
inefficient processes and a lack of stringent control mechanisms across the development
lifecycle.

Page | 2
ANALYSIS OF THE CURRENT SITUATION

Collabo's current operational landscape reveals several critical issues impeding its growth and
performance.
1. Disorganized Feature Development and Management:
Collabo's feature development is primarily managed by product owners who, despite being
somewhat technically inclined, often lack systematic review and prioritization processes for new
features. This has led to disorganization and inconsistency, with features sometimes lacking the
necessary details when passed on to the development team. Furthermore, features and
requirements are frequently changed without proper discussion or documentation, leading to
confusion and inefficiencies within the development team.
2. Ineffective Agile Implementation:
Although efforts have been made to implement the Scrum Agile framework, Collabo has
struggled to enforce a cohesive, organization-wide methodology. The development teams gather
to claim tasks and break them down. Still, the lack of a stable team capacity and historical data
on sprint velocity introduces significant uncertainty in sprint planning. The deficiency of
effective project management software further complicates tracking and managing progress,
leading to poor estimation, and planning of workloads.
3. Variability in Development Practices:
Within the development process, there is significant variation in practices across different teams,
including inconsistencies in code formatting, code review processes, and testing requirements.
Such variability not only undermines the quality of the software but also complicates
collaboration and knowledge sharing among teams.
4. Late Integration and Ineffective Testing:
Quality Engineering (QE) teams receive feature developments late in the cycle, which delays
testing phases and often leads to late discoveries of defects, contributing to delayed releases.
Additionally, the QE teams face challenges in pushing for a development model that supports
parallel testing and feature development, hindered by a lack of leadership and support for
necessary automation, which would enhance efficiency and reduce errors.
5. Manual and Error-Prone Deployment Processes:
Lead developers manually handle deployment processes, including tasks such as bringing down
deployments, uploading new builds, and initiating services. This makes the deployment process
prone to human error and results in downtime, affecting service availability and user satisfaction.
6. Deficient Defect Tracking and Management:

Page | 3
Although functioning, the defect tracking process at Collabo is overwhelmed by quickly filling
backlogs, duplicate reports, and mischaracterized issues. The existing logging systems are
inadequate for effective debugging, and there is a lack of proper procedures for setting defect
attributes, classifying components, and linking defects with ongoing feature development.

PROBLEM AREAS AND RECOMMENDATION

The problems outlined in each scenario and respective recommendations and solutions that can
be implemented:
Business to Feature
1. Lack of Review and Prioritization: Features are written by product owners without proper
review or prioritization, leading to disorganization and potentially irrelevant or conflicting
features being developed.
Establish Clear Review and Prioritization Processes: Implement a structured process for
reviewing and prioritizing features before passing them on to the development team. This could
involve regular meetings or workshops involving relevant stakeholders to discuss and agree on
feature priorities based on business goals, customer needs, and resource constraints.
2. Incomplete Information: Features lack the minimum required information when passed on to
the development organization, which can result in misunderstandings, delays, and rework.
Define Minimum Feature Requirements: Develop guidelines or templates for documenting
features that specify the minimum required information, such as functional requirements,
acceptance criteria, and relevant user stories or use cases. This ensures that all necessary
information is provided to the development team upfront, reducing the likelihood of
misunderstandings and rework.
3. Lack of Documentation: Changes to features and requirements are made without discussion
or proper documentation, leading to confusion, misunderstandings, and difficulty tracking
changes.
Document Changes and Requirements: Implement a formal change management process
where relevant stakeholders must discuss, document, and approve any changes to features or
requirements before implementation. This ensures transparency, accountability, and consistency
in managing feature changes throughout the development lifecycle.

Planning
1. Inconsistent Adoption of Agile Methodology: While there was an attempt to follow the
Scrum Agile framework, the organization failed to enforce it consistently across teams, resulting
in ineffective implementation and poor adherence to Agile principles.

Page | 4
Standardize Agile Practices: Ensure consistent adoption and enforcement of Agile
methodologies across all development teams. Provide training and support to ensure team
members understand and adhere to Agile principles, roles, and ceremonies such as sprint
planning, daily stand-ups, and retrospectives.
2. Lack of Transparent Planning Process: Sprint planning lacks transparency and structure,
with development leads claiming work without clear guidelines or accountability. This leads to
potential misalignment and confusion among team members.
Implement Clear Sprint Planning Guidelines: Establish clear guidelines and expectations for
sprint planning, including how work is claimed, broken down, estimated, and prioritized.
Encourage collaboration and alignment among development leads to ensure a shared
understanding of goals and priorities.
3. Inaccurate Estimation and Capacity Planning: Estimation of stories and capacity planning
are unreliable, leading to uncertainty about the team's ability to deliver within each sprint.
Without historical data on sprint velocity, it's challenging to forecast and allocate work for future
sprints accurately.
Improve Estimation Techniques: Invest in training and workshops to improve the team's
estimation skills and techniques. Consider adopting more reliable estimation methods such as
Planning Poker or Relative Sizing to ensure more accurate story point estimations.
4. Absence of Project Management Software: The lack of suitable project management
software hampers the team's ability to track progress, analyze metrics, and make data-driven
decisions, exacerbating the challenges in sprint planning and execution.
Invest in Project Management Software: Implement project management software that
supports Agile practices and provides valuable metrics and insights for sprint planning and
execution. Choose a tool that offers sprint planning boards, burndown charts, and velocity
tracking to facilitate transparent and data-driven decision-making.

Development process
1. Code Formatting:
Solution: Implement a standardized code formatting guideline that all teams must follow.
Explanation: By establishing a consistent code formatting guideline, Collabo can ensure that all
developers adhere to the same formatting standards. This promotes readability, maintainability,
and collaboration among team members. It also reduces confusion and makes it easier for
developers to understand and work with code written by others.
2. Code Coverage Minimum Requirement:
Solution: Define a unified code coverage minimum requirement for all teams.

Page | 5
Explanation: Setting a consistent code coverage minimum requirement ensures that all teams
prioritize writing automated tests to achieve a certain level of coverage. This helps identify areas
of the codebase that lack proper testing and reduces the risk of undetected bugs. It also promotes
a culture of quality and accountability across the development organization.
3. Code Review Process:
Solution: Establish a standardized code review process and guidelines.
Explanation: By defining a consistent code review process, Collabo can ensure that all teams
follow a structured approach to reviewing code. This includes setting expectations for the
frequency and depth of code reviews and providing guidelines for providing constructive
feedback. A standardized code review process helps improve code quality, identify potential
issues, and share knowledge among team members.
4. Test Suites Run (or Lack of):
Solution: Implement a mandatory requirement for running comprehensive test suites.
Explanation: Requiring all teams to run comprehensive test suites ensures that adequate testing is
performed before code is deployed. This helps identify and address potential bugs or issues early
in development. Collabo can improve its software's overall quality and reliability by making test
suite runs mandatory.
5. Deployment Signature:
Solution: Define a standardized deployment signature for all teams.
Explanation: Establishing a consistent deployment signature ensures that all teams follow the
same deployment configurations, such as the number of replicas, server region, and backup
strategy. This reduces the risk of deployment-related issues and ensures a smooth and
predictable deployment process. It also helps maintain the stability and availability of the
Collabo service during new feature releases.

Testing
1. Late Integration of Testing: Testing activities begin late in the development cycle, leading to
delays in identifying and addressing defects. This late start often results in testing activities
overlapping with release deadlines, causing further delays and impacting product quality.
Shift-Left Testing: Encourage a shift-left approach to testing, where testing activities are
integrated earlier into the development process. Promote collaboration between development and
testing teams to ensure that testing begins as soon as features are developed, allowing for early
detection and resolution of defects.
2. Blame Culture: Quality Engineers (QEs) are wrongfully blamed for release delays, fostering
a culture of blame and resentment within the organization. This blame culture undermines
collaboration and hampers the effectiveness of testing efforts.
Page | 6
Promote a Culture of Collaboration: Foster collaboration and mutual respect between
development and testing teams. Encourage open communication, constructive feedback, and
shared accountability for product quality to eliminate the blame culture and improve overall team
effectiveness.
3. Lack of Parallel Development and Testing: QEs advocate for a development model that
allows them to work in parallel with feature development to ensure early detection and resolution
of defects. However, the lack of leadership and support impedes their efforts to implement this
approach.
Implement Parallel Development and Testing: Invest in leadership and resources to support
the implementation of parallel development and testing. Establish cross-functional teams where
QEs work closely with developers from the outset to identify testing requirements, develop test
cases, and automate testing processes.
4. Overloaded Responsibilities: QEs are tasked with testing and designing/building an
automation framework, leading to workload imbalance, and potentially compromising the quality
of testing efforts.
Prioritize Automation Efforts: Allocate resources and prioritize efforts to build and maintain
an automation framework. Secure sponsorship and support from upper management to invest in
automation tools and resources, recognizing the long-term benefits of automation in improving
efficiency, reducing errors, and accelerating time-to-market.

Integration and Release


1. Manual Deployment Process: Lead developers perform Deployment tasks manually using
command-line tools. This manual process is error-prone, time-consuming, and lacks
repeatability, leading to inconsistencies and potential deployment failures.
Implement Continuous Deployment Pipeline: Set up a pipeline using automation tools such as
Jenkins, Travis CI, or AWS Code Pipeline. Automate the deployment process from code commit
to production release, including building, testing, and deploying updates to the AWS public
cloud.
2. Downtime during Deployment: New deployments result in downtime for Collabo's service,
making it unavailable to users. While efforts are made to minimize downtime, any encountered
problems during deployment result in prolonged service unavailability, impacting user
experience and business operations.
Deployment Strategy: Implement a deployment strategy to minimize downtime and mitigate
the risk of deployment failures. Maintain two identical production environments (blue and
green), with only one environment actively serving user traffic at a time. New releases are
deployed to the inactive environment and verified before switching traffic, allowing seamless
rollback in case of issues.

Page | 7
3. Lack of Automation: Deployment tasks, such as bringing down the current deployment,
uploading release builds, and starting services, are not automated. This lack of automation
increases the risk of human error and limits the ability to deploy updates quickly and reliably.
Automated Smoke Testing: Integrate automated smoke testing into the deployment pipeline to
validate critical functionalities and ensure the stability of the deployed release. Computerized
tests can quickly detect and alert about issues, allowing for immediate rollback or resolution
before impacting users.
Infrastructure as Code (IaC): Manage infrastructure configuration using IaC tools like AWS
CloudFormation or Terraform. Define infrastructure components as code, allowing for
automated provisioning and configuring AWS resources, reducing manual errors, and ensuring
consistency across environments.

Detect Tracking
1. High Backlog Volume: The defect backlog quickly fills up due to a high volume of reported
defects, including duplicates, insufficiently described problems, and mischaracterized issues.
This backlog overload hampers the effectiveness of defect resolution and prioritization.
Standardize Defect Reporting Procedures: Establish standardized procedures and guidelines
for defect reporting to ensure consistency and completeness. Provide clear instructions to users
on reporting defects, including requirements for providing relevant information, attachments, and
reproducing steps.
2. Inadequate Logging Implementation: Collabo's logging implementation is still in its early
stages and unsuitable for debugging support. This limitation contributes to insufficient
information provided with reported defects, making it challenging for developers to diagnose and
resolve issues efficiently.
Enhance Logging Implementation: Invest in improving Collabo's logging implementation to
capture more detailed and relevant information for debugging purposes. Implement best practices
and tools to collect comprehensive logs that aid in diagnosing and resolving reported issues
efficiently.
3. Lack of Proper Procedures: While the defect tracking software may be sufficient, proper
procedures and guidelines are lacking, leading to inconsistent defect attributes, misclassification
of problematic components, and insufficiently described problems. This hinders effective
prioritization, triage, and resolution of defects.
Implement Defect Attribute Standards: Define standard defect attributes, such as severity,
priority, status, and affected component, to aid in prioritization, triage, and resolution of defects.
Ensure all reported defects are correctly categorized and tagged with relevant attributes for better
tracking and management.

Page | 8
ACTION PLANS
Structured development cycle to improve efficiency and effectiveness.

Resource Allocation and Budgeting Considerations:


- Allocate resources for training, tooling, and process improvement initiatives.
- If needed, budget for hiring additional personnel (e.g., Agile coaches, QA engineers, DevOps
specialists).
- Invest in software tools and infrastructure upgrades to support streamlined processes and
automation.

Page | 9
Risk Analysis and Mitigation Strategies:
1. Resistance to Change:
Strategy: Communicate the benefits of proposed changes and involve stakeholders in decision-
making. Provide training and support to help teams adapt to new processes gradually.
2. Technical Challenges:
Strategy: Conduct thorough technical assessments and pilot projects before full implementation.
Allocate resources for addressing technical debt and infrastructure upgrades as needed.
3. Disruption to Operations:
Strategy: Plan implementation in phases to minimize disruption. Implement rollback procedures
and contingency plans in case of unexpected issues.
4. Resource Constraints:
Strategy: Prioritize initiatives based on impact and feasibility. Consider outsourcing or hiring
temporary resources to fill skill gaps or alleviate workload bottlenecks.
By following this structured approach to implementation and risk management, Collabo can
effectively address the identified challenges and drive positive outcomes in product
development, quality assurance, deployment, and defect management processes.

Training and Awareness Programs: Provide training and awareness programs for customer
support teams and users on effective defect reporting practices. Educate them on the importance
of providing sufficient information, attachments, and steps to reproduce to facilitate timely and
accurate defect resolution.

ANALYSIS OF HOW THESE WOULD BENEFIT COLLABO

By implementing these proposed changes, Collabo can address the identified problems, promote
consistency and collaboration, improve the efficiency of the software development process, and
enhance the overall performance and quality of the product. It is crucial to allocate resources,
provide leadership support, and secure sponsorship to ensure the successful implementation of
these changes. Regular monitoring and evaluation of the process should be conducted to identify
further areas of improvement and make necessary adjustments.

Page | 10
REFERENCE PAGE

1. Agile Product Management - https://www.atlassian.com/agile/product-management


2. Scrum Guide - https://www.scrumalliance.org/about-scrum
3. Software Development Life Cycle - https://www.geeksforgeeks.org/software-
development-life-cycle-sdlc/
4. Integration testing -
https://www.atlassian.com/continuous-delivery/software-testing/types-of-software-
testing
5. Defect Tracking - https://www.browserstack.com/test-observability/features/test-
failure-root-cause-analysis/what-is-defect-tracking.

Page | 11

You might also like