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