This technical post is to summarize and reflex on SDLC
The terms ‘development cycle’ and ‘life cycle,’ are synonymous and have been in common use in the fields of computing and software since the 1960s.
The terms ‘development cycle’ and ‘life cycle,’ are synonymous and have been in common use in the fields of computing and software since the 1960s.
Systems
development life cycle: a process for planning, creating, testing and deploying
an information system. The systems development life-cycle concept applies to a
range of hardware and software configurations, as a system can be composed of
hardware only, software only, or a combination of both.
Some
examples of SDLC are: waterfall, spiral, agile software development (ex: SCRUM,
XP), rapid prototyping, incremental (ex: RUP) and ‘synchronize and stabilize’.
To choose the appropriate SDLC, one must possesses wide and deep knowledge of
characteristics each SDLC, as well as conducting a meticulous analysis of the
system. However, there are general suggestion that when requirements of a
system are clear and fixed, the product definition is stable and technology to
implement is known, he should consider linear model such as waterfall, spiral
models. On the other hand, in case that requirements are prone to change or not
clear, one could consider using agile software development due to the fact that
agile development consists of small periods (sprints), in each period the
development team only focus on developing one functionality. The functionality
is product- and user-based, trying to bring as much value as possible. The fact
users involves throughout the development process and system is built
iteratively one-by-one function, the project can adapt to the changes in
requirements.
The view of
SDLC as interrelated activities can be depicted as follows:
Next, we will discuss about SDLS's main activities.
Requirement
Of course, requirement should come
from user. Unfortunately, users often don't really know what they want. So we
will need more roles in defining requirement: Product owner and requirement
analyst. Ken Schafer asserts the need for a ‘Product Owner,’ someone who speaks
for the customer authoritatively and with ownership. Scrum’s insistence on a
product owner is essential as the process is driven by value and therefore it
is crucial to identify the person who is responsible for the product’s ROI and
who is therefore responsible and accountable for decisions such as what the
requirement is and which requirement to deliver first. The ideas of an on-site
customer and a product owner are designed to simplify the communication process
between users and developers. However they say little if anything about how to
choose the users, communicate or interact with them.
A more open interpretation of the
role of Analyst or Requirements Analyst is anyone who is involved in
requirements gathering and analysis.Various business titles could be applied to
the same role: Product Manager, Marketing Analyst, Researcher, Interaction
Designer, etc.
Evaluation
There are two ways to evaluate:
objective method which depends mostly on math and calculation and subjective
method which depends on review and opinions of some people which revealed in
survey, questionnaire, case study ect.
Implementation
3 types of implementation: big bang, parallel and phased implementation.
- · Big bang: the idea originates from the theory that big bang explosion creates the universe. When implement a system by big bang method, we immediately get rid of old system which currently handle the job of the new system, and put the new system to operation. However, this type of implementation is risky.
- · Parallel: New system and old system are working at the same time. This method is safe, however resource-consuming as two systems are working on the same resource (hardware, database), hence possibly reducing the quality of service.
- · Phased implementation: The process of getting rid of old system and introducing new system is sliced into phased. It sound ideal, however, how to define the right periods for the process is in question.
Maintenance
System should have a mechanism for automated bug report so that it can be
fixed is problems happen and updated to later versions.
No comments:
Post a Comment