uuid: - value: d1fb428c-7494-4865-8da0-99f4549ffee1 langcode: - value: en type: - target_id: daily_email target_type: node_type target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 revision_timestamp: - value: '2025-07-12T23:32:00+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: 'Breaking down tasks' created: - value: '2025-07-10T23:27:36+00:00' changed: - value: '2025-07-12T23:32:00+00:00' promote: - value: false sticky: - value: false default_langcode: - value: true revision_translation_affected: - value: true path: - alias: /daily/2025/07/10/breaking-down-tasks langcode: en body: - value: |- What do you do with large development tasks? Whatever the size, I try to break down tasks into their smallest parts - into a number of smaller sub-tasks. This means that, instead of focussing on delivering the feature as a whole, I can focus on delivering the feature incrementally. This makes it easier to track progress and quicker to deliver changes. Each sub-task should be releasable, so we know when it is done, and small and frequent releases are [less risky than larger infrequent ones][0]. If needed, features can be hidden with feature toggles if we don't want them to be visible - but they are still committed and deployed, [even if they are not released][1]. Each sub-task should have its own automated tests, but smaller tasks are also easier to test manually. And, if one sub-task becomes blocked, it may be possible to move onto another and continue to make progress rather than the whole task being blocked. [0]: /daily/2023/11/22/frequency-reduces-difficulty [1]: /daily/2023/06/21/deployments-or-releases format: markdown processed: |

What do you do with large development tasks?

Whatever the size, I try to break down tasks into their smallest parts - into a number of smaller sub-tasks.

This means that, instead of focussing on delivering the feature as a whole, I can focus on delivering the feature incrementally.

This makes it easier to track progress and quicker to deliver changes.

Each sub-task should be releasable, so we know when it is done, and small and frequent releases are less risky than larger infrequent ones.

If needed, features can be hidden with feature toggles if we don't want them to be visible - but they are still committed and deployed, even if they are not released.

Each sub-task should have its own automated tests, but smaller tasks are also easier to test manually.

And, if one sub-task becomes blocked, it may be possible to move onto another and continue to make progress rather than the whole task being blocked.

summary: '' field_daily_email_cta: - target_type: node target_uuid: 3074e1e9-c691-4f73-a71c-cfe5920f884e