SlideShare a Scribd company logo
1 of 37
www.luxoft.com
Documentation management
in SW Projects
www.luxoft.com
Three “little stories”
 Story 1
- Mentor: “To be able to do something useful you have to know the basis about our project”
- Engineer: “Where can I read about it?”
 Story 2
- Customer: “I don’t accept it”
- Team: “But this is what we have agreed”
- Customer: “I don’t think so.”
 Story 3
- Team A: “We will send you those parameters, you just have to save them”
- Team B: “Which parameters?”
- Team A: “The one I have described you yesterday”
www.luxoft.com
Content
1. Requirements
2. Architecture
3. Documentation development process
4. Quality
5. Tooling
www.luxoft.com
Requirements
www.luxoft.com
Requirements mess :)
www.luxoft.com
Requirements model
Customer (“Wishes”) Supplier (“Specifications”)
End user
Functional
C-RS S-RSNon-Functional
Other
Engineering
Functional
C-TRS S-TRSNon-Functional
Other
Managerial
Organizational
C-PRS S-PRSFinancial
Other
www.luxoft.com
Requirements elaboration
 Customer requirements are fragmented and
don’t match needs of supplier
 Supplier requirements is an elaboration or
merge of corresponding supplier and
customer requirements
 S-TRS is the main “source of truth” for
“What has to be done?” question
 S-PRS is the main “source of truth” for
“How project has to be done?” question
C-PRS
C-RS
C-TRS
S-PRS
S-RS
S-TRS
Architecture
Design
Code
Customer Supplier
www.luxoft.com
Requirements model – typical names
Group Content type Customer Supplier
End user
Functional CRS TRS
Non-Functional CRS TRS
Other Not tracked Not tracked
Engineering
Functional Specifications TRS
Non-Functional Specifications TRS
Other Not tracked Not tracked
Managerial
Organizational PMP S-PRS
Financial Contract template, SOW template Contract, SOW
Other Not tracked Contract, SOW, Not tracked
www.luxoft.com
End user requirements and elements examples
Requirements that describe cooperation
between system and actual user (person).
 Can describe system not precisely
 Can be verified by end user when system is
running
 Not related to the internal structure of the
system – describe system as a “black box”
 Functional
- Use cases
- User stories
- User Features
 Non-Functional
- System Responsiveness
- System Up-time
- System Recoverability
 Hardware
- Type
- Size, Weight
www.luxoft.com
Engineering requirements and elements examples
Requirements that clarify end user
requirements and describe system with the
level of technical details necessary to develop
system.
 Maximize precision level of system
description
 It might be possible to verify them by end
user
 Can describe any internal structure,
communication, protocol, rules, etc.
 Functional
- Use cases specifications
- Protocols definition
 Non-Functional
- Modules recoverability
- Timing requirements
 HW
- HW specifications
www.luxoft.com
Managerial requirements and elements examples
Requirements that describe why, when and
how project/product will be done.
 Can be related to any managerial aspect
 Typically appear first, get finalized last
 Organizational
- Milestones
- Processes (PMP, CMP)
- Team
- Risks, Assumptions, Dependencies
- Communication
- Quality
 Financial
- Payments
- Scope
www.luxoft.com
Requirements sources
End-user
 Customer input
 Business analysis
 End-user feedback
 Testers feedback
 Experience
Engineering
 Requirements analysis
 Requirements elaboration
 Architecture definition
 Design definition
 System analysis
 Experience
Managerial
 Team capabilities
 Customer negotiations
 Requirements analysis
 Risks analysis
 Experience
www.luxoft.com
Architecture
www.luxoft.com
Typical “Architecture”
www.luxoft.com
Architecture enterprise model (Zachman framework)
www.luxoft.com
Architecture model (Simplified 1)
What How Where Who When Why
Executive Scope
High-level
processes
Location R&R, Team Milestones
Business goal,
Payments
Managerial
requirements
Product
End-user
Features
Use cases,
Non-functional
System
deployment
Users
Non-functional
requirements
Business proc.
analysis
End-user requirements
Architect
Technical
features
Sequences
SW
Deployment
Domains Timing Traces SW Architecture
Development Module features
Sequences
Algorithms
SW
Deployment
Components
Classes
Timings Traces High-Level Design
Team Team tooling
Managerial
requirements
www.luxoft.com
Architecture model (simplified 2)
Managerial requirements
End-user requirements
Engineering requirements
System/SW Architecture
^ High-Level Design
www.luxoft.com
Documentation elaboration
 Architecture is an elaboration of S-TRS
 Customer expectations related to
