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
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 
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)
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
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
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
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!
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
THANK YOU!
Q&A

Things to ponder before you start building [cooperate] software

  • 1.
    Things to ponder beforeyou 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 (ofthe 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 afoundation 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 technologyto 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 isno 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 moreabout software design patterns • Read more about software architecture • Read more about data structures • Read more about secure coding and finally • Code, code and code
  • 9.