Scripting
For many years, I worked for a small company and most projects where completed in an ad hoc manner. We identified a problem and went straight away to writing a script or making a software change.
A few years ago, I obtained a systems engineering role for a much larger organization. At the new company, there was a much more formal software development environment that included an exhaustive process:
A problem report must be filed, indicating the specific bug or feature needing work. Many times, it might be the developer him/herself entering the issue in the database.
The issue is discussed in the next team meeting at what is named an Software Change Control Board (SCCB). This team, consisting of many stakeholders, dispositions each issue and determines whether it is accepted for work.
Once an issue is accepted, any requirements changes or additions is considered. The software requirements help drive formal software testing and acceptance later.
The issue and the requirement is assigned...