Sie sind auf Seite 1von 12

Lecture 1 Software Engineering Layers

Introduction to Software Engineering Tools->methods->process model->a “quality” focus


Software Definition
 Software is:  Tools: Software Tools (Word Processors, Diagramming
Tools, Project Tools, Compilers, etc.)
◦ A product
 Methods: Modeling methods (DFD, ERD, Gantt Chart,etc.)
◦ A vehicle for delivering another product
 Process: Waterfall, Spiral, Incremental, etc.
 Software is collection of:
◦ Program
Software Engineering Phases
◦ Documentation
 Definition Phase (What)
◦ Data Procedure
◦ Systems Engineering, Project Planning, Requirements
Analysis
Software Characteristics  Development Phase (How)
 Software is engineered, not manufactured
◦ Software Design, Code Generation, Software Testing
 Software does not wear out
 Support Phase (Change)
 Most software continues to be custom built
◦ Correction, Adaptation, Enhancement, Prevention
Failure Curves for software
Umbrella Activities
 Umbrella activities are activities that are applied throughout
the software process:
◦ Project tracking and control
◦ Software Quality Assurance
◦ Software Configuration Management
◦ Document Preparation and Management

Capability Maturity Model


 CMM is used to determine an organization’s current state
Software Myths
of process maturity
 Myth: If we get behind schedule, add more programmers.
 Five levels of CMM:
 Reality: Adding people to a late software project makes it
later. ◦ Level 1: Initial (Ad Hoc)
 Myth: Software Engineering will make us create many and ◦ Level 2: Repeatable (Basic project management)
unnecessary documentation. ◦ Level 3: Defined (Process standardization)
 Reality: Software engineering is not about creating ◦ Level 4: Managed (Quantitative Management)
documents. It is about creating quality. Better quality ◦ Level 5: Optimized (Continuous process improvement)
leads to reduced rework. Reduced rework results in faster
delivery times. CMM Level 1: Initial
 The software process is characterized as ad hoc and
Software Crisis occasionally even chaotic. Few processes are defined, and
 During 1960-1970, most software development faced the success depends on individual effort.
following problems:
◦ Overdue schedule CMM Level 2: Repeatable
◦ Exceeding initial budget  Basic Project Management processes are established to track
◦ Inadequate software quality cost, schedule, and functionality.
◦ High software maintenance cost
CMM Level 3: Defined
Software Engineering  The process is “tailored from the organization’s set of
 Software engineering is first coined in 1968 at a software standard processes according to the organization’s tailoring
conference organized by NATO at Garmisch, Germany as guidelines, and contributes work products, measures, and
a solution to the software crisis. other process-improvement information to the organizational
 Software engineering is the establishment and use of sound process assets”.
engineering principles in order to obtain economically
software that is reliable and works efficiently on real CMM Level 4: Managed
machines.  Detailed measures of the software process and product
quality are collected.
Engineering Principles CMM Level 5: Optimized
 The engineering principles used in software engineering
comprises: Analysis, Design, Implementation, Testing
 The process area is adapted and optimized using quantitative Classical Waterfall Model
means to meet changing customer needs and to continually
improve the efficacy of the process area under consideration.

Personal Software Process


 The Personal Software Process (PSP) emphasizes personal
measurement of both the work product that is produced and
the resultant quality of work product (Humphrey 1997).
 The PSP process model defined five framework activities:
◦ Planning, High-Level Design, High-Level Design Review,
Development. Postmortem.
 PSP stresses the need for each software engineer to identify Feasibility Study
errors early and, as important, to understand the types of  Main aim of feasibility study:determine whether developing
errors that he/she is likely to make. the product
 This is accomplished through a rigorous assessment activity ◦ financially worthwhile
performed on all work products produced by the software ◦ technically feasible.
engineer.  First roughly understand what the customer wants:
 PSP can improve the productivity and software quality. ◦ different data which would be input to the system,
However, PSP has not been widely adopted throughout the ◦ processing needed on these data,
industry due to human nature and organizational inertia. ◦ output data to be produced by the system,
◦ various constraints on the behavior of the system.
Team Software Process (TSP)
 TSP is an extension of PSP.
