Discover how EnCata interprets the Definition of Done (DoD) in hardware engineering to enhance efficiency and reduce errors in new product development.

Before diving into the Definition of Done (DoD), let's clarify and recall some key terms related to this topic.

Scrum: One of the Agile frameworks that uses short development cycles called sprints and focuses on continuous improvement.

Backlog: A list of all tasks, ideas, and requirements that need to be completed in a project. For example, in a smartwatch project, the backlog might include tasks like "case design," "display selection," "prototype creation," and "waterproof testing."

Definition of Ready (DoR): A set of criteria that determines when a task is ready to start. For the task "case design," DoR might include having an approved basic design, all necessary tools and materials available, and alignment with the engineering team.

Sprint: A short, fixed period (usually 2-4 weeks) during which the team works on a specific set of tasks. During a sprint, the team might work on tasks like "case design" and "display selection."

Task: Specific assignments carried out within a sprint. For the task "case design," tasks might include "sketch the case," "create a 3D model of the case," and "conduct strength tests."

User Story: A brief, simple description of a feature or requirement from the end user's perspective. User stories represent individual pieces of functionality that the team can complete within one sprint. In a smartwatch project, a user story might be, "As a user, I want the smartwatch to measure my pulse so I can monitor my health."

Epic: A large, high-level task or initiative that often breaks down into multiple user stories and tasks. Epics cover significant parts of the product's functionality and may require several sprints to complete. In a smartwatch project, an epic might be "Develop a health monitoring system," which includes many smaller tasks and user stories like "Create a heart rate sensor," "Integrate a pedometer," and "Develop a data analysis app."

Increment: A completed piece of work that can be integrated into the product and presented to stakeholders. After completing and verifying the task "case design," the case is integrated into the smartwatch prototype for further testing.

The essence of the Definition of Done (DoD)

The term "Definition of Done" (DoD) originated within the Agile methodology, used for project management. In Agile, projects are divided into short cycles (sprints), during which the team completes a certain number of tasks. For each sprint, it's crucial to know when a task or piece of work is truly finished. This is where the Definition of Done (DoD) comes in.

In hardware product development, the Definition of Done (DoD) is just as important as in software development for several reasons:

Cost of changes: Manufacturing decisions are often irreversible and expensive. For example, if a printed circuit board (PCB) or device case is made with an error, correcting it requires rework and additional costs for new materials and production.

Complexity of fixes: In developing a medical device such as a pacemaker, testing involves long and complex safety and reliability trials. A crucial aspect is conducting various tests on electrical safety, including electrostatic discharge (ESD) tests and electromagnetic compatibility (EMC) tests, which check the device's resistance to external electromagnetic fields and its ability not to interfere with other devices. Fixing an error might require re-manufacturing the device. In web application development, bugs can be quickly detected and fixed through automated tests and CI/CD (Continuous Integration/Continuous Deployment) systems.

Sequential and interdependent stages: In hardware development, design errors can impact all subsequent stages, requiring rework not only of design drawings but also of already produced components. In video game development, different teams might work in parallel on graphics, gameplay, and networking features. While errors in one module can affect other parts of the project, such dependencies are usually smaller, and fixes can be made without completely revising all components.

Production and logistics requirements: In developing complex systems such as medical devices or aviation equipment, coordination of supply chains, assembly processes, logistics, and distribution is necessary. Each production stage requires strict adherence to quality and safety standards, increasing the complexity and time needed to fix errors. Meanwhile, in software development, such as cloud services, updates and new versions can be automated, allowing for quick changes and fixes without the need for physical logistics.

Safety risks: In developing a car control system (e.g., ABS), errors can lead to accidents and threaten the lives of drivers and passengers. Therefore, DoD includes stringent safety tests and checks. In banking software development, errors can have serious consequences like data leaks or financial losses, but human lives are not at stake.

Definition of Done vs. Definition of Ready

