What are the possible risks that emerging from using 'testing first' as the initial approach to software or system development?
While 'testing first' aims to catch errors early, it may introduce other risks. For instance, relying heavily on testing can delay development progress, increasing stress and possibly leading to rushed or incomplete work. If tests are not comprehensive, missing functional requirements may be overlooked, potentially leading to missed edge cases that manifest later. Moreover, 'testing first' can shift responsibility for architectural decisions to the testing phase, where it may not fully understand the broader context, resulting in overly narrow or inefficient test coverage. Over-reliance on tests for validity might also make it harder to adapt to changing requirements once the initial system is built. Finally, certain applications—such as those needing fast iteration or hardware support—might find that moving testing to the 'testing first' step actually reduces flexibility in subsequent phases. Therefore, while 'testing first' offers benefits, it requires careful planning to minimize these potential drawbacks.