Requirements Analysis and Specification
 The goal of TSP is to build a “self-directed” project team
 Aim of this phase:
that organizes itself to produce high-quality software:
◦ understand the exact requirements of the customer,
◦ Build self-directed teams that plan and track their work,
◦ document them properly.
establish goals, and own their processes and plans.
 Consists of two distinct activities:
◦ Show managers how to coach and motivate their teams.
◦ requirements gathering and analysis
◦ Accelerate software process improvement.
◦ requirements specification
◦ Provide improvement guidance to high-maturity  Requirements are organized:
organizations.
◦ into a Software Requirements Specification (SRS) document
◦ Facilitate university teaching of industrial-grade team skills.
Design
Summary  Design phase transforms requirements specification:
 Software Engineering is a discipline that integrates process,
◦ into a form suitable for implementation in some
methods, and tools for the development of computer
programming language.
software.
 In technical terms:
 The Capability Maturity Model Integration (CMMI) is a
◦ during design phase, software architecture is derived from
comprehensive process meta-model that describes the
the SRS document.
specific goals, practices, and capabilities that should be
 Two design approaches:
present in a mature software process.
◦ traditional approach,
 Personal and Team Software process emphasize
measurement, planning, and self-direction as key ingredients ◦ object oriented approach.
for a successful software process.
Implementation
Lecture 2  Purpose of implementation phase (aka coding and unit
Software Development Methodologies testing phase): translate software design into source code.
Software Process Model  During the implementation phase:
 A software development methodology is chosen based on ◦ each module of the design is coded,
the nature of the project and application, the methods and ◦ each module is unit tested
tools to be used, and the controls and deliverables that are  tested independently as a stand alone unit, and debugged,
required. Classical Waterfall Model, Iterative Waterfall ◦ each module is documented.
Model, Prototyping Model, Incremental Model, Spiral  The purpose of unit testing:
Model. ◦ test if individual modules work correctly.
 The end product of implementation phase:
◦ a set of program modules that have been tested individually.
Integration and System Testing Phase containment of errors
 Different modules are integrated in a planned manner:  Reason: rework must be carried out not only to the design
◦ modules are almost never integrated in one shot. but also to code and test phases.
◦ Normally integration is carried out through a number of  The principle of detecting errors as close to its point of
steps. introduction as possible:
 During each integration step, ◦ is known as phase containment of errors.
◦ the partially integrated system is tested.  Iterative waterfall model is by far the most widely used
model.
System Testing ◦ Almost every other model is derived from the waterfall
 After all the modules have been successfully integrated and model.
tested: system testing is carried out.
 Goal of system testing: Prototyping Model
◦ ensure that the developed system functions according to its  Before starting actual development,
requirements as specified in the SRS document. ◦ a working prototype of the system should first be built.
 A prototype is a toy implementation of a system:
Maintenance ◦ limited functional capabilities,
 Maintenance of any software product: ◦ low reliability,
◦ requires much more effort than the effort to develop the ◦ inefficient performance.
product itself.
◦ development effort to maintenance effort is typically 40:60. Reasons for developing a prototype
 Illustrate to the customer:
Iterative Waterfall Model ◦ input data formats, messages, reports, or interactive dialogs.
 Classical waterfall model is idealistic:  Examine technical issues associated with product
◦ assumes that no defect is introduced during any development development:
activity. ◦ Often major design decisions depend on issues like:
◦ in practice:  response time of a hardware controller,
 defects do get introduced in almost every phase of the life  efficiency of a sorting algorithm, etc.
cycle.  The third reason for developing a prototype is:
 Defects usually get detected much later in the life cycle: ◦ it is impossible to ``get it right'' the first time,
◦ For example, a design defect might go unnoticed till the ◦ we must plan to throw away the first product
coding or testing phase. if we want to develop a good product.
 Once a defect is detected:  Start with approximate requirements.
◦ we need to go back to the phase where it was introduced  Carry out a quick design.
◦ Redo some of the work done during that and all subsequent  Prototype model is built using several short-cuts:
phases. ◦ Short-cuts might involve using inefficient, inaccurate, or
 Therefore we need feedback paths in the classical waterfall dummy functions.