implementation are treated as C-TRS
- This allows to simplify actual development
 Design is an elaboration and a part of
architecture
 Architecture is the main “source of truth”
for “How it has to work?” question
C-PRS
C-RS
C-TRS
Architecture
Design
Code
S-PRS
S-RS
S-TRS
Architecture
Design
Code
Customer Supplier
www.luxoft.com
SW Architecture and elements example
Document that describes decisions taken to
define system boundaries, internal structure
and rules
 Is derived from requirements
 Defines sub-systems/modules
(responsibilities, boundaries)
 Defines communication principles between
sub-systems/modules
 Considers modules as black-box
 Responsibilities
 Decisions
 Logical view
- System view, System level architecture
- Functional domain breakdown
 Development view
- Code development guidelines
- Integration strategy, Integrated libraries
 Physical view
- Partitioning. Memory limits, CPU limits
- IPC, Processes
 Conventions
www.luxoft.com
High-Level design and elements example
Document that describes decisions taken to
define sub-system/module internal structure
and rules
 Defines details of communications between
modules, subsystems
 Defines details of sub-system
 Responsibilities
 Decisions
 High level design
- System view
- Environment (Outgoing, Incoming)
- Breakdown (components, interfaces, internal
dependencies)
- Deployment (Binaries, Threads)
- Testing strategy
 Detailed view
- Components, interfaces, etc.
- Diagrams
www.luxoft.com
Architecture sources
System/SW Architecture
 Engineering requirements
 End-user requirements
 Managerial requirements
 Technical Limitations
 3rd party modules
 Legacy code
 Experience
High-Level design
 System/SW Architecture
 Engineering requirements
 Experience
www.luxoft.com
Documentation development process
www.luxoft.com
Development process – V-Model - expectation
www.luxoft.com
Development process important notes
“V” model is always used, but usage might vary.
 Iterative development (like SCRUM) have simplified “V” on every
iteration
 Change request processing – is a “V” for a single feature
www.luxoft.com
Development & Documentation process – typical reality
• Clarifications
• Supplier requirements
development
(fragments)
Customer
requirements
analysis
• More clarifications
• Major architecture
decisions specification
Architecture
development • More clarifications
• Design documentation
(fragments)
• First coding
(prototyping)
Design
development
• More clarifications
• Some updates to
design
• Coding
• Testing
Development
• Test cases definition
• System testing
• More clarifications
• Testers feedback
System testing
www.luxoft.com
Typical reality problems
• Only fragments of clarified requirements are documented
Customer requirements analysis
• Requirements are not updated after further clarifications
• Not all architecture decisions are documented
• Reasons for decisions are not documented
Architecture development
• Requirements are not updated after further clarifications
• Architecture is not updated after further clarifications
• Only fragments of design are documented
• Prototyping is considered by management as first results, rather than Proof-Of-Concept
Design development
• Requirements, Architecture, Design are not updated after further clarifications
• Requirements, Architecture, Design are not updated after coding and testing
Development
• Requirements, Architecture, Design are not updated after further clarifications or feedback
• Decisions on bug-fixing are taken quickly, locally, without checking impact on the whole system
Testing
www.luxoft.com
Important Consequences
No baseline
Working on different
requirements for different
release
Mismatch between
different parts of
documentation
Outdated documentation
www.luxoft.com
Reasons
It is hard to
formulate
decision shortly
• Engineers try to avoid
this
Documentation is
separated from
the main process
• It becomes “additional
effort”
Time pressure
• Short-term
perspective focus
(quick-fix, quick-
solution)
• “Additional effort” is
not worth it
“Team is aware of
all decisions”
• “It’s easier and faster
to tell than to write”
• “Documentation is
outdated anyway”
www.luxoft.com
Tips to improve
Define required
documentation details
•I won’t do more that absolutely
required anyway
•You will do what is absolutely
required anyway
Simplify documentation
development
•Use advanced tooling
•Make tutorials on tooling usage
•Show how to use the tool yourself –
during meetings, talks
Make documentation part of
the process
•Integrate process with tool to avoid
“additional effort” for documentation
•Document decisions, agreements
immediately by tool
•Ask for decisions in written form
www.luxoft.com
Quality
www.luxoft.com
Product quality definition (by standard)
ISO
9126
Functionality
• Suitability
• Accuracy
• Interoperability
• Security
• Functionality
compliance
Reliability
• Maturity
• Fault tolerance
• Recoverability
• Reliability
compliance
Usability
• Understandability
• Learnability
• Operability
• Attractiveness
• Usability
compliance
Efficiency
• Time behaviour
• Resource utilization
• Efficiency
compliance
Maintainability
• Analyzability
• Changeability
• Stability
• Testability
• Maintainability
compliance
Portability
• Adaptability
• Installability
• Co-existence
• Replaceability
• Portability
compliance
Product is of good quality if
 I like it, because it
