Straight-line coding can be described as the tendency of novice software developers to code from start to finish for each set of circumstances. The straight-line code employed by developers is in some ways similar to greedy algorithms. The developer has a vague picture of the finish line, but does not possess a plan. From the perspective of “where I am” and “where I think I need to be”, the best course of action is to take one step in this direction. The major difference between greedy algorithms and straight-line coding is that greedy algorithms analysis is based on short-term best solution, whereas straight-line coding focus is solely on a direct path from start to finish.
Novice SD developers are often overwhelmed with the information and cannot process effectively. They do not decompose the requirements into smaller tasks and subtasks. Straight-line programming does not incorporate decomposition in the thought process; it is simply the process of driving from point A to point B. This process is repeated until the developer considers all viable contingencies are covered.