model.  A function may use a table look-up rather than performing
the actual computations.
 The developed prototype is submitted to the customer for his
evaluation:
◦ Based on the user feedback, requirements are refined.
◦ This cycle continues until the user approves the prototype.
 The actual system is developed using the classical waterfall
approach.

 Errors should be detected


◦ in the same phase in which they are introduced.
 For example:
◦ if a design problem is detected in the design phase itself,
 the problem can be taken care of much more easily
than say if it is identified at the end of the integration and
system testing phase  Requirements analysis and specification phase becomes
redundant:
◦ final working prototype (with all user feedbacks  Many organizations use a combination of iterative and
incorporated) serves as an animated requirements incremental development:
specification. ◦ a new release may include new functionality
 Design and code for the prototype is usually thrown away: ◦ existing functionality from the current release may also have
◦ However, the experience gathered from developing the been modified.
prototype helps a great deal while developing the actual
product. Evolutionary Model with iteration
 Even though construction of a working prototype model  Several advantages:
involves additional cost --- overall development cost might ◦ Training can start on an earlier release
be lower for:  customer feedback taken into account
◦ systems with unclear user requirements, ◦ Markets can be created:
◦ systems with unresolved technical issues.  for functionality that has never been offered.
 Many user requirements get properly defined and technical ◦ Frequent releases allow developers to fix unanticipated
issues get resolved: problems quickly.
◦ these would have appeared later as change requests and
resulted in incurring massive redesign costs. Spiral Model
 Proposed by Boehm in 1988.
Evolutionary Model  Each loop of the spiral represents a phase of the software
 Evolutionary model (aka successive versions or incremental process:
model): ◦ the innermost loop might be concerned with system
◦ The system is broken down into several modules which can feasibility,
be incrementally implemented and delivered. ◦ the next loop with system requirements definition,
 First develop the core modules of the system. ◦ the next one with system design, and so on.
 The initial product skeleton is refined into increasing levels  There are no fixed phases in this model, the phases shown in
of capability: the figure are just examples.
◦ by adding new functionalities in successive versions.  The team must decide:
 Successive version of the product: ◦ how to structure the project into phases.
◦ functioning systems capable of performing some useful  Start work using some generic model:
work. ◦ add extra phases
◦ A new release may include new functionality:  for specific projects or when problems are identified during a
 also existing functionality in the current release might have project.
been enhanced.  Each loop in the spiral is split into four sectors (quadrants).

Advantages of Evolutionary Model


 Users get a chance to experiment with a partially developed
Objective Setting (First Quadrant)
system:
 Identify objectives of the phase,
◦ much before the full working version is released,  Examine the risks associated with these objectives.
 Helps finding exact user requirements:
◦ Risk:
◦ much before fully working system is developed.  any adverse circumstance that might hamper successful
 Core modules get tested thoroughly: completion of a software project.
◦ reduces chances of errors in final product.  Find alternate solutions possible.

Disadvantages of Evolutionary Model Risk Assessment and Reduction (Second Quadrant)


 Often, difficult to subdivide problems into functional units:  For each identified project risk,
◦ which can be incrementally implemented and delivered. ◦ a detailed analysis is carried out.
◦ evolutionary model is useful for very large problems,  Steps are taken to reduce the risk.
 where it is easier to find modules for incremental  For example, if there is a risk that the requirements are
implementation. inappropriate:
◦ a prototype system may be developed.
Evolutionary Model with Iteration
Spiral Model (CONT.)  Effective software project management focuses on the four
 Development and Validation (Third quadrant): P’s: People, Product, Process, Project.
◦ develop and validate the next level of the product.
 Review and Planning (Fourth quadrant): The People
◦ review the results achieved so far with the customer and  The people management maturity model defines the
plan the next iteration around the spiral. following key practice areas for software people:
 With each iteration around the spiral: ◦ Recruiting
◦ progressively more complete version of the software gets ◦ Selection
built. ◦ Performance management
◦ Training
Spiral Model as a meta model ◦ Compensation
 Subsumes all discussed models: ◦ Career Development