(usability)
 satisfies my needs by
(functionality)
 helping me to reach my goals easier by
(efficiency)
 doing what I want, how I want
(functionality, efficiency)
 with a quality I want and
(functionality, efficiency)
 does have no problems while doing this
(reliability)
www.luxoft.com
How to ensure good quality
Each quality requirement shall be met
- Before product development
 Choose correct development model
- During product definition
 Make correct business analysis
- During product development
 Develop what was defined
 Ensure mature development process
- After product development
 Verify result against requirements
Quality related roles
 Business analytic
 Requirements manager
 Architect
 Technical lead
 Quality engineer
 Developer
www.luxoft.com
Questions that are hard to answer
When starting project
 Have we processed all customer r. and
developed corresponding supplier r.?
 Have we processed all end-user r. and
developed corresponding engineering r.?
 Have we processed all engineering r. and
made corresponding architectural decisions,
sub-systems, modules?
 Have we processed all architectural
decisions and made corresponding design
decisions, interfaces, classes, sequences?
When processing any change
 What will be the impact if this module, class, etc. is
changed?
- What might be broken?
- What shall be tested?
 What will be the impact if this module will be
moved/changed?
- Which end-user functionality will be affected?
- Which other modules, teams will be affected?
- How much time will it take?
- How much will this cost?
www.luxoft.com
Traceability
Traceability is a bi-directional linkage
between elements of the documentation
 Allows to answer important questions
(prev. slide) by making coverage analysis
 Answers questions “derived from”,
“required because”, “required by”
 Allows to analyze impacts in case of
change of an item
 Allows to automate reporting
Managerial
requirements
End-user
requirements
Engineering
requirements
Managerial
requirements
End-user
requirements
Engineering
requirements
Architecture
High-Level
Design
Code
Customer Supplier
www.luxoft.com
Tooling
www.luxoft.com
Typical tooling
Documents
(Word, PDF, etc.)
• Easy to start
• Hard to compare
• Hard to make
version control
• Hard to make
linkage between
documents
• Developers don’t
like
Wikipedia style
(ex.: Confluence)
• Harder to start
• Easy to compare
• Easy to make
version control
• Easy to make
linkage between
documents, but
hard to track
them
• Developers
might like
GIT
documentation
• Harder to start
• Easy to compare
• Easy to make
version control
• Harder to make
linkage between
documents, hard
to track them
• Developers like
Special tools
• Harder to start
• Easy to compare
• Easy to make
version control
• Easier to make
linkage between
documents, easy
to track them
• Developers don’t
like
• Costs
Special formats
• Hard to start
• Easy to compare
• Easy to make
version control
• Easier to make
linkage between
documents, easy
to track them
• Developers
might like
• Support
generation of
any document
www.luxoft.com
THANK YOU

More Related Content

Similar to Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hints »

System design techniques and networks
System design techniques and networksSystem design techniques and networks
System design techniques and networksRAMPRAKASHT1
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting examplecorehard_by
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxAbdulRaheem254960
 
HCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdfHCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdfudhayaveenaa
 
