SDLC summary

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

Table: SDLC

CategoryDescriptionSupporting WorkflowsRelevancy to a project
Business RequirementsBusiness goals, Business case, Stakeholder goals, Budget, Timelines, Client inputBusiness Plan, Project Management, Interviews, Questionnaires, Project DocumentBusiness purpose (return on investment), timeframes, Business workflows, fully understand stakeholder objectives including details
Technical RequirementsFunctionality, reporting, managing, system behaviourSame, elicit technical flows, add to Project DocumentUnderstand the technical process and functional, non-functional requirements, Security
Software and System SpecificationsBased on requirements, identify components, the software modules, platformTechnical Design, Modelling and creation of High-Level DesignDetailed models and functional concepts including code, OS, database, platform, system behaviour, Security
PrototypingIterative build of first design, based on objectivesAgile, Scrum, Project Management, High Level Design to Low-Level DesignIdentify functionality, skills, team members, approach, environments, testing, client-input, Security checks
PilotIterative improve prototypeSame, End to End DesignSame
Deployment including testingImplementation, testing, deployment plans for usageSameChecklists of Functional, Non-Functional Requirements
OperationsManagement of the systemOperations Run Books, Support, Trouble Ticket management and ResolutionDev-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.

CategoryGeneral Requirements
Business RequirementsVending Machines are large touchscreens, easily visible and easy to use eg 50-inch screen
Fits into the Bus easily without compromising seat space
Expected profits per machine of 15% (all costs vs revenues)
Accepts coin, bills, cardsCompletely networked to a central system for management
All transactions trackedEach machine has a unique ID and can be GIS-mapped
Automated error and inventory (refill) alerts
Easy to stock, maintain
Ruggedized
Coins, bills removed every night and deposited
Serves the following drinks: Coffee, Latte, Water, Hot Chocolate, Tea, Sports Drinks, Lemonade, Protein shakes, Fruit flavoured drinks, Carbonated drinks  
Technical RequirementsTouchscreen UI or keypad
Standard UI provided by the Vendor (reduce customisation costs)
Bills & Coins validator
Credit and debit card payment gateway and validator
NFC for debit cards, Samsung, Google, Apple pay
Refrigeration and hot water boiler
Simple alphanumeric entry & user management/control software
Remotely managed pricing, images and content software
Cloud-based sales and inventory reporting databases
IoT based logging, error management, and error routing
English language support initially (translator software for future versions)
API and Socket layer solution based (integration)
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.