◦ a single loop spiral represents waterfall model. ◦ Organization and work design
◦ uses an evolutionary approach -- ◦ Team/culture development
 iterations through the spiral are evolutionary levels.
◦ enables understanding and reacting to risks during each The Product
iteration along the spiral.  The product management encompasses:
◦ uses: ◦ Establishing objectives and scope
 prototyping as a risk reduction mechanism ◦ Considering alternative solutions
 retains the step-wise approach of the waterfall model. ◦ Identifying technical and management constrains
 Problem decomposition (Partitioning) is applied in two
Comparison of Life Cycle Models major areas:
 Iterative waterfall model ◦ The functionality that must be delivered.
◦ most widely used model. ◦ The process that will be used to deliver it.
◦ But, suitable only for well-understood problems.
 Prototype model is suitable for projects not well understood: The Process
◦ user requirements  The process management comprises the choice of framework
◦ technical aspects (waterfall, spiral, etc.) to be used throughout the project,
 Evolutionary model is suitable for large problems: depending on the nature of the system to be developed.
◦ can be decomposed into a set of modules that can be  A small number of framework activities are applicable to all
incrementally implemented, software projects, regardless their size or complexity (task,
◦ incremental delivery of the system is acceptable to the milestones, work products, and quality assurance points).
customer.  Umbrella activities (SQA, SCM, measurements) are
 The spiral model: independent of any one framework activity and occur
◦ suitable for development of technically challenging software throughout the process.
products that are subject to several kinds of risks.
The Project
Summary  Planning and controlling software project is the only way to
 Software engineering is: manage complexity.
◦ systematic collection of decades of programming experience  In 1998, industry data indicated that:
◦ together with the innovations made by researchers. ◦ 26% software project failed.
 A fundamental necessity while developing any large ◦ 46% experienced cost and schedule overruns.
software product:  To avoid project failure, a software project manager must:
◦ adoption of a life cycle model. ◦ Avoid a set of common warning signs
 Adherence to a software life cycle model: ◦ Understand the critical success factors for good management
◦ helps to do various development activities in a systematic ◦ Develop common sense for planning, monitoring and
and disciplined manner. controlling the project
◦ also makes it easier to manage a software development
effort. Project Team Structure
 Mantei (1981) suggests three generic team organizations:
Lecture 3 ◦ Democratic decentralized (DD)
Project Management Concepts No permanent leader, short duration coordination, group
Introduction decision making, horizontal communication, suits difficult
 Software Project Management is an umbrella activity within problems
software engineering.
◦ Controlled decentralized (CD) ◦ What will be done?
Defined leader, group decision making, horizontal and ◦ By When?
vertical communication, suits simple problems ◦ Who is responsible for a function?
◦ Controlled centralized (CC) ◦ Where are they organizationally located?
Team leader decision making, vertical communication, suits ◦ How to do the job technically and managerially?
simple problems (Fast) ◦ How much resource?

Project Team Structure Summary


 Constantine (1993) suggests four organizational paradigms  Software Project Management is an umbrella activity within
for software engineering teams: software engineering.
◦ A closed paradigm uses traditional hierarchy of authority,  The 4 P’s have substantial influence on software project
suitable for projects similar to past efforts. management:
◦ A random paradigm structures a team loosely, suitable for ◦ People must be organized into effective teams.
innovation / technological breakthrough. ◦ Product requirements must be well communicated and
◦ An open paradigm combination between closed and random decomposed.
paradigm, well suited for complex problems, but not as ◦ Process must be adapted to the people and the problem.
efficient as those two. ◦ Project must be organized in a manner that enables the
◦ A synchronous paradigm organized team members to work software team to succeed.
on pieces of the problem with little communication among  The project management activity encompasses measurement,
themselves. estimation, risk analysis, scheduling and tracking.

Chief Programmer Team Lecture 4


 Chief Programmer Team is one of the earliest software team Software Metrics
organization, using a closed paradigm structure, composed Why do we Measure?
of: To characterize, To evaluate, To predict,To improve
◦ A senior engineer (the chief programmer)
 Plans, coordinates, reviews all technical activities.