Knowledge-Based Analysis and Design (KBAD): An Approach to Rapid Systems Engi...
Knowledge-Based Analysis and Design (KBAD): An Approach to Rapid Systems Engi...Knowledge-Based Analysis and Design (KBAD): An Approach to Rapid Systems Engi...
Knowledge-Based Analysis and Design (KBAD): An Approach to Rapid Systems Engi...Elizabeth Steiner
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESSIvano Malavolta
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement SpecificationNiraj Kumar
 
Product Development
Product DevelopmentProduct Development
Product DevelopmentJohn Gibbon
 
Mis system analysis and system design
Mis   system analysis and system designMis   system analysis and system design
Mis system analysis and system designRahul Hedau
 
Un it 2-se-mod-staff
Un it 2-se-mod-staffUn it 2-se-mod-staff
Un it 2-se-mod-staffvijisvs2012
 
Connecting the dots mbse process dec02 2015
Connecting the dots mbse process dec02 2015Connecting the dots mbse process dec02 2015
Connecting the dots mbse process dec02 2015loydbakerjr
 
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdfJayanthi Kannan MK
 
Beit 381 se lec 15 - 16 - 12 mar27 - req engg 1 of 3
Beit 381 se lec 15 - 16 -  12 mar27 - req engg 1 of 3Beit 381 se lec 15 - 16 -  12 mar27 - req engg 1 of 3
Beit 381 se lec 15 - 16 - 12 mar27 - req engg 1 of 3babak danyal
 
Requirements Engineering - "Ch2 an introduction to requirements"
Requirements Engineering - "Ch2 an introduction to requirements"Requirements Engineering - "Ch2 an introduction to requirements"
Requirements Engineering - "Ch2 an introduction to requirements"Ra'Fat Al-Msie'deen
 
W4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gatheringW4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gatheringFareeha Iftikhar
 
Business analyst| Murex training at Analyst360
Business analyst| Murex training at Analyst360Business analyst| Murex training at Analyst360
Business analyst| Murex training at Analyst360Analyst Murex training
 

Similar to Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hints » (20)

System design techniques and networks
System design techniques and networksSystem design techniques and networks
System design techniques and networks
 
Mixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting exampleMixing d ps building architecture on the cross cutting example
Mixing d ps building architecture on the cross cutting example
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptx
 
HCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdfHCI U-II HCI software Process (1).pdf
HCI U-II HCI software Process (1).pdf
 
10 srs
10 srs10 srs
10 srs
 
Knowledge-Based Analysis and Design (KBAD): An Approach to Rapid Systems Engi...
Knowledge-Based Analysis and Design (KBAD): An Approach to Rapid Systems Engi...Knowledge-Based Analysis and Design (KBAD): An Approach to Rapid Systems Engi...
Knowledge-Based Analysis and Design (KBAD): An Approach to Rapid Systems Engi...
 
Software development PROCESS
Software development PROCESSSoftware development PROCESS
Software development PROCESS
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Product Development
Product DevelopmentProduct Development
Product Development
 
Unit II- Hardware design & testing methods1 - Electronic Product Design
Unit II- Hardware design & testing methods1 - Electronic Product DesignUnit II- Hardware design & testing methods1 - Electronic Product Design
Unit II- Hardware design & testing methods1 - Electronic Product Design
 
Mis system analysis and system design
Mis   system analysis and system designMis   system analysis and system design
Mis system analysis and system design
 
Un it 2-se-mod-staff
Un it 2-se-mod-staffUn it 2-se-mod-staff
Un it 2-se-mod-staff
 
Connecting the dots mbse process dec02 2015
Connecting the dots mbse process dec02 2015Connecting the dots mbse process dec02 2015
Connecting the dots mbse process dec02 2015
 
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
 
Beit 381 se lec 15 - 16 - 12 mar27 - req engg 1 of 3
Beit 381 se lec 15 - 16 -  12 mar27 - req engg 1 of 3Beit 381 se lec 15 - 16 -  12 mar27 - req engg 1 of 3
Beit 381 se lec 15 - 16 - 12 mar27 - req engg 1 of 3
 
