0% found this document useful (0 votes)
28 views

Developer Fresher Software Development Process v1.6

Developer Fresher Software Development Process v1.6

Uploaded by

thichsao11
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views

Developer Fresher Software Development Process v1.6

Developer Fresher Software Development Process v1.6

Uploaded by

thichsao11
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 63

Software

Development
Process

Design by: FPT Software Academy

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use


Lesson Objectives
Understand FSOFT standard development process

Know steps to develop SRS, Design

Know steps in coding process

Know steps in testing process

Know about Agile and Scrum overview

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 2


Agenda
RECAP - SOFTWARE PROJECT PROCESS
01 Engineering Process and Project Management Process

FSOFT SOFTWARE PROJECT LIFECYCLE


02 Development Project and Maintenance Project

FSOFT PROJECT PROCESSES


03 Requirement Process; Design Process; Coding Process; Testing Process

PROJECT METHODOLOGY
04 Agile Scrum
Training Duration

Theory:
2.5h

Self-
study: 2h

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 4


Section 1

FSOFT: SOFTWARE PROJECT LIFECYCLE

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 5


Recap - Software Project Process
Requirement

Design

Coding

Testing

Deployment
(Installation)

Maintenance

Customer
Engineering Process Support Project Management Process

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 6


Fsoft: Software Project Lifecycle

“Software Development Life Cycle (SDLC) is a


process which defines the various stages and their
sequence that are involved in the development and
implementation of an IT system”

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 7


Fsoft: Software Project Lifecycle
 DEVELOPMENT PROJECT

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 8


Fsoft: Software Project Lifecycle
 MAINTENANCE PROJECT

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 9


Section 2

FSOFT PROJECT PROCESSES

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 10


Fsoft Project Processes

Requirement Process Design Process Coding Process Testing Process


▪ Objective ▪ Objective ▪ Objective ▪ Objective
▪ Workflow ▪ Workflow ▪ Workflow ▪ Workflow
▪ Work Product: SRS ▪ Work Product: Design doc. ▪ Work Product: Software Package ▪ Work Product: Test results ..
▪ Roles and Responsibilities ▪ Roles and Responsibilities ▪ Roles and Responsibilities ▪ Roles and Responsibilities

11
09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use
Section 2.1

Requirement Process

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 12


Requirement Process

Objective

Workflow

Work Product

Roles and Responsibilities

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 13


Requirement Process
 Objective No1.
To ensure that requirements for the software product are defined and understood.

No2.
Get to know that customer’s requirement is understand that customer’s needs and
expectation

No3.
To create SRS – Establish and maintain requirements agreement with the
requestor and affected groups

No4.
To ensure that requirements are met.

No5.
Requirements are documented and controlled to establish a basis for software
development and project management use.

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 14


Requirement Process
 Workflow

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 15


Requirement Process
 Work Product
RMS
(Requirement Management Sheet)

RMS is a mean for documenting, tracing, Q&A Sheet


URD (User Requirement Document) prioritizing, and controlling requirements. Product Prototype
It shows the relationships among requirements as
It explains the necessity of requirements, well as between requirements and other project 1/ Q&A Sheet documents the communication
the contexts of requirements, and the products between customers and suppliers about
criteria to complete requirements. requirements
URD can be a part of SRS. 2/ Prototype helps confirm requirements with
customers

SRS (Software Requirements Specification) CR Form


(Changed Requirement Form)
SRS is a description of the system to be developed. CR Form is the evidence for changes
It establishes the basis for an agreement between in requirements
customers and suppliers on what the product is to
do and not to do.

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 16


Requirement Process
 Role and Responsibility

BA DEV (Optional)
▪ Analyze user requirement
▪ Analyze user requirement with BA
▪ Prepare Q&A list to clarify unclear items with customers
▪ Call/interview customers if needed

▪ Develop use cases, system requirement ▪ Develop use cases, system requirement
▪ Develop functional specification ▪ Develop functional specification

▪ Call up meeting for review


▪ Keep meeting minutes records ▪ Provide technical solutions to fulfill requirement.

Approved SRS
Document

User Prepare Q&A, Review SRS


Develop SRS
Specification interview end document
document
Definition user…

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 17


Section 2.2

Design Process

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 18


Design Process

Objective

Workflow

Work Product