◦ Technical staff (2-5 people)
 Conducts analysis and development activities.
◦ A backup engineer
 Supports the senior engineer in his/her activities.
 The chief programmer may be served by one or more
specialists (e.g. telecommunication expert, database
designer), support staff (e.g. technical writers), and a
software librarian.

A high performance team


 To achieve a high-performance team:
◦ Team members must have trust in one another A Good Manager Measures
◦ Skill distribution must be appropriate to the problem Process Metrics
◦ Mavericks may have to be excluded from the team.  majority focus on quality achieved as a consequence of a
 A jelled team is a group of people so strongly knit that the repeatable or managed process
whole is greater than the sum of the parts.  statistical SQA data
◦ error categorization & analysis
Guidelines for a successful software project  defect removal efficiency
 Start on the right foot ◦ propagation from phase to phase
 Maintain momentum  reuse data
 Track progress
 Make smart decisions Project Metrics
 Conduct a postmortem analysis  Effort/time per SE task
 Errors uncovered per review hour
The W5HH Principle  Scheduled vs. actual milestone dates
 Boehm (1996) suggests an approach that addresses project  Changes (number) and their characteristics
objectives, milestones, and schedules, responsibilities,  Distribution of effort on SE tasks
management and technical approaches, and required
resources: Product Metrics
◦ Why is the system being developed?  focus on the quality of deliverables
 measures of analysis model
 complexity of the design
◦ internal algorithmic complexity
◦ architectural complexity
◦ data flow complexity
 code measures (e.g., Halstead)
 measures of process effectiveness
◦ e.g., defect removal efficiency

Metrics Guidelines Computing Function Points


 Use common sense and organizational sensitivity when
interpreting metrics data.
 Provide regular feedback to the individuals and teams who
have worked to collect measures and metrics.
 Don’t use metrics to appraise individuals.
 Work with practitioners and teams to set clear goals and
metrics that will be used to achieve them.
 Never use metrics to threaten individuals or teams.
 Metrics data that indicate a problem area should not be
considered “negative.” These data are merely an indicator
for process improvement.
 Don’t obsess on a single metric to the exclusion of other
important metrics.

Normalization for Metrics

Typical Size-Oriented Metrics Analyzing the Information Domain


 errors per KLOC (thousand lines of code)
 defects per KLOC
 $ per LOC
 page of documentation per KLOC
 errors / person-month
 LOC per person-month
 $ / page of documentation

The LOC-based Estimation (p. 128)


 Determining the major software functions
 Develop an estimation table based on historical data
 An Example: Taking Complexity into Account
Estimated lines of code (total): 33,200 LOC
Average productivity: 620 LOC / pm
Labor rate: $8000 per month
Cost per LOC: $13 (8000 / 620)
Total estimated project cost: $431,000 (13 x 33200)
Estimated effort: 54 pm (33200 / 620)

Typical Function-Oriented Metrics


 errors per FP (thousand lines of code)
 defects per FP
 $ per FP
 pages of documentation per FP
 FP per person-month FP-based Estimation (p. 129)
 Estimating the information domain values (input, output,
Why Opt for FP Measures? inquiries, files, external interfaces), calculating the count-
total
 Calculating the complexity adjustment factor  Schedule—how do we allocate resources along the timeline?
(0.65 + 0.01 x S Fi) what are the milestones?
 FP estimated = count-total x complexity adjustment factor.  Control strategy—how do we control quality? how do we
 An Example: control change?
Estimated FP (total): 375 FP
Average productivity: 6.5 FP / pm To Understand Scope ...
Labor rate: $8000 per month  Understand the customers needs
Cost per FP: $1230 (8000 / 6.5) Functions estimated LOC LOC/pm $/LOC Cost Effort (months)
Total estimated project cost: $461,000 (375 x 1230) UICF 2340 315 14 32,000 7.4
Estimated effort: 58 pm (375 / 6.5) 2DGA 5380 220 20 107,000 24.4
Measuring Quality 3DGA 6800 220 20 136,000 30.9
 Correctness — the degree to which a program operates DSM 3350 240 18 60,000 13.9