Requirements Engineering - "Ch2 an introduction to requirements"
Requirements Engineering - "Ch2 an introduction to requirements"Requirements Engineering - "Ch2 an introduction to requirements"
Requirements Engineering - "Ch2 an introduction to requirements"
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
W4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gatheringW4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gathering
 
Analyst360 2
Analyst360 2Analyst360 2
Analyst360 2
 
Business analyst| Murex training at Analyst360
Business analyst| Murex training at Analyst360Business analyst| Murex training at Analyst360
Business analyst| Murex training at Analyst360
 

More from LogeekNightUkraine

Autonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, futureAutonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, futureLogeekNightUkraine
 
Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" LogeekNightUkraine
 
Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data" Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data" LogeekNightUkraine
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"LogeekNightUkraine
 
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"LogeekNightUkraine
 
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...LogeekNightUkraine
 
Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"LogeekNightUkraine
 
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"LogeekNightUkraine
 
Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"LogeekNightUkraine
 
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...LogeekNightUkraine
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"LogeekNightUkraine
 
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"LogeekNightUkraine
 
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"LogeekNightUkraine
 
Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"LogeekNightUkraine
 
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"LogeekNightUkraine
 
Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"LogeekNightUkraine
 
Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”LogeekNightUkraine
 
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”LogeekNightUkraine
 

More from LogeekNightUkraine (20)

Face recognition with c++
Face recognition with c++ Face recognition with c++
Face recognition with c++
 
C++20 features
C++20 features C++20 features
C++20 features
 
Autonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, futureAutonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, future
 
Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design"
 
Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data" Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data"
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"
 
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
 
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
 
Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"
 
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
 
Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"
 
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"
 
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
 
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
 
Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"
 
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
 
Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"
 
Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”
 
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
 

Recently uploaded

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 

