This particular PPT was prepared for the session I carried out on 28th Jan 2022,for the 3rd year computer engineering udergrads of the Faculty of Engineering, University of Peradeniya, 20400, Peradeniya, SRI LANKA.
Things to ponder before you start building [cooperate] software
1. Things to ponder
before you start building
cooperate software
Target online audience:
The 3rd year computer engineering undergrads of the
University of Peradeniya
By
Tharindu Weerasinghe
www.tharinduweerasinghe.com
2. Outline
• Scope (of the product/project)
• Requirements (of the product/project)
• Documents (of the product/project)
• Architecture (of the product/project)
• Methodology (of the product/project)
• Homework
3. Scope
• Business scope
• The above scope will drive the entire project
• Need relevant business stakeholders explaining the real requirement
• Break-down the requirements into small story like components
• Need BA (Business Analysts) or BSAs (Business System Analysts) to
understand the business processes and explain them to software
engineers
• In a nutshell we ought to have a very clear big picture to kick-off!
(This does not imply that we must know all aspects of the processes
before starting development but at-least the major components)
4. Requirements
• Like a foundation of a building, in a software project, the foundation
is the set of clear requirements.
• No clear requirements will lead to scope-creep
• Scope-creep will lead to waste of time!
• Waste of time is definitely a waste of money!
• Modes of acquiring requirements:
• The best way to effectively build the product
• Should be documented
• Should have client’s approval
5. Documents
• Project Charter
• Software Requirement Specification(s) – SRS
• Software Architecture Diagrams
• Software Class/Activity Diagrams
• Test Cases / Test Scripts
• Software Security Related Docs
• Coding standards if applicable
• Hosting(DevOps related) Docs
6. Architecture
• What technology to be used?
• What framework?
• What are the secure coding standards to be used
• What are the hosting mechanisms (managed services)
• Integrations
• With internal components
• With external components
7. Methodology
• Waterfall is no longer used in the cooperate world! Apart from
specific instances
• Agile is the way forward
• SCRUM
• DSDM [Dynamic Systems Development Method]
• Interactive client engagement is essential!
8. HOMEWORK
• Read more about software design patterns
• Read more about software architecture
• Read more about data structures
• Read more about secure coding and finally
• Code, code and code