Professional Documents
Culture Documents
SDLC Methodologies:
SDLC stands for software development Life Cycle. It is the complete process of conception of a software
functionality (be it a website or a back-end management tool) to the development and productionalization
and deployment of the software in a working environment. Most commonly used SDLC models are:
1. Waterfall
2. Agile Scrum
3. RAD- Rapid Application Development
4. Rational Unified Process (RUP)
1. Waterfall:
This is the most commonly used SDLC model implemented today.
All phases of this model are separated into process phases, and CASCADE into each other.
Project Planning:
This is the Initial Assessment Phase, also known sometimes as Project Kick-off. In this Phase, the project
goals, description, estimated cost and VERY high level requirements are defined.
The purpose of this document is to present to the CORE committee as a feasible project, and to obtain
funding and permission to go ahead with the project.
The document created is in SOME COMPANIES known as the Project Initiation Assessment Document (PIAD),
SOW, Project Charter, Project Proposal etc. The Project Manager, Business Owner, Business Analyst and
Tech lead are involved in the creation of the PIAD.
Description:
the description includes the business need, the problem statement and the PROPOSED solution for
the problem, as well as a description of the criticality of the proposed solution.
SDLC
Note: This is a proposed solution and may change drastically over the remainder of the Waterfall
process
Goals:
Project goals include the proposed solution and estimated revenue generation by the
deployment of that project over a set period of time.
Requirements Definition:
This is one of the key aspects of SDLC. This is where the Business Analyst uses requirements gathering
techniques to gather stake-holder requirements for detailed documentation. The business analyst expands
on the HIGH LEVEL REQUIREMENTS that were documented on the PIAD/PC and holds sessions with the
business owners, system architects and the developers in order to determine the “AS IS” and “TO BE”
systems and determine the in-scope and out of scope items.
The key concept here is:
The Business Analyst MUST only focus on the “WHAT”. . . WHAT needs to be built.
The Business MUST NOT focus on how or why. . . the WHY is the headache of the business owners and the
HOW is the headache of the developers, the dev lead, the tech lead and the solutions architect.
Testing:
the next stage of the process is Software testing. The software is rigorously tested by the Quality Analyst
(QA) for bugs and defects.
When the requirements are being finalized, the QA will start formulating the TEST CASES in the preferred
format used by the company. The QA will then hold meetings and give a read-out to the dev, PM, BA and
tech lead to obtain sign off on the test cases that he/she has prepared. Numbers of different testing
techniques are used in order to test the application (mentioned in detail in the QA sections). Depending on
the criticality of the application, success criteria are defined by the team for QA: if the test cases are passed
to those criteria (ie 85% pass with NO priority 1 or 2 bugs), then the QA process is over and the application
can be presented to the business owners for sign-off/UAT.
If the software application was being built for another company (client), then the devs will install and
handover the software application to the client and help to integrate the software application with the
internal systems of the client.
Note: if the project is a small effort and doesnot require major code change (for example updating the
Facebook share button), then the common practice is to follow RAD model, and once the code is ready to go
live, the Project Manager will NOT wait for a release. The code will be pushed to live immediately.
2. Agile Scrum
Scrum is an iterative and incremental Agile software development framework for managing software
projects and product or application development. A key principle of Scrum is its recognition that during a
project the customers can change their minds about what they want and need (often called requirements
churn), and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned
manner. Scrum adopts an empirical approach—accepting that the problem cannot be fully understood or
defined, focusing instead on maximizing the team's ability to deliver quickly and respond to emerging
requirements.
Scrum Team
Product Owner, Scrum Master and Development Team
Product Owner
The person responsible for maintaining the Product Backlog by representing the interests of the
stakeholders, and ensuring the value of the work the Development Team does.
Scrum Master
The person responsible for the Scrum process, making sure it is used correctly and maximizing its benefits.
Development Team
A cross-functional group of people responsible for delivering potentially shippable increments of Product at
the end of every Sprint. These include the Tech lead, the BA, the QA(s) and the developers. The BA analyses
and documents the requirements for each product backlog, the tech lead does the assessment and the
technical design, the developers create the product and the QAs perform testing on the product.
SDLC
Kanban Chart
The Kanban chart is a publicly displayed chart showing remaining work in the sprint backlog. Updated every
day, it gives a simple view of the sprint progress. It also provides quick visualizations for reference.
Sprint
A time period (typically 1–4 weeks) in which development occurs on a set of backlog items that the team has
committed to. Also commonly referred to as a Time-box or iteration.
Increment
The increment is the sum of all the Product Backlog Items completed during a sprint and all previous sprints.
At the end of a sprint, the Increment must be done according to the Scrum Team's definition of done. The
increment must be in usable condition regardless of whether the Product Owner decides to actually release
it.
Spike
A time boxed period used to research a concept and/or create a simple prototype. Spikes can either be
planned to take place in between sprints or, for larger teams, a spike might be accepted as one of many
sprint delivery objectives. Spikes are often introduced before the delivery of large or complex product
backlog items in order to secure budget, expand knowledge, and/or produce a proof of concept. The
duration and objective(s) of a spike will be agreed between the Product Owner and Delivery Team before
the start. Unlike sprint commitments, spikes may or may not deliver tangible, shippable, valuable
SDLC
functionality. For example, the objective of a spike might be to successfully reach a decision on a course of
action. The spike is over when the time is up, not necessarily when the objective has been delivered.
Tasks
Work items added to the sprint backlog at the beginning of a sprint and broken down into hours. Each task
should not exceed 12 hours (or two days), but it's common for teams to insist that a task take no more than
a day to finish.
Velocity
The total effort a team is capable of in a sprint. The number is derived by evaluating the work (typically in
user story points) completed from the last sprint's backlog items. The collection of historical velocity data is
a guideline for assisting the team in understanding how much work they can do in a future sprint.
Impediment
Anything that prevents a team member from performing work as efficiently as possible.
Abnormal Termination
The Product Owner can cancel a Sprint if necessary.The Product Owner may do so with input from the team,
Scrum Master or management. For instance, management may wish to cancel a sprint if external
circumstances negate the value of the sprint goal. If a sprint is abnormally terminated, the next step is to
conduct a new Sprint planning meeting, where the reason for the termination is reviewed.
RAD model is Rapid Application Development model. It is a type of incremental model. In RAD model the
components or functions are developed in parallel as if they were mini projects. The developments are
time boxed, delivered and then assembled into a working prototype. This can quickly give the customer
something to see and use and to provide feedback regarding the delivery and their requirements.
Business modeling:
The information flow is identified between various business functions.
Data modeling:
Information gathered from business modeling is used to define data objects that are needed for the
business.
Process modeling:
Data objects defined in data modeling are converted to achieve the business information flow to
achieve some specific business objective. Description are identified and created for CRUD of data
objects.
Application generation:
Automated tools are used to convert process models into code and the actual system.
The Rational Unified Process describes how to effectively deploy commercially proven approaches
to software development for software development teams. These are called “best practices” not so
much because you can precisely quantify their value, but rather, because they are observed to be
commonly used in industry by successful organizations. The Rational Unified Process provides each
team member with the guidelines, templates and tool mentors necessary for the entire team to take
full advantage of among others the following best practices:
Two Dimensions
The process can be described in two dimensions, or along two axes:
The horizontal axis represents time and shows the dynamic aspect of the process as it is
enacted, and it is expressed in terms of cycles, phases, iterations, and milestones.
The vertical axis represents the static aspect of the process: how it is described in terms of
activities, artifacts, workers and workflows.
SDLC
The software lifecycle is broken into cycles, each cycle working on a new generation of the product.
The Rational Unified Process divides one development cycle in four consecutive phases:
Inception phase
Elaboration phase
Construction phase
Transition phase
Each phase is concluded with a well-defined milestone—a point in time at which certain critical
decisions must be made and therefore key goals must have been achieved
Inception Phase
During the inception phase, you establish the business case for the system and delimit the project
scope. To accomplish this you must identify all external entities with which the system will interact
(actors) and define the nature of this interaction at a high-level. This involves identifying all use
cases and describing a few significant ones. The business case includes success criteria, risk
assessment, and estimate of the resources needed, and a phase plan showing dates of major
milestones.
The outcome of the inception phase is:
A vision document: a general vision of the core project's requirements, key features, and main
constraints.
An initial use-case model (10% -20% complete).
An initial project glossary (may optionally be partially expressed as a domain model).
An initial business case, which includes business context, success criteria (revenue
projection, market recognition, and so on), and financial forecast.
An initial risk assessment.
A project plan, showing phases and iterations.
A business model, if necessary.
One or several prototypes.
Milestone : Lifecycle Objectives
At the end of the inception phase is the first major project milestone: the Lifecycle Objectives
Milestone. The evaluation criteria for the inception phase are:
The project may be cancelled or considerably re-thought if it fails to pass this milestone
SDLC
Elaboration Phase
The purpose of the elaboration phase is to analyze the problem domain, establish a sound architectural
foundation, develop the project plan, and eliminate the highest risk elements of the project. To accomplish
these objectives, you must have the “mile wide and inch deep” view of the system.
Architectural decisions have to be made with an understanding of the whole system:
its scope
major functionality
Nonfunctional requirements such as performance requirements.
It is easy to argue that the elaboration phase is the most critical of the four phases. At the end of this phase,
the hard “engineering” is considered complete and the project undergoes its most important day of
reckoning: the decision on whether or not to commit to the construction and transition phases. For most
projects, this also corresponds to the transition from a mobile, light and nimble, low-risk operation to a high-
cost, high-risk operation with substantial inertia. While the process must always accommodate changes, the
elaboration phase activities ensure that the architecture, requirements and plans are stable enough, and the
risks are sufficiently mitigated, so you can predictably determine the cost and schedule for the completion
of the development. Conceptually, this level of fidelity would correspond to the level necessary for an
organization to commit to a fixed-price construction phase.
The main evaluation criteria for the elaboration phase involve the answers to these questions:
Is the vision of the product stable?
Is the architecture stable?
Does the executable demonstration show that the major risk elements have been addressed
and credibly resolved?
Is the plan for the construction phase sufficiently detailed and accurate? Is it backed up with a
credible basis of estimates?
Do all stakeholders agree that the current vision can be achieved if the current plan is executed
to develop the complete system, in the context of the current architecture?
Is the actual resource expenditure versus planned expenditure acceptable?
The project may be aborted or considerably re-thought if it fails to pass this milestone.
Milestone name: Lifecycle architecture
SDLC
Construction Phase
During the construction phase, all remaining components and application features are developed and
integrated into the product, and all features are thoroughly tested. The construction phase is, in one sense,
a manufacturing process where emphasis is placed on managing resources and controlling operations to
optimize costs, schedules, and quality. In this sense, the management mindset undergoes a transition from
the development of intellectual property during inception and elaboration, to the development of
deployable products during construction and transition.
The outcome of the construction phase is a product ready to put in hands of its end-users. At minimum, it
consists of:
At the end of the construction phase is the third major project milestone (Initial Operational Capability
Milestone).
At this point, you decide if the software, the sites, and the users are ready to go operational, without
exposing the project to high risks. This release is often called a “beta” release.
The evaluation criteria for the construction phase involve answering these questions:
Is this product release stable and mature enough to be deployed in the user community?
Are all stakeholders ready for the transition into the user community?
Are the actual resource expenditures versus planned expenditures still acceptable?
Transition may have to be postponed by one release if the project fails to reach this milestone.
Transition Phase
The purpose of the transition phase is to transition the software product to the user community. Once the
product has been given to the end user, issues usually arise that require you to develop new releases,
correct some problems, or finish the features that were postponed.
The transition phase is entered when a baseline is mature enough to be deployed in the end-user domain.
This typically requires that some usable subset of the system has been completed to an acceptable level of
quality and that user documentation is available so that the transition to the user will provide positive
results for all parties.
This includes:
“beta testing” to validate the new system against user expectations
parallel operation with a legacy system that it is replacing
conversion of operational databases
training of users and maintainers
roll-out the product to the marketing, distribution, and sales teams
The transition phase focuses on the activities required to place the software into the hands of the users.
Typically, this phase includes several iterations, including beta releases, general availability releases, as well
SDLC
The primary evaluation criteria for the transition phase involve the answers to these questions:
Is the user satisfied?
Are the actual resources expenditures versus planned expenditures still acceptable?
Iterations
Each phase in the Rational Unified Process can be further broken down into iterations. An iteration is a
complete development loop resulting in a release (internal or external) of an executable product, a subset of
the final product under development, which grows incrementally from iteration to iteration to become the
final system.