according to specification CGDF 4950 200 22 109,000 24.7
 Maintainability—the degree to which a program is amenable PCF 2140 140 28 60,000 15.2
to change DAM 8400 300 18 151,000 28.0
 Integrity—the degree to which a program is impervious to
Totals 33,360 655,000 145.0
outside attack
 Usability—the degree to which a program is easy to use  understand the business context
 understand the project boundaries
Defect Removal Efficiency  understand the customer’s motivation
 understand the likely paths for change

Cost Estimation

Summary
 Measurement enables managers and practitioners to improve
the software process; assist in the planning, tracking, and
control of a software project; and assess the quality of the
product (software) that is produced. Estimation Techniques
 Both size and function oriented metrics are used throughout  past (similar) project experience
the industry.  conventional estimation techniques
◦ Size oriented metrics use the LOC. ◦ task breakdown and effort estimates
◦ Function oriented metrics use the information domain and a ◦ size (e.g., FP) estimates
subjective assessment of problem complexity.  tools (e.g., Checkpoint)

Lecture 5 Functional Decomposition


Software Project Planning
Software Project Planning

Creating a Task Matrix

The Steps
 Scoping—understand the problem and the work that must be
done
 Estimation—how much effort? how much time?
 Risk—what can go wrong? how can we avoid it? what can
we do about it?
 you've arrived at an estimate, sleep on it
 adjust for the people who'll be doing the job—they have the
highest impact

Computing Expected Cost

Conventional Methods:
LOC/FP Approach Summary
 compute LOC/FP using estimates of information domain  The software project planner must estimate three things
values before a project begins:
 use historical effort for the project ◦ How long it will take.
◦ How much effort will be required.
Example: LOC Approach ◦ How many people will be involved.
 Accurate project estimates generally use at least two
estimation techniques in order to derive an accurate estimate.

Lecture 6
Risk Management
Example: FP Approach Reactive vs. Proactive Risk Strategies
measurement parameter count weight  Reactive:
number of user inputs 40 x 4 = 160 ◦ The software team does nothing about risks until something
number of user outputs 25 x 5 = 125 goes wrong.
number of user inquiries 12 x 4 = 48  Proactive:
number of files 4 x 7 = 28 ◦ The software team establishes a plan for managing risk.
0.25 p-m / FP = 120 p-m
number of ext.interfaces 4 x 7 = 28 ◦ The primary objective is to avoid risk.
algorithms 60 x 3 = 180 ◦ The team develop a contingency plan as a respond in case a
569
count-total risk can not be avoided.
complexity multiplier .84
478
feature points Risk Characteristics
 Uncertainty: The risk may or may not happen; that is, there
are no 100% probable risks.
Tool-Based Estimation
 Loss: If the risk becomes a reality, unwanted consequences
 project characteristics or losses will occur.
 calibration factors
 LOC/FP data
Categories of risks
 Project Risks: threatens project plan
Empirical Estimation Models
e.g. overdue schedule, increased budget.
 Technical Risks: threatens software quality
e.g. difficult / impossible implementation.
 Business Risks: threatens software viability
e.g. market risk, strategic risk, management risk, budget risk.

Another categorization of risks (Charette. 1989)


 Known risks: uncovered after careful evaluation of the
software project (unrealistic delivery date, lack of
documented requirements or software scope).
 Predictable risks: extrapolated from past project experience
Estimation Guidelines (staff turnover, poor customer communication).
 estimate using at least two techniques  Unpredictable risks: risks that are extremely difficult to
 get estimates from independent sources identify in advance, but they can and do occur.
 avoid over-optimism, assume difficulties
Stages of Risk Management Risk Table
 Risk Identification
 Risk Impact Assessment
 Risk Projection
 Building a Risk Table
 Determine Cutoff Line
 Develop RMMM Plan

Risk Identification
 Risk identification is a systematic attempt to specify threats
to the project plan (estimates, schedule, resource loading,
RMMM Plan
etc.).
 Once the first four columns of the risk table have been
 There are two distinct types of risks for each of the
