Final answer:
In software development, waste arises from product defects found late in the process and developers working on rarely used features. Structured design processes and knowledge sharing are essential in minimizing waste.
options B and D are the correct choices
Step-by-step explanation:
In software development, waste can arise in various forms. While effective development practices aim to minimize waste, certain activities and outcomes can contribute to it. For example, product defects found late in the development process can cause waste since they often require significant rework, delay the project, and increase costs. Another example of waste is when developers spend time working on rarely used product features. This misalignment of development effort with actual user needs leads to wasted resources and potentially impacts the overall value of the software to the end-users.
However, not all scenarios listed create waste. For instance, if required features expected to be developed in a given time period are fully 'done', this represents successful completion rather than waste. Similarly, when knowledge about the developers' skills is shared among the team, it can lead to more efficient use of resources and better team dynamics, thus avoiding waste.
Structured design processes are crucial in preventing waste, as they help ensure detailed design aligns with stakeholders' needs, and testing and refining minimize the risk of late-stage defects. Awareness of multitasking and deadline pressures is important, as these can either contribute to waste when mismanaged or help avoid waste through careful planning and execution.