Software Development in the Driver’s Seat

A response to the Like Driving a Car Activity
created by Nathan Abourbih (@nathan.abourbih)

Number of views: 115


We have a concept called the Software Development Life Cycle (SDLC) in the discipline of software development. Let’s try to compare this to driving a car:

Understanding the Controls vs Learning Programming Languages
Just as you need to learn how to use the steering wheel, accelerator, brakes, and other controls in a car, you need to understand the syntax and commands of a programming language to create software. In both situations, these are essential skills.

Observation and Awareness vs Understanding Requirements
It would be best if you watched the road, traffic signs, and other vehicles when driving. In the same way, you need to understand a project’s requirements, such as the end-user’s needs, the system’s functional requirements, and the project’s constraints or limitations.

Problem-Solving and Adaptability vs Debugging and Iteration
If there is an issue with the car, such as a flat tire, you need to identify it before you can fix it. In software development, you need to find the errors or bugs in your code. Just as driving conditions can change and require you to adapt (like slowing down when it rains or snows), software development is an iterative process requiring you to adjust based on testing feedback and changing requirements.

Just as experienced drivers do not think of each component of driving separately but rather as a whole, experienced developers often view the Software Development Life Cycle (SDLC) as a unified, singular process instead of separate stages. They develop software with a certain level of automaticity, confident that their experience and intuition will guide each component as needed.

Example for "Software Development in the Driver’s Seat":
https://bank.ecampusontario.ca/wp-content/uploads/2023/11/Module-1-Activity-6.png