...

/

Processes, Ongoing Efforts, and Teams

Processes, Ongoing Efforts, and Teams

Learn what processes to adopt, techniques to employ, and the types of teams to make.

Agile or Waterfall

While everything in this course can apply similarly to both Agile as well as Waterfall, it is still recommended that you consider some iterative process for development. A repetitive approach simplifies adopting practices from this course, especially higher-level ones that directly influence software development phases. Besides, an Agile process delivers benefits on top of it, such as:

  • Instead of trying every single thing once throughout the development life cycle, you get to repeatedly apply the same techniques and become better at them.
  • Defects are discovered in smaller chunks. We can take both corrective and preventive actions easily instead of getting stuck in an endless battle between quality and release date (in which case, release date always wins, and customers get a low-quality product).
  • You can adjust a course of development between iterations instead of continued investment into the product that may not be on track to meet the customer’s expectations already.

Therefore, to make the Effective Software feasible, always prefer following an iterative process over a Waterfall.

If you do not have a choice and have to follow a less flexible process such as a Waterfall, be aware that there is still hope. Here are a couple of things to start with:

  • To successfully apply techniques from this course, seriously consider having an expert on board and follow the rigorous guidelines set forth.
  • Do not give up on the methods that may seem only for Agile at first glance, as they can be followed in Waterfall as well, e.g., practices originating from XP (Extreme Programming), such as TDD (Test Driven Development) and Continuous Integration.

While there will not be ...