completed, the table is sorted by probability and by impact.
categories previously presented:
 High probability, high impact risks are located at the top of
◦ Generic risks: a potential threat to every software project
the table.
◦ Product-specific risks: depends on the technology, people,  The project manager then defines a cutoff line, indicating
and the environment specific to the project that only risks that lie above the line will be given further
attention.
Risk Item Checklist  All risks that lie above the cutoff line must be managed, by
 Risk Item Checklist is one method for identifying risks. developing the RMMM plan.
 Generic risk subcategories:
◦ Product Size (PS) Risk Mitigation, Monitoring, and Management
◦ Business Impact (BU)
◦ Customer Characteristics (CU)  Risk Mitigation / Risk Avoidance
◦ Process Definition (PR) ◦ The software team adopts a proactive approach to risk.
◦ Development Environment (DE) ◦ Avoidance is always the best strategy.
◦ Technology to be built (TE)  Risk Monitoring
◦ Staff Size and Experience (ST) ◦ The project manager monitors factors that may provide an
indication of whether a risk is becoming more or less likely.
Risk Impact Assessment  Risk Management and contingency planning
 The impact of risks is divided into one of four impact ◦ Assumes that mitigation efforts have failed and that the risk
categories: has become reality
◦ Catastrophic: schedule delay, cost increase, project failure. An Example of RMMM
◦ Critical: schedule delay, cost increase, but not as high as the  Project Risk: High staff turnover
first one.  Probability: 70%
◦ Marginal: possible cost increase and schedule delay, but  Impact: 2 (Critical)
recoverable.  Mitigation: improve working environment, increase salary.
◦ Negligible: no effect to cost and schedule.  Monitoring: monitor the team member general attitude,
member interpersonal relationships.
 Management: assign backup team member.

Risk Projection Summary


 Risk Projection (Risk estimation) attempts to rate each risk  When a lot is riding on a software project, common sense
in two ways: dictates risk analysis.
 Risk Analysis can absorb a significant amount of project
◦ The probability that risk is real.
planning effort. But the effort is worth it.
◦ The consequences of the problems associated with the risk,
 Sun Tzu (500 BC) said, “If you know the enemy and know
should it occur.
yourself, you need not fear the result of a hundred battles.”
For the project manager, the enemy is risk.

SCRUM
Daily Scrum
Setiap hari, Tim Scruam harus melakukan pertemuan (rapat)
selama maksimal 15 menit. Hal ini dilakukan dengan tujuan
untuk mensinkronkan progres, mengidentifikasi masalah dan
menyelesaikan masalah yang ada dalam mengerjakan
pekerjaannya.
Pertanyaan yang biasa ditanyakan adalah :
 Apa yang anda lakukan sejak pertemuan terakhir ?
 Apa rencana yang anda lakukan sampai pertemuan
berikutnya ?
 Apa ada suatu masalah yang membuat anda tidak dapat