Definition of Ready (DoR) and Definition of Done (DoD) are important concepts in development, especially in the context of hardware products. They sound similar but mean different things. Definition of Ready defines the conditions that must be met for a task to be started. It helps the team ensure the task is ready for execution. Meanwhile, Definition of Done defines when a task is considered fully completed, ensuring the work meets all standards and requirements. DoR is applied before starting work on a task and acts as a filter, checking the task's readiness. DoD is applied after completing work on a task and evaluates the completeness of the work. DoR focuses on preparation, including requirements, resources, availability, and task clarity, whereas DoD focuses on completion, including testing, quality, documentation, and integration.

For example, in a project to develop a PCB for an IoT device, the task "Develop a control board for the temperature sensor" is ready to start (DoR) if there is a clear task description, requirements are defined, all components are available, acceptance criteria are approved, and the task is estimated at 30 hours. It is considered done (DoD) when the board is designed and manufactured, all tests (functional, thermal) are completed, the board is verified to meet standards, documentation is updated, and the board is integrated into the device prototype.

Difference between Definition of Done (DoD) and Acceptance Criteria

In hardware product development, it is also important to understand the difference between the Definition of Done (DoD) and Acceptance Criteria. Both help manage quality and expectations, but they have different purposes and apply at different levels of detail.

Definition of Done is a set of general criteria that must be met for a task (e.g., a user story or backlog item) to be considered complete. DoD typically applies to the entire product or project and includes quality standards, testing, and integration.

Key characteristics of DoD:

  • General for all tasks: Applies to all tasks in the project.
  • Ensures quality: Includes testing, code review, documentation, and integration.
  • Final stage: Defines when a task is considered fully completed.

Acceptance Criteria are specific conditions or requirements that must be met for a particular component or item to be accepted as complete. They describe the expected outcome and characteristics that must be achieved.

Key characteristics of Acceptance Criteria:

  • Specific to each component or item: Applies to a specific development element.
  • Define customer or project requirements: Describe what must be done to meet technical or user requirements.
  • Used for acceptance: Define what the customer or team will accept as a completed component or item.

Example task: Developing a printed circuit board (PCB) for an IoT device.

Definition of Done (DoD) for all boards in the device:

  • The board is designed and manufactured.
  • The board has passed electrical tests.
  • The board has passed functional and durability tests.
  • Documentation (drawings, schematics, specifications) is updated.
  • The board is integrated into the device prototype and tested in real conditions.
  • Compliance with IPC standards is verified.

Acceptance Criteria for the board responsible for data transmission:

  • The board must operate within a temperature range of -20 to +50°C.
  • The board must provide uninterrupted Wi-Fi communication up to 30 meters.
  • All components must be placed and soldered according to the design documentation.

We want to draw attention to the last point. In the example, we included it in the Acceptance Criteria, although during development and prototyping it can be both a Definition of Done (for all PCBs in the project) and Acceptance Criteria. In this example, the data transmission PCB will be accepted only if "All components must be placed and soldered according to the design documentation." Perhaps, for other PCBs in the device, some modifications or jumpers used by developers during prototyping are allowed.

In closing,

Definition of Done (DoD) is a critical aspect of the Agile methodology that ensures the quality and completeness of tasks within a project. In hardware development, as in software, a well-defined DoD helps minimize the costs of fixing errors and increases the likelihood of successful project completion.

A carefully crafted DoD helps the team understand when a task is truly finished. It encompasses all stages from testing and documentation to integration and compliance with standards. As a result, every task marked as complete meets all requirements and is ready for further use or presentation to stakeholders.

It is particularly important to correctly define DoD in hardware development, where errors can be costly and challenging to fix. This is due to the irreversible nature of manufacturing decisions, the complexity of testing, strict production and logistics requirements, and the high level of responsibility for the safety of end users.

Thus, DoD not only helps improve the development process but also ensures high quality and safety of the final product, whether it be a smartwatch, a medical device, or a car control system.