Roles and Responsibilities

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 19


Design Process
 Objective No1.
It is to design solutions satisfying requirements.

No2.
Create Architecture design document (ADD), high level design document (HLD)
and detail design document (DDD)

Develop design Review design


SRS documents documents

Approved Design
Documents

ADD, HLD, DDD

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 20


Design Process
 Workflow

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 21


Design Process
 Work Product

Architectural Design Detail Design


Design Prototype
Document Document

Review Reports Records DAR Report

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 22


Design Process
 Role and Responsibility

Developer PTL Tester

✓ Prototype ✓ Design/ DAR plan


Do ✓ Installation Manual ✓ ADD, Technical solution evaluation N/A
✓ User Manual ✓ Prototype

Do/Review DDD DDD N/A


Prototype
✓ ADD, Technical solution To be informed:
✓ Installation Manual
Review evaluation ✓ ADD
✓ User Manual
✓ Design/ DAR plan ✓ DDD
✓ Technical solution evaluation

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use


Section 2.3

Coding Process

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 24


Coding Process

Objective

Workflow

Work Product

Roles and Responsibilities

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 25


Coding Process
 Objective

Create Product Integration Plan Purpose Update source code

Create Code Modules The purpose of this process is to


Unit Test
develop software including
software components, software
system according to standards and
Code analysis scan Review and approve unit test
defined requirements.
report

Review source code Integrate Code Modules

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use


Coding Process
 Workflow

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 27


Coding Process
 Work Product
UNIT TEST CASE

PROJECT RECORD

UNIT TEST SCRIPT

CODE REVIEW CHECKLIST

Coding Work
UNIT TEST REPORT
Product
PRODUCT INTEGRATION PLAN

CI/CD QUALITY GATE


REPORT
SOFTWARE PACKAGE

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 28


Coding Process
 Create Plan

Purpose: To plan and prepare for


✓ Approved Project Plan
coding
✓ Approved Design document
01
✓ Approved SRS
✓ Coding standards
✓ DAR Evaluation Report (If any)
✓ Approved CICD Assessment and Resolution document
TIMELINE PTL

02
✓ Create Plan

PM Approve

03 ✓ Product integration plan


✓ Test plan are approved

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 29


Coding Process
 Create Code Modules

Purpose: To build, construct and/or develop code modules

Code analysis scan (CICD tools Summarize and submit result to Team
chain: sonarQube, Blackduck, lean
 Coverity)  Conduct Unit test 

Code modules and  Review code (Peer review,  Update source code: fix defect for
program units Team lead review) modules and program units 

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 30


Coding Process
 Code Analysis Scan

▪ Purpose:
– It is used to find security vulnerabilities and coding error, triage, and prioritize fixes for
existing problems in code.
– Code analysis scan is also to identify potential trouble spots in source code and then manually
audit these spots for security concerns.
– It can help project identify security weaknesses such as code injection, buffer overflow, SQL
injection and more
▪ Toolchains: SonarQ, blackduck, coverity
▪ Steps:

Code Run code


Issues/bugs
Modules & static Bug list Analysis bug Fix
detected by
DevOps analysis list issues/bugs
CI/CD tools
system (CICD)

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 31


Coding Process
 Code Analysis Scan

Purpose: Updating source code to improve


its functionality, fix bugs or security 01 ✓ Issues/bugs detected by CI/CD tools
vulnerabilities, or add new features ✓ Analysis result: these are bugs or not

Developer

TIMELINE 02 ✓ Fix issues/bugs detected by CI/CD tools

Developer

03 ✓ Issues/bugs detected by CI/CD tools are closed

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 32


Review source code
 Review source code

• Purpose: Reviewing source code is a process to identify bugs, increase code quality, and
help developers learn the source code
• Participant: developers, team leader, customer/stake holder
• Steps:

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 33


Unit Testing Process
 Objective
The purpose of unit testing is to check that each
unit works as intended and as per the client’s
requirements.

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 34


Unit Testing Process
 Review and approve unit test report

Purpose: The purpose of reviewing unit test ✓ Code Modules


reports is to ensure that the software 01 ✓ Test Report
application meets the client’s requirement ✓ Code coverage
and that each unit works as intended. ✓ DevOps system
Developer

TIMELINE 02 ✓ Review Unit test Report

Developer

