The following table outlines the key steps in the Software Development Lifecyle (SDLC). 

 

Table: SDLC

Category

Description

Supporting Workflows

Relevancy to a project

Business Requirements

Business goals, Business case, Stakeholder goals, Budget, Timelines, Client input

Business Plan, Project Management, Interviews, Questionnaires, Project Document

Business purpose (return on investment), timeframes, Business workflows, fully understand stakeholder objectives including details

Technical Requirements

Functionality, reporting, managing, system behaviour

Same, elicit technical flows, add to Project Document

Understand the technical process and functional, non-functional requirements, Security

Software and System Specifications

Based on requirements, identify components, the software modules, platform

Technical Design, Modelling and creation of High-Level Design

Detailed models and functional concepts including code, OS, database, platform, system behaviour, Security

Prototyping

Iterative build of first design, based on objectives

Agile, Scrum, Project Management, High Level Design to Low-Level Design

Identify functionality, skills, team members, approach, environments, testing, client-input, Security checks

Pilot

Iterative improve prototype

Same, End to End Design

Same

Deployment including testing

Implementation, testing, deployment plans for usage

Same

Checklists of Functional, Non-Functional Requirements

Operations

Management of the system

Operations Run Books, Support, Trouble Ticket management and Resolution

Dev-Ops, tools, monitoring, troubleshooting, on-going support, ideas for improvement

 

The first document we need to produce or ask the stakeholders to produce, is the Business Plan or rationale to build this system or software.  The business plan will be used by business and project management to manage the expectations around revenues and costs; timelines; milestones (project work), stakeholder objectives and risk management.  If the business-case is not justifiable, and based on a proper assessment of market demand, revenues, and profits, the project cannot proceed.

 

Assuming that the business plan is sensible, supported and there is a budget from the client, we need to build a second document ‘The Requirements’.  This needs to be signed off by the stakeholders.  It outlines the specifications which the system will develop to fulfil the business objectives and requirements.  This document creates the basis for our prototype. 

 

Clear requirement’s documentation is often done iteratively with the stakeholders, including in this case, potential clients.  Iteration is preferred given that the original scope is vague.  The ‘requirements documentation’ will eventually become a High-Level and Low-Level (end to end) design and this informs the prototype and the pilot to implementation phases. The diagram below illustrates this process.

 

Diagram: SDLC

 

Prototype

For any project, we will need to determine a ‘target model’ or system.  An example would be a cloud-platform satisfying business and technical functionality and characteristics.  This will inform our prototype and satisfy the general requirements.  It gives us a clear direction of travel in the SDLC.

 

An example could be vending machine software to dispense drinks, on a public transport system.

Category

General Requirements

Business Requirements

  1. Vending Machines are large touchscreens, easily visible and easy to use eg 50-inch screen
  2. Fits into the Bus easily without compromising seat space
  3. Expected profits per machine of 15% (all costs vs revenues)
  4. Accepts coin, bills, cards
  5. Completely networked to a central system for management
  6. All transactions tracked
  7. Each machine has a unique ID and can be GIS-mapped
  8. Automated error and inventory (refill) alerts
  9. Easy to stock, maintain
  10. Ruggedized
  11. Coins, bills removed every night and deposited
  12. Serves the following drinks: Coffee, Latte, Water, Hot Chocolate, Tea, Sports Drinks, Lemonade, Protein shakes, Fruit flavoured drinks, Carbonated drinks

 

Technical Requirements

  1. Touchscreen UI or keypad
  2. Standard UI provided by the Vendor (reduce customisation costs)
  3. Bills & Coins validator
  4. Credit and debit card payment gateway and validator
  5. NFC for debit cards, Samsung, Google, Apple pay
  6. Refrigeration and hot water boiler
  7. Simple alphanumeric entry & user management/control software
  8. Remotely managed pricing, images and content software
  9. Cloud-based sales and inventory reporting databases
  10. IoT based logging, error management, and error routing
  11. English language support initially (translator software for future versions)
  12. API and Socket layer solution based (integration)
  13. Operational runbooks and maintenance schedules

 

 

We will need to produce system and software modelling, High Level Designs which will lead to a prototype and a Low-Level Design, a Test strategy and plan, Operational Run Books and a Security model and management using Agile-Scrum processes.