Software Development Lifecycle (SDLC)
Software Development Lifecycle (SDLC)
The frameworks or methodologies use agile principles are: Scrum, Kanban, Feature-driven development.
Appian uses a version of Scrum for its Build phase since Scrum allows developers to build and deliver
value fast.
What is Scrum?
- It is a simple and practical approach to software development.
- You will work as a team to incrementally deliver small units of work (or complete user stories)
for and application.
- The teams will be composed of:
Product owner: is responsible for maximizing the value of the product resulting from
the development team’s work.
The product owner is a critical role. This person should have the following
characteristics:
Authority to make prioritization decisions.
Availability to work with the development team on a regular basis.
Deep understanding of the business domain (ideally a member of the business
team).
The product owner is one person, not a committee. The product owner may
represent the desires of a committee, but the development team needs a
single person to make fast decisions throughout the process.
Scrum master or team lead: the team lead is the servant-leader to the development
team and coordinates the development process with the product owner so that the
team can move quickly and with minimal disruption.
- User stories are software feature descriptions written in a non-technical, natural language. This
stories are written from the perspective of the end user. After a user story is implemented,
there is a working piece of functionality than can be tested by the end users.
1. Phases
1.1. Initiate
During this phase, frequently called “Sprint 0”, the team will define the goals of the project, explore
what the application must do to reach those goals, and map out a plan to deliver value quickly. This
is accomplished through collaborative sessions with stakeholders from across business and IT. This
ensures every point of view is included and stakeholders are aligned around a common goal. The
intent is not to define every project detail, but rather to perform enough planning and design to get
started in the right direction. As a result, teams usually complete these activities in one to two
weeks.
1) Define success: Ensure a shared understanding of success across all stakeholders. Business
and IT collaborate to define the desired outcome based on five key discussion topics:
Vision: A statement or slogan that captures the application’s purpose. What is the
essence of what we will achieve by implementing the product? It can be something
straightforward like “Quickly and easily onboard new hires to our company”.
Stakeholders: which people should benefit most from the product? Who are the
product’s users, customers and wider stakeholders who will feel the (bottom-line)
benefit from the outcome (e.g. the sponsor or line manager of the end users). For an
internal recruitment and hiring application this can be HR Officials, Recruitment
Agents, Legal, Line Managers and the new hires themselves.
Needs: “What problem are we trying to solve?” Identify pain points and bottlenecks
in the current way of working; functional and technical. You can also ask: “what are
the benefits the solution should provide?”. Possible responses can be:
o Increase transparency of the process so we can easily see where and with
whom a request is currently sitting.
o Give new employees a smooth and pleasant first exposure to internal
operations.
o Ensure a quick and easy handover between task owners without delays and
lost emails.
Application: We define the high level features or characteristics that will drive the
product value. For example: the product needs to be web-based and accessible via
mobile devices, or tasks need to be automatically created and assigned to task
owners.
The output helps the development team visualize the application and set
expectations to project and product capability.
Business goals: What are the measurable business goals in order of priority? These
goals typically relate to a business’ Key Performance Indicators (KPIs). Examples of
these are: reducing new hire boarding lead time from 5 days to less than 1 day, or
reduce the time spent on boarding by all users in the process by 60%.
The business goals provide the ultimate benchmark to measure the need and priority
of a business requirement. They are also key input for defining and prioritizing the
application’s report requirements.
KPIs serve multiple purposes. Establishing measures for the business goals of a
project allows to calculate the project’s return on investment, and can be used as a
way to clarify the expected outcome to the entire project team. Also, you can use it
to assist with difficult prioritization decisions by asking how a feature contributes to
the overall objective.
The responsibility of creating this item is up to the Product Owner and more senior members
of the team.
2) Explore scope: establish a backlog of requirements and ensure there’s enough detail to get
started. The backlog is made up of all users stories for the application.
1. Why do they perform each activity (ie. What outcome are they trying to create)?
2. What are their biggest pain points (ie. What makes this activity hard today)?
1. The expected usage including total number of users and expected peak concurrent
usage.
2. Expected user interface response thresholds.
3. Expected annual record counts for key entities.
4. Security requirements.
5. Accessibility requirements.
Teams should also perform an environment sizing analysis at this stage in order to
forecast infrastructure requirements.
Here are typically the important design aspects to prototype during the design phase:
1. A conceptual model of business objects and their relationships to each other.
2. User and Role management.
3. The screen flow of major use cases.
4. Expected reporting needs.
5. Integration points with external systems.
6. Document management strategy.
The responsibility of creating this item is up to the Product Owner and more senior members
of the team.
3) Plan releases: define an incremental release plan and estimate the time for the first release.
The release plan shows the order in which requirements will be addressed along with an
expected schedule. The plan should be high level, so that the team can adapt to new
information during the project, but should clearly forecast what the team expects to deliver in
the next 3-6 iterations (ie. 6-12 weeks).
To create the Release Plan, we need two things: 1) the size of each backlog item
represented as story points and 2) the team’s velocity, or the number of story points
they can complete in an iteration. Teams estimate enough of the prioritized backlog to
finalize the release plan and then communicate the plan to stakeholders.
4) Agree on a Way of Working: schedule regular meetings and team processes. Before getting
started, teams need to make important decisions about how the extended team will work
together during the project. These include:
1. Scheduling the key ceremonies on a fixed cadence including: daily scrum, sprint planning,
spring review, backlog refinement, and sprint retrospective.
2. Design the development workflow and configure the project management tool (e.g. Jira).
3. Define the deployment pipeline and configuration management process.
4. Agree the Definition of Done (DoD) and Definition of Ready (DoR).
5. Testing strategy including these key decisions:
a. How will user acceptance testing be performed?
b. How will performance testing be performed?
c. How will regulatory compliance testing be performed?
Definition of Ready
The Definition of Ready (DoR) establishes the criteria a story must meet in order for the
delivery team to start working on it (i.e. a story is ready to be brought into an iteration.) If
stories are not sufficiently understood at the start of an iteration, the team can be less
efficient. They may become blocked from completing the story due to details that are missing
or may incorrectly estimate it causing the plan to be missed.
Definition of Done
The Definition of Done (DoD) defines the criteria a story must meet in order for the delivery
team to consider it complete. The DoD will include the required levels of testing and
documentation and will ideally include all work needed for a story to be released to users. By
setting this standard, the team ensures that all work for a story is done within the iteration
when it is fresh in developers minds, so that there is not unplanned work when it is time to
release the story.
Quiz:
1.2. Build
The team builds the application in rapid iterations, usually two weeks in length, where a subset of
features go through the full development cycle, with development and business quality-checks built
into each iteration. The build process facilitates continuous collaboration between the development
team and stakeholders. This phase can be further split into three disciplines:
1) Agile Planning. Use just-in-time requirement discovery and iterative planning cycles in order
to adapt the release plan to new information.
a) Backlog Refinement: During each iteration, the team will hold refinement sessions to
further detail the requirements in the remaining backlog. The Team Lead ensures this
meeting takes place to make sure the backlog contains the target of “2 Sprints worth of
User Stories in the backlog” at the start of the upcoming new Sprint.
The meetings are attended by the full development team, the product owner and any
additional subject matter experts invited by the product owner. At this time the User
Stories should already be prepared by the Product Owner to what he believes is Definition
of Ready. Critical business questions are already answered between the Product Owner
and the business. During the sessions the team will review, provide clarity on and break
large stories into smaller ones to prepare stories for development. The team will use their
predefined standard (“Definition of Ready”) to determine how much detail is needed to
consider a story ready for development.
Individually estimate points for the story. Story points are used to estimate the effort
required to fully implement a user story. An easy to implement user story may receive a
one, while a very challenging story may receive a thirteen. We’re going to use the first
six numbers in the Fibonacci sequence: one, two, three, five, eight, and thirteen. And 8
is anything you’d point 6-8, and a 13 is 9 to 13.
Discuss the estimate and assign points. If you reach a quick consensus, move on the
next story. If you can’t reach a quick consensus then the individuals with the highest
and lowest points should share their rationale.
c) Sprint Planning: The team along with the Product Owner will plan and commit to a set of
user stories which they believe can be delivered in that iteration. The Team Lead ensures
that the event takes place. Sprint Planning answers what can be delivered in the
increment resulting from the upcoming Sprint and how the work needed to deliver the
Increment will be achieved.
The backlog of features is prioritized by the Product Owner and estimated by the
Development Team. Then the most important features which can be completed are
selected. By performing this detailed planning with each iteration, the team can react to
new information, pulling in newly discovered, high-priority features. Iteration planning
includes these activities:
Quiz:
2) Disciplined development: Follow a test driven development process with quality built-in.
During an iteration, each feature goes through the entire development cycle including design,
development, testing and review by the product owner. Testing and review of each feature
happens within the iteration allowing the developer to validate that they are truly done with
the feature as defined by the “Definition of Done”.
Development Workflow
Each developer will follow a structured set of activities, or development workflow, to
implement each story and meet the DoD. The workflow should be tailored based on the
context the team is working within, but should include the following steps:
Deployment Pipeline
Development teams use a series of environments, called the deployment pipeline, to
perform their development activities, with different steps of the development workflow
happening in each environment. The team will agree how their pipeline will be used
during the planning phase but at a minimum the pipeline should include the following
environments:
o Development – all development activity and story-level testing are performed in this
environment.
o Test – each story or change is tested on one or more test environments according to
the team’s test strategy which should include functional tests. Integration tests, user
acceptance tests, and non functional tests such as performance tests.
o Staging (optional) – this environment is to be used to test the deployments to
production and to execute performance testing, and more specifically load testing.
o Production – at the end of the pipeline, the changes are deployed to the production
environment after tests are successful and changes are approved for release to
stakeholders.
Quiz:
3) Inspect and adapt. Ensure frequent communication amongst the team, making progress
transparent and continuously removing impediments.
Daily Stand-up
Each day, the team meets to discuss progress and coordinate their activities of the day. The
meeting is scheduled at the same time each day for only 15 minutes, and typically involves
each team member answering three questions:
The most important goal of the meeting is to keep development moving forward. The team
lead will capture any obstacles the team is facing and work to quickly remove them.
Sprint Review
At the end of each Sprint, the team will demo the completed features to the larger
stakeholder group. The product owner will have seen each feature as it was completed, but
this is an opportunity for more users to see what progress has been made and to validate that
the application will meet their needs. By reviewing progress frequently, it’s easier to course
correct if needed and helps with user adoption once the application is deployed.
In addition to the showcase, the team should discuss any changes to the Release Plan that are
necessary given new information.
Retrospective Meeting
The delivery team will meet with key project stakeholders (e.g. PO, business & technical
SME’s) to reflect on how to become more efficient. The team will use this Retrospective
Meeting to celebrate what’s working well and identify specific actions the team may take to
improve. After reviewing data from the previous iteration, the team identifies a small number
of concrete actions that they can attempt with the next iteration. The goal of the meeting is to
drive continuous improvement of the team’s way of working.
Quiz:
1.3. Release
Before the team releases the application, they will ensure the application is technically sound and
that our stakeholders are ready to accept it. Because most testing happens during the Build phase,
little may need to be performed now, but some teams may require additional “hardening” activities
at this step. By leveraging testing and deployment automation, and by keeping releases small, teams
can perform this phase in hours rather than days.
1. Pilot release.
2. Read-only release.
3. Parallel run.
1.4. Optimize
Congratulations! Your application is released and is delivering value for end users. However, don’t
leave off these critical next components that will accelerate your ability to deliver even more value
to your organization, faster.
Measure impact & communicate success: Business value measures, defined and documented
during the Initiate phase, aren’t just defined in order to ‘justify’ the budget for a new product.
They should be living concepts that are revisited and validated throughout the development
lifecycle and, as noted in the Build stage, used to prioritize the development backlog and make
mid-course tradeoffs and corrections.
Once the application is launched, it’s time to revisit these measures to use them as a foundation
for capturing the actual business value delivered by your new application. Remember, most
Appian applications deliver value through inflecting one or more of the following business value
categories.
o Reducing costs.
o Reducing risks.
o Improving customer experience.
o Enabling new products or services.
Each one of these can be quantified as a business value measurement. Once you’ve identified
the core value measures for your application, and your Application is now launched, it’s time to
measure the benefits actually achieved.