Category Archives: CS348

Software Development Methodologies

The blog I have chosen to write about this week is a article called “12 Best Software Development Methodologies” by intellectsoft to research and learn more about the different types of software development methodologies. The reason why I chose this article in particular is how in depth it goes into each methodology, the pros and cons, and when to choose specific methodologies. The article mentions which I found very interesting is how as software becomes more advance with time, companies spend more and more on researching and improving past development methods.

In class this week we have gone over what the steps are in software development as well as waterfall and agile methodologies. When reflecting on the waterfall technique, it does not seem very practical to use with changes not being possible without restarting the entire development process again, however the article states how there are relatively no financial risks “due to the high planning accuracy” and every step has a given deadline. In addition, the long delivery time may be caused if not everyone working on the project are not on the same page. This method is not suitable for larger or on-going projects.

The agile development method that focuses on the project / product itself. In class, we watched a video on Agile of what the sets of values Agile had which included “Individual and interaction over processes and tools” as well as “Responding to change over following a plan”. As Agile is a very flexible and on-the-go methodology it risks insufficient budget predictability. The article states how this method “fits, young companies … open for communication” which provides top of the line product quality.

A method that I found interesting that was not talked about in class is the Spiral Development Model. This method seems to be a “hybrid” of both waterfall and agile. Like the waterfall method this method is done in phases as well as has an emphasis risk management. In addition, similar to the agile method it has client collaboration throughout the process in increments. This method appears to have the best of both worlds of these two methods however it is not suitable smaller projects.

When reflecting on software development processes there are many different factors to consider when following a methodology. Some of these factors include cost, project size, risk tolerance, client suggestions and so forth. When looking at smaller projects that I may collaborate with a team I may consider using agile methodology or lean development which both receive feedback throughout the process as well as flexibility.

Link https://www.intellectsoft.net/blog/top-12-software-development-methodologies-you-should-know/

From the blog CS@Worcester – Anthony Duong CS Blog by anthony duong and used with permission of the author. All other rights reserved by the author.