Professional Documents
Culture Documents
PAUSE
Good? Fantastic!
Todays topic is SDLC, its importance and How important is our job!
So I will speak for 20 odd minutes, pause, and then open it up for Q&A, not in
between though. PAUSE
Sounds good?
pause
Cool!
I am going to speak about the process of developing software. It will not include the
tools used for developing software. Essentially in software terminology, the process
is called SDLC (Software/System Development Life Cycle).
Now imagine, the life cycle of a human being. Pause. Likewise there is a lifecycle of
software, right?
For us humans - a baby is planned by parents based on what purpose it would serve
in the world and for itself. Like 40 years back in India more kids meant more bread
winners. Then there is the stage of analysis/conception, then the architect of the
world designs in darkness the baby by choosing the right design and there starts
the development of the baby in darkness for 9 months, by Lords army of invisible
experts who we call demi-gods and then the baby is released to the world and then
follows the growth and maintainance, upgradation of new modules added in the
form of lifelong education & training to serve different purpose of the world, and
somewhere towards the end a steady stage of maturity and then finally comes
death. Same process is true for other animals also, right?
another time for another speaker, maybe Rupa Thakur. ;). I will touch the tip of the
iceberg on the adaptability. My Manager Moumita is a VERY GOOD source to run by,
for adaptability fit of a candidate for a position.
Now the technical fit mainly comprises of 2 main attributes. Process knowledge and
tools knowledge. Process knowledge is the SDLC part of it and tools knowledge is
the plethora of tools you see in the JD of the position. Eg: IBM Requisite Pro, MSProject, MS-Visio, IBM ClearCase, ClearQuest, IntelliJ, NetBeans, WebLogic,
Websphere, Ant, LoadRunner, Installshield, Sharepoint etc. On tools, what we look
for is a high tech high skilled person with an ability and/or prior expertise of using
these tools without much error.
On Process knowledge, the SDLC process has given rise to different variants of it
depending on the type of software to be build like for inhouse use as in Dell's/EMC's
machine programming or for building software to be sold off the shelf to many
different companies. To add to that IBM mainframes like TPF and all has very
different process.
Now a little bit about the geographic location of the clients from where the project is
off-shored. This will be the tip of the iceberg about the adaptability I mentioned a
little while earlier. most of us place candidates for projects coming from USA, Right.
Now as per my knowledge, speaking to people who lived in USA for a decade or
more - there are mainly two different variants of SDLC used, although there are
many and the use is based on the type of project undertaken.
So, today I am going to cover some topics which will be really important for we
recruiters to find the right technical talent - whichever client we are working for.
Please understand, my intention is not to make you a software engineer, for which
you will need to go back to school for 4 years. Rather I will try to cover topic on how
a set or multiple sets of software engineers, qa's, project teams work together to
deliver a product or project. This will kind of give you a 10 thousand feet view of
what happens in that software engineering kitchen and therefore enable you to find
the right chef, helpers, food testers analogous to software engineering.
So essentially, its SDLC and its different variants that have emerged over time.
One thing to remember though, in the beginning is, One kind is used in east coast of
USA and it primarily extends from extreme east to central part of USA, down south
and up north, and the second variant is used in silicon valley i.e north California
primarily and maybe some part of Seattle and Los Angeles. Remember east coast
companies are other businesses who produce software to be used particularly for
their businesses, whereas west coast companies are mainly off the shelf software
only businesses, although there are exceptions.
The thing to know if courage permits, from which location in USA the project is offshored from, or which time zone people your candidate will be working with. That
will give you an idea of what kind of candidate is good fit. For instance, I currently
work with client EMC, which is primarily based out of east coast of USA. Therefore I
try to find candidates who have already worked on projects from east coast, in
similar sized company, and of course same skills.
My experience has been it is hard for a guy who worked on projects from only
Silicon valley, California to adjust to projects from east coast. It just requires 2
different kind of energy levels, you know!
Having said that, lets see what SDLC is and how they are applied to the different
projects.
Most of you are familiar with this term. Its the Software Development Life Cycle.
So to sum it all, essentially what we are looking for, is a technician who knows the
process and based on his role, expertise on a particular set of tools out of a group of
tools, selected by the client which best fits the chosen process to accomplish a
project.
Stage 2: Defining Requirements : Once the requirement analysis is done the next
step is to
clearly define and document the product requirements and get them approved from
the
customer or the market analysts. This is done through SRS Software Requirement
Specification document which consists of all the product requirements to be
designed and
developed during the project life cycle.
Stage 3: Designing the product architecture : SRS is the reference for product
architects to
come out with the best architecture for the product to be developed. Based on the
requirements specified in SRS, usually more than one design approach for the
product
architecture is proposed and documented in a DDS - Design Document
Specification. This DDS
is reviewed by all the important stakeholders and based on various parameters as
risk assessment, product robustness, design modularity , budget and time
constraints , the best
design approach is selected for the product.
A design approach clearly defines all the architectural modules of the product along
with its
communication and data flow representation with the external and third party
modules (if
any). The internal design of all the modules of the proposed architecture should be
clearly
defined with the minutest of the details in DDS.
Stage 4: Building or Developing the Product : In this stage of SDLC the actual
development
starts and the product is built. The programming code is generated as per DDS
during this
stage. If the design is performed in a detailed and organized manner, code
generation can be
There are various software development life cycle models defined and designed
which are
followed during software development process. These models are also referred as
"Software
Development Process Models". Each process model follows a Series of steps unique
to its type,
in order to ensure success in process of software development. Following are the
most
important and popular SDLC models followed in the industry:
Waterfall Model
Iterative Model
Spiral Model
V-Model
Big Bang Model
The other related methodologies are Agile Model, RAD Model Rapid Application
Development and Prototyping Models.
V- Model design
Under V-Model, the corresponding testing phase of the development phase is
planned in
parallel. So there are Verification phases on one side of the V and Validation
phases on
the other side. Coding phase joins the two sides of the V-Model.
The below figure illustrates the different phases in V-Model of SDLC.
What is Agile?
Agile model believes that every project needs to be handled differently and the
existing
methods need to be tailored to best suit the project requirements. In agile the tasks
are
divided to time boxes (small time frames) to deliver specific features for a release.
Iterative approach is taken and working software build is delivered after each
iteration.
Each build is incremental in terms of features; the final build holds all the features
required by the customer.
requirement analysis and planning done in the beginning of cycle. Any changes to
be
incorporated go through a strict change control management and prioritization.
Agile uses adaptive approach where there is no detailed planning and there is
clarity on
future tasks only in respect of what features need to be developed. There is feature
driven development and the team adapts to the changing product requirements
dynamically. The product is tested very frequently, through the release iterations,
minimizing the risk of any major failures in future.
Customer interaction is the backbone of Agile methodology, and open
communication
with minimum documentation are the typical features of Agile development
environment.
The agile teams work in close collaboration with each other and are most often
located in
the same geographical location.
Then there is RAD where software prototyping goes alongwith the development.
Mainly used in off-shored projects to a 3rd party company which does not have a
proven brand name.
---------------------------How are we important. We provide the right match not the devilish match which
could throw the project in hay.