Introduction
During this lecture, we discussed different methods for software development including waterfall and Agile. Waterfall is a rigid way to approach software development. It can be beneficial to projects where there are little to no unknown factors as it is a rigid, structured and organized process
Releasing iteratively is a useful way to approach software development projects when there is an element of uncertainty. It allows for feedback and changes throughout the development lifecycle.
Required Readings
During the lecture, we reflected in small groups on the readings. A reading which stood out for me this week was the Brooks "No Silver Bullet" paper. I enjoyed the metaphor of the werewolf which was used to describe the complexities associated with SDLC which teams don't envision from the onset of the project.
The paper stresses that investing in good developers is far more important than attempting to find a solution or a "silver bullet".
SDLC projects are so complex, more so than constructing bridges or other physical objects due to the fact that software is much more complex than physical material. You cannot see it, there are many people simultaneously working on different pieces of it etc. Software is inherently complex because it is non-visible.
The papers discusses user driven programming - high level language where the computer does all the rest. Examples of such languages include SQL, C++ etc. Queries enable us to interact with software
The additional readings for this week focused around objectives v requirements, involving people early to set their sights on the overall goals of the project, visualising what you will create and learning as you go
Even though these
articles are quite dated, the frustrations still remain today
Discussion During Lecture
A lifecycle is a way
of structuring a project. The waterfall model is rigid in that requirements are made at the beginning of the project and cannot be changed during the subsequent stages. Agile however, is like lots of little waterfalls where the team and stakeholders can analyse the project and assess whether fixes need to be made or additional features introduced. Despite my initial view that a business would either choose Agile or Waterfall, The lecturer discussed that most firms are not
agile or waterfall, its more "in house", local rules apply.
The lecture also contradicted my previous view that new companies adopt agile type methodologies and only older, established companies would adopt agile. To me, agile seemed like the ideal way to approach the SDLC as I had never considered the need for stabilisation and the fact that waterfall can reduce in lower costs and faster development life cycles.
Finally, we discussed constraints associated with the SDLC. These include:
- Quality
- Scope
- Time
- Cost
Within Software Development Lifecycle's quality, cost and time are variables which need to be managed whereas scope is usually stabilised pretty early on. An example of scope include requirements.
Comments
Post a Comment