Recently uploaded (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 

Aleksey Denysiuk «Document Management in SW Projects – Recommendations and Hints »

  • 2. www.luxoft.com Three “little stories”  Story 1 - Mentor: “To be able to do something useful you have to know the basis about our project” - Engineer: “Where can I read about it?”  Story 2 - Customer: “I don’t accept it” - Team: “But this is what we have agreed” - Customer: “I don’t think so.”  Story 3 - Team A: “We will send you those parameters, you just have to save them” - Team B: “Which parameters?” - Team A: “The one I have described you yesterday”
  • 3. www.luxoft.com Content 1. Requirements 2. Architecture 3. Documentation development process 4. Quality 5. Tooling
  • 6. www.luxoft.com Requirements model Customer (“Wishes”) Supplier (“Specifications”) End user Functional C-RS S-RSNon-Functional Other Engineering Functional C-TRS S-TRSNon-Functional Other Managerial Organizational C-PRS S-PRSFinancial Other
  • 7. www.luxoft.com Requirements elaboration  Customer requirements are fragmented and don’t match needs of supplier  Supplier requirements is an elaboration or merge of corresponding supplier and customer requirements  S-TRS is the main “source of truth” for “What has to be done?” question  S-PRS is the main “source of truth” for “How project has to be done?” question C-PRS C-RS C-TRS S-PRS S-RS S-TRS Architecture Design Code Customer Supplier
  • 8. www.luxoft.com Requirements model – typical names Group Content type Customer Supplier End user Functional CRS TRS Non-Functional CRS TRS Other Not tracked Not tracked Engineering Functional Specifications TRS Non-Functional Specifications TRS Other Not tracked Not tracked Managerial Organizational PMP S-PRS Financial Contract template, SOW template Contract, SOW Other Not tracked Contract, SOW, Not tracked
  • 9. www.luxoft.com End user requirements and elements examples Requirements that describe cooperation between system and actual user (person).  Can describe system not precisely  Can be verified by end user when system is running  Not related to the internal structure of the system – describe system as a “black box”  Functional - Use cases - User stories - User Features  Non-Functional - System Responsiveness - System Up-time - System Recoverability  Hardware - Type - Size, Weight
  • 10. www.luxoft.com Engineering requirements and elements examples Requirements that clarify end user requirements and describe system with the level of technical details necessary to develop system.  Maximize precision level of system description  It might be possible to verify them by end user  Can describe any internal structure, communication, protocol, rules, etc.  Functional - Use cases specifications - Protocols definition  Non-Functional - Modules recoverability - Timing requirements  HW - HW specifications
  • 11. www.luxoft.com Managerial requirements and elements examples Requirements that describe why, when and how project/product will be done.  Can be related to any managerial aspect  Typically appear first, get finalized last  Organizational - Milestones - Processes (PMP, CMP) - Team - Risks, Assumptions, Dependencies - Communication - Quality  Financial - Payments - Scope
  • 12. www.luxoft.com Requirements sources End-user  Customer input  Business analysis  End-user feedback  Testers feedback  Experience Engineering  Requirements analysis  Requirements elaboration  Architecture definition  Design definition  System analysis  Experience Managerial  Team capabilities  Customer negotiations  Requirements analysis  Risks analysis  Experience
  • 16. www.luxoft.com Architecture model (Simplified 1) What How Where Who When Why Executive Scope High-level processes Location R&R, Team Milestones Business goal, Payments Managerial requirements Product End-user Features Use cases, Non-functional System deployment Users Non-functional requirements Business proc. analysis End-user requirements Architect Technical features Sequences SW Deployment Domains Timing Traces SW Architecture Development Module features Sequences Algorithms SW Deployment Components Classes Timings Traces High-Level Design Team Team tooling Managerial requirements
  • 17. www.luxoft.com Architecture model (simplified 2) Managerial requirements End-user requirements Engineering requirements System/SW Architecture ^ High-Level Design
  • 18. www.luxoft.com Documentation elaboration  Architecture is an elaboration of S-TRS  Customer expectations related to implementation are treated as C-TRS - This allows to simplify actual development  Design is an elaboration and a part of architecture  Architecture is the main “source of truth” for “How it has to work?” question C-PRS C-RS C-TRS Architecture Design Code S-PRS S-RS S-TRS Architecture Design Code Customer Supplier
  • 19. www.luxoft.com SW Architecture and elements example Document that describes decisions taken to define system boundaries, internal structure and rules  Is derived from requirements  Defines sub-systems/modules (responsibilities, boundaries)  Defines communication principles between sub-systems/modules  Considers modules as black-box  Responsibilities  Decisions  Logical view - System view, System level architecture - Functional domain breakdown  Development view - Code development guidelines - Integration strategy, Integrated libraries  Physical view - Partitioning. Memory limits, CPU limits - IPC, Processes  Conventions
  • 20. www.luxoft.com High-Level design and elements example Document that describes decisions taken to define sub-system/module internal structure and rules  Defines details of communications between modules, subsystems  Defines details of sub-system  Responsibilities  Decisions  High level design - System view - Environment (Outgoing, Incoming) - Breakdown (components, interfaces, internal dependencies) - Deployment (Binaries, Threads) - Testing strategy  Detailed view - Components, interfaces, etc. - Diagrams
  • 21. www.luxoft.com Architecture sources System/SW Architecture  Engineering requirements  End-user requirements  Managerial requirements  Technical Limitations  3rd party modules  Legacy code  Experience High-Level design  System/SW Architecture  Engineering requirements  Experience
  • 23. www.luxoft.com Development process – V-Model - expectation
  • 24. www.luxoft.com Development process important notes “V” model is always used, but usage might vary.  Iterative development (like SCRUM) have simplified “V” on every iteration  Change request processing – is a “V” for a single feature
  • 25. www.luxoft.com Development & Documentation process – typical reality • Clarifications • Supplier requirements development (fragments) Customer requirements analysis • More clarifications • Major architecture decisions specification Architecture development • More clarifications • Design documentation (fragments) • First coding (prototyping) Design development • More clarifications • Some updates to design • Coding • Testing Development • Test cases definition • System testing • More clarifications • Testers feedback System testing
  • 26. www.luxoft.com Typical reality problems • Only fragments of clarified requirements are documented Customer requirements analysis • Requirements are not updated after further clarifications • Not all architecture decisions are documented • Reasons for decisions are not documented Architecture development • Requirements are not updated after further clarifications • Architecture is not updated after further clarifications • Only fragments of design are documented • Prototyping is considered by management as first results, rather than Proof-Of-Concept Design development • Requirements, Architecture, Design are not updated after further clarifications • Requirements, Architecture, Design are not updated after coding and testing Development • Requirements, Architecture, Design are not updated after further clarifications or feedback • Decisions on bug-fixing are taken quickly, locally, without checking impact on the whole system Testing
  • 27. www.luxoft.com Important Consequences No baseline Working on different requirements for different release Mismatch between different parts of documentation Outdated documentation
  • 28. www.luxoft.com Reasons It is hard to formulate decision shortly • Engineers try to avoid this Documentation is separated from the main process • It becomes “additional effort” Time pressure • Short-term perspective focus (quick-fix, quick- solution) • “Additional effort” is not worth it “Team is aware of all decisions” • “It’s easier and faster to tell than to write” • “Documentation is outdated anyway”
  • 29. www.luxoft.com Tips to improve Define required documentation details •I won’t do more that absolutely required anyway •You will do what is absolutely required anyway Simplify documentation development •Use advanced tooling •Make tutorials on tooling usage •Show how to use the tool yourself – during meetings, talks Make documentation part of the process •Integrate process with tool to avoid “additional effort” for documentation •Document decisions, agreements immediately by tool •Ask for decisions in written form
  • 31. www.luxoft.com Product quality definition (by standard) ISO 9126 Functionality • Suitability • Accuracy • Interoperability • Security • Functionality compliance Reliability • Maturity • Fault tolerance • Recoverability • Reliability compliance Usability • Understandability • Learnability • Operability • Attractiveness • Usability compliance Efficiency • Time behaviour • Resource utilization • Efficiency compliance Maintainability • Analyzability • Changeability • Stability • Testability • Maintainability compliance Portability • Adaptability • Installability • Co-existence • Replaceability • Portability compliance Product is of good quality if  I like it, because it (usability)  satisfies my needs by (functionality)  helping me to reach my goals easier by (efficiency)  doing what I want, how I want (functionality, efficiency)  with a quality I want and (functionality, efficiency)  does have no problems while doing this (reliability)
  • 32. www.luxoft.com How to ensure good quality Each quality requirement shall be met - Before product development  Choose correct development model - During product definition  Make correct business analysis - During product development  Develop what was defined  Ensure mature development process - After product development  Verify result against requirements Quality related roles  Business analytic  Requirements manager  Architect  Technical lead  Quality engineer  Developer
  • 33. www.luxoft.com Questions that are hard to answer When starting project  Have we processed all customer r. and developed corresponding supplier r.?  Have we processed all end-user r. and developed corresponding engineering r.?  Have we processed all engineering r. and made corresponding architectural decisions, sub-systems, modules?  Have we processed all architectural decisions and made corresponding design decisions, interfaces, classes, sequences? When processing any change  What will be the impact if this module, class, etc. is changed? - What might be broken? - What shall be tested?  What will be the impact if this module will be moved/changed? - Which end-user functionality will be affected? - Which other modules, teams will be affected? - How much time will it take? - How much will this cost?
  • 34. www.luxoft.com Traceability Traceability is a bi-directional linkage between elements of the documentation  Allows to answer important questions (prev. slide) by making coverage analysis  Answers questions “derived from”, “required because”, “required by”  Allows to analyze impacts in case of change of an item  Allows to automate reporting Managerial requirements End-user requirements Engineering requirements Managerial requirements End-user requirements Engineering requirements Architecture High-Level Design Code Customer Supplier
  • 36. www.luxoft.com Typical tooling Documents (Word, PDF, etc.) • Easy to start • Hard to compare • Hard to make version control • Hard to make linkage between documents • Developers don’t like Wikipedia style (ex.: Confluence) • Harder to start • Easy to compare • Easy to make version control • Easy to make linkage between documents, but hard to track them • Developers might like GIT documentation • Harder to start • Easy to compare • Easy to make version control • Harder to make linkage between documents, hard to track them • Developers like Special tools • Harder to start • Easy to compare • Easy to make version control • Easier to make linkage between documents, easy to track them • Developers don’t like • Costs Special formats • Hard to start • Easy to compare • Easy to make version control • Easier to make linkage between documents, easy to track them • Developers might like • Support generation of any document

Editor's Notes

  1. TBD
  2. TODO: Team TODO: Verify correctness of understanding