03
✓ Test Report is approved

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 35


Integrate Code Modules
 Objective and Steps
▪ Purpose: ensure that each component works together as intended and as per the client’s requirements
▪ Steps:

Architecture Design document / Detailed Design document / SRS /


Integration Plan / DevOps system

Integrate components/ Integrate modules

Integrated Software package

Review and approve results of integration

Approved Software package

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 36


Integrate Code Modules
 Role and Responsibility

Developer PTL PM

Requirements analysis Requirements analysis Control development process

Adhere to coding standards and coding Request Customer/Product Owner review


Assess & build strategy for CI/CD
guidelines software

 Develop, update Code Modules. Control development process

Self-review source code. Review source code of team member

Fix Code analysis scanned by CI/CD


toolchain issues
Prepare, execute, update Unit test for
modules

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use


Section 2.4

Testing Process

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 38


Testing Process

Objective

Workflow

Work Product

Roles and Responsibilities

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 39


Testing Process
 Objective and Workflow

The purpose of this process is to plan, design


and conduct test software products to assure
that:

Requirements have been fulfilled

Defects have been detected and resolved before


delivery.

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 40


Testing Process
 Work Product

Test Design, Test Viewpoint & review Test Case, Test Procedure Specification,
records Test Scripts, Test Suite & review records

Testing Process

