uuid: - value: f78a64e6-14a7-4654-95ab-04b1d1bb7318 langcode: - value: en type: - target_id: daily_email target_type: node_type target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 revision_timestamp: - value: '2025-05-11T09:00:34+00:00' revision_uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 revision_log: { } status: - value: true uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 title: - value: | Writing test and implementation code are the same task created: - value: '2023-08-15T00:00:00+00:00' changed: - value: '2025-05-11T09:00:34+00:00' promote: - value: false sticky: - value: false default_langcode: - value: true revision_translation_affected: - value: true path: - alias: /daily/2023/08/15/writing-test-and-implementation-code-are-the-same-task langcode: en body: - value: |

In Sunday's email, I said not to estimate separately for testing and implementation.

But you can't do this anyway if you're doing test-driven development.

With TDD, you aren't writing all of your tests and all of the implementation code or vice versa.

You're continuously switching back and forth, starting by writing a failing test and then enough implementation code for it to pass.

Then you write more test code, whether expanding the same test or writing a new one until you have a new failure.

You get it to pass, refactor, and repeat the process until the task is complete.

It's all part of the same task and the same estimate.

format: full_html processed: |

In Sunday's email, I said not to estimate separately for testing and implementation.

But you can't do this anyway if you're doing test-driven development.

With TDD, you aren't writing all of your tests and all of the implementation code or vice versa.

You're continuously switching back and forth, starting by writing a failing test and then enough implementation code for it to pass.

Then you write more test code, whether expanding the same test or writing a new one until you have a new failure.

You get it to pass, refactor, and repeat the process until the task is complete.

It's all part of the same task and the same estimate.

summary: null field_daily_email_cta: { }