mengerjakan pekerjaan yang telah direncanakan sebelumnya
?
Pertanyaan ketiga digunakan untuk mencari solusi dari
permasalahan yang muncul. Mulai dari pertanyaan yang
Scrum building block disebut Sprint. Sprint adalah sebuah bersifat teknis hingga non-teknis yang dinilai dapat
kotak-waktu (yang biasanya mempunyai durasi 1 hingga 4 mengacaukan pekerjaan.
minggu) dimana tim pengembang fokus dalam mencapai
target yang jelas. Setiap Sprint selalu berakhir dengan Sprint Review
diikuti Sprint Review, dimana hasil yang sudah dibuat Setiap Sprint selalu berakhir dengan mendemontrasikan dan
dipresentasikan dan didemontrasikan didalam sebuah rapat mempresentasikan fitur-fitur yang telah dikerjakan. Hal
tim. tersebut dilakukan untuk memastikan bahwa fitur-fitur
tersebut dapat bekerja dengan baik.
Istilah-istilah dalam Scrum
Sprint Retrspective
Didalam Sprint Retrspective, Tim Scrum merefleksikan
Product Backlog
bagaimana pekerjaan-pekerjaan berjalan pada Sprint
Pemilik Proyek menyusun dan mengumpulkan semua
sebelumnya?
permintaan dan kebutuhan sistem, misalnya fitur-fitur yang
Harapan yang ingin dicapai pada Sprint Retrspective adalah
dibutuhkan dan-atau kebutuhan non-fungsional sistem. Setelah
adanya perbaikan tindakan sehingga Sprint berikutnya dapat
tujuannya sudah ditetapkan, semua permintaan dan kebutuhan
dikerjakan dengan lebih baik lagi.
tersebut dibagi-bagi menjadi bagian-bagian kecil yang mana
Perbaikan-perbaikan tersebut harus di-implementasi-kan pada
setiap bagian kecil tersebut harus mempunyai nilai dan layak
Sprint berikutnya.
untuk dikembangkan..
ROLES
Pemilik Proyek juga menentukan skala prioritas dalam Development Team
pengerjaan bagian-bagian kecil tersebut. Bagaimana dan Development team atau tim pengembang adalah team yang
seperti apa bagian-bagian kecil tersebut diimplementasikan mendesain dan melakukan proses problem-solvers. Biasanya
dan di-deliver? team tersebut terdiri dari 3-9 orang.
Pertanyaan tersebut akan menghasilkan sebuah to-do-list
berdasarkan kebutuhan pasar dan kebutuhan pelanggan yang
3-9 orang adalah team yang paling optimal dalam
selalu berubah seiring dengan berjalannya waktu.
menggunakan metode scrum berdasarkan beberapa penelitian
yang ada.
Backlog Refinement
Pembagian tugas dan distribusi informasi ditentukan diantara
Backlog harus di-maintain dengan baik dan tepat oleh Tim anggota tim itu sendiri. Setiap anggota tim bertanggungjawab
Scrum untuk dilakukan perencanaan, sehingga Sprint dapat atas keberhasilan keluaran sprint yang dilakukan.
berjalan dengan lancar. Hal-hal yang harus dilakukan dalam
me-maintain backlog antara lain adalah melakukan proses
estimasi dan breakdown kebutuhan, Hal tersebut dilakukan Product Owner
agar kondisi Sprint (1-4 minggu) terpenuhi. Product Owner atau pemilik proyek harus memastikan bawha
tim pengembang bekerja sesuai dengan target yang telah
ditetapkan dilihat dari kacamata bisnis.
Sprint Pemilik proyek melakukan manajemen terhadap Product
Sprint adalah kotak-waktu yang berisi periode kerja dimana Backlog, yang dibreakdown menjadi to-do-list, sehingga
pada sprint fokus terhadap delivery produk berdasarkan item- semua keinginan dan kebutuhan sistem dapat terekam dengan
item yang dipilih dari Product Backlog. baik berdasarkan keuntungan yang diterima dengan
mempertimbangkan sisi bisnisnya.
Didalam Sprint selalu ditetapkan waktu pekerjaan secara Pemilik proyek fokus pada bagaimana produk dihasilkan
konsisten dan Sprint yang baru dimulai sesegera mungkin
nantinya. Selain itu pemilik proyek juga harus selalu melihat
setelah sprint yang ada telah selesai dikerjakan. berapa banyak dana yang dikeluarkan dalam mengembangkan
produk dan seberapa besar pendapatan yang dihasilkan oleh
produk tersebut.

Scrum Master
Scrum master atau tenaga ahli Scrum adalah kombinasi dari
pelatih, fixer dan penjaga gawang.
Hal yang paling penting dari Scrum Master adalah, Scrum
Master harus dapat mengarahkan dan melatih Tim
Pengembang dan Pemilik Proyek untuk memastikan bahwa
mereka selalu berada dalam kondisi terbaiknya dalam meraih
kesuksesan.
Scrum Master memimpin rapat setiap harinya - Daily Scrum.
Scrum master harus memastikan bahwa tim pengembang tidak
teralihkan fokusnya pada hal-hal diluar proyek/pekerjaan.

Scrum Team
Scrum Team atau Tim Scrum adalah gabungan dari Tim
Pengembang, Pemilik Proyek dan Tenaga Ahli Scrum.

Das könnte Ihnen auch gefallen