Test Plans & review records Test Results/ Test Report (Test result,
defect list, evidence files

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 41


Testing Process
 Role and Responsibility
Responsibilities
Responsible for managing:
✓ Planning
PM ✓ Customer interaction
✓ Problem solving
✓ Tracking team utilization
Responsible for:
✓ Create test plan for team
✓ Problem solving
PTL
✓ Review test design, test case, test procedure specification, test script, test suite, test result, test report, bug
✓ Analyst bug
✓ Tracking team utilization
Responsible for:
Tester ✓ Design, Implementing and executing test
✓ Reporting test activities

Developer Fix bug

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use


Section 3

PROJECT METHODOLOGY

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 43


PROJECT METHONOLOGY

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 44


PROJECT METHONOLOGY
Agile Scrum VS Waterfall
Methodology Methodology

Iterative development Development Sequential development

Delivery every two weeks Progress Delivery stage by stage

Built upfront with standards Quality Extensive testing at the end

Constant and fast feedback Feedback More tolerant of late learning

Depending on shared experiences Teamwork More autonomy and independence

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 45


PROJECT METHODOLOGY
1. Waterfall Overview
• Introduce
• Standard development life cycle stages
2. Agile overview
a. Introduce
b. Scrum Team
c. Scrum Artifact
d. Scrum Event
e. Scrum Rule

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 46


Waterfall Overview

“Waterfall model is the very first model that is used in SDLC.


It is also known as the linear sequential model”

✓ In this model, the outcome of one phase is the input


for the next phase.

✓ Development of the next phase starts only when the


previous phase is complete.

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 47


Agile Scrum overview
“Scrum is a management framework for incremental
product development”

✓ Teams are responsible for creating and adapting


their processes within this framework.

✓ Scrum uses fixed-length iterations, called Sprints.


Sprints are no more than 30 days long.

✓ Scrum teams try to develop a potentially releasable


product increment every Sprint.

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 48


Scrum Team: Roles

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 49


Scrum Team: Roles

Scrum Development Team Product Owner Scrum Master

✓ Ensures that team is fully functional and ✓ Defines the feature of the products, decide ✓ Ensures that team is fully functional and
productive on release date and content productive
✓ Enables close cooperation across all ✓ Prioritizes features according to market ✓ Enables close cooperation across all
roles and functions and removes barriers value roles and functions and removes barriers
✓ Shields team from external interferences ✓ Can change features and priority very sprint ✓ Shields team from external interferences
✓ Clarifies the purpose of scrum so that ✓ Accepts or reject work result ✓ Clarifies the purpose of scrum so that
everyone understands why they work everyone understands why they work
this way this way

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 50


Scrum Artifact: Product Backlog

The Product Backlog is an emergent,


ordered list of what is needed to improve
the product. It is the single source of work
undertaken by the Scrum Team.

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 51


Scrum Artifact: Sprint Backlog

The Sprint Backlog includes


▪ Sprint Goal (why)
▪ Set of Product Backlog items selected for the
Sprint (what)
▪ An actionable plan for delivering the Increment
(how)

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 52


Scrum Event: Sprint Planning

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 53


4. Scrum Event: Daily Scrum
15 minutes

1. Did?

2. Doing?

3. DamN?

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 54


Scrum Event: Sprint Review

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 55


Scrum Event: Sprint Retrospective

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 56


Scrum Event: Backlog Refinement

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 57


Scrum Rule: Definition of DONE
▪ The Definition of Done (DOD) is a formal description
to decide the work is completed and meets the quality
measures required for the product.
▪ Each Product backlog item will need to meet the
definition of Done before it can be released
▪ When many Development Teams are working on a
single product, need define a common definition of
done.
▪ Definition of Done should be constantly updated

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 58


Lesson Summary
Understand FSOFT standard development process

Know steps to develop SRS, Design

Know steps in coding, testing process

Knowledge of Project methodology

Understand Scrum framework

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 59


References
▪ https://www.scrum.org
▪ https://www.udemy.com
▪ https://www.agilealliance.org
▪ QMS: https://qms.fsoft.com.vn/
✓ PROCESS_REQUIREMENT DEVELOPMENT AND MANAGEMENT
✓ PROCESS_DESIGN
✓ KNOWLEDGE FOR QA_PROCESS_CODING
✓ PROCESS_CODING
✓ PROCESS_TEST
✓ GUIDELINE_SCRUM BASED SOFTWARE LIFECYCLE
✓ PROCESS_AGILE PROJECT MANAGEMENT BASED ON SCRUM FRAMEWORK

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use 60


Lesson Practice
1. Dự án A được kí hợp đồng 4 tháng, scope của dự án là cải tiến một số chức năng của một phần mềm bán ticket chơi game tại
trung tâm thương mại. Vì phần mềm đã được làm từ rất lâu nên tài liệu URD của dự án không được lưu trữ đầy đủ, chủ yếu
dựa vào code cũ để phân tích logic của phần mềm. Là một developer, bạn cần làm gì để đảm bảo có đủ thông tin để thực hiện
cải tiến các chức năng theo đúng ý của khách hàng ?

2. Dự án B là một development project, trong phase coding, dự án thực hiện scan code bằng tool SonarQube. Tuy nhiên sau quá
trình scan thì tool ghi nhận có nhiều bug (critical, blocker). Là developer, hãy liệt kê những nguyên nhân có thể gây ra việc
scan ra nhiều bug và đề xuất giải pháp.

3. Dự án C là dự án phát triển phần mềm, tuy nhiên trong quá trình làm việc, vì dự án cần phải bàn giao sản phẩm sớm hơn dự
định theo yêu cầu của khách hàng nên bỏ qua quá trình review code, UT để bàn giao đúng thời hạn. Sau khi bàn giao, khách
hàng có nhiều comment về chất lượng code của dự án. Với vai trò của team lead, thì bạn cần làm gì để giải quyết tình huống
này.

4. Bạn được tham gia vào dự án phát triển phần mềm với vai trò technical leader, giả sử thành viên trong dev team bị hư hay thất
lạc máy tính trong quá trình thực hiện dự án, bạn đưa phương án xử lý cho tình huống này.

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 61


Lesson Practice
1. Project A has contract in 4 months, the scope of the project is to migrate some functions of a software that sells game tickets at
the mall. Because the software has been made for a long time, the project's URD document is not fully, developer and BA need
to read source code to analyze the logic of the software. As a developer, what do you need to do to make sure you have
enough information to implement?

2. Project B is a development project, in the coding phase, the project scans the code using the SonarQube tool. However, after
the scanning process, the tool recorded many bugs (critical, blocker). As a developer, list the possible causes of scanning for
many bugs and suggest solutions.

3. Project C is a software development project, while implementing, the project needs to release the product earlier than planned
according to the customer's request so that team skip the code review and unit test process. After releasing, customers have
many comments about the code quality of the project. As a team lead, what do you need to do to resolve this situation?

4. You are involved in a software development project as a technical leader, if a member of the dev team breaks or loses a
computer during project implementation, you provide a solution for this situation.

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Acadademy - Internal Use 62


THANK YOU!

09e-BM/DT/FSOFT - @FPT SOFTWARE - FPT Software Academy - Internal Use

You might also like