Breaking down work works great until the breakdown is unknowable. Things like research, that require creative experiments to POC things that are not known apriori. That’s when task breakdown breaks down.
Nah, that's easy to solve. "spend 3 hours on investigating X, 3 on Y, 3 on Z"; and then have a planning session about what to do next. You have 4 outcomes - the first one solves it, the second, the third or none. If it is solvable with mild effort, you have a 50% chance of solving it by attempt 2/6 hours.
Breaking down tasks
51–60 of 118 posts
Re: Breaking down tasks
#52I've also done this a lot, as has everybody. My experience is that there are two problems. One, it turns out I never ever end up doing the actual steps as I planned to. After a few I have new insights, realize I forgot something, see an easier way, I don't know -- the plan is never followed. The other is that I really hate working like this because it seems all the creative effort of thinking about how to make someth…
> the plan is never followed The plan not being perfect and prescient is part of the plan. Next time you plan for same or similar activity, your future plan will be better. The Project Managers even have a mantra: "fail to plan is plan to fail."
But for me it's very easy to overdo it. Give me interesting chunks of about a week or two, with a tight deadline, and I'll do my best work.
Remember, Linus wrote Git in two weeks. And there was no project manager in sight.
Re: Breaking down tasks
#53Earlier quoted context omitted.
Bell Labs? Changing the topic from software development to R&D: the granular task oriented view is generally not good for greenfield research endeavours. It's a form of premature optimization. You're calcifying the search space and reducing flexibility to pivot immediately based on expert intuition and hunches. That being said, a coarse task orientation is necessary to keep people vaguely pointed in the right directi…
Do you have any pointers for guides about how to implement this sort of methodology in software-based R&D? I'm currently in a small, partly research-focused team as part of a larger tech company, and it's proving a struggle to align our work with the rest of the dev squads who do all their work in 2-week sprints with max-2-day tasks. I'd love to better understand how research teams tackle this problem in other compan…
When it comes to less intrinsically motivated team members, I don't have useful advice. Maybe they can contribute to research output, but that would require more traditional management styles which I can't comment on.
When it comes to satisfying constraints imposed by other parts of the org, I can't usefully comment on this either.
Re: Breaking down tasks
#54Earlier quoted context omitted.
Do you have any pointers for guides about how to implement this sort of methodology in software-based R&D? I'm currently in a small, partly research-focused team as part of a larger tech company, and it's proving a struggle to align our work with the rest of the dev squads who do all their work in 2-week sprints with max-2-day tasks. I'd love to better understand how research teams tackle this problem in other compan…
The research breakthroughs will come from self-motivated, highly competent people. Figure out who they are, give them resources/help and get out of their way. Let them do nothing for 48 hours because it isn't nothing, they're thinking about what should be done. You're asking them to navigate a tremendous search space, and that will require unconventional modes of working. If you hired the right people, they should kn…
I guess the essential problem I'm trying to solve is how to respond when the MD or a product owner comes to me and says "The client wants our core algorithms to be adapted in XYZ novel ways. When can you deliver this?".
Re: Breaking down tasks
#55These are good, new software folks who genuinely don't know how to stand up basic functionality because the space is new to them. In my experience they want tasks they can learn from and excel at, leading to growth.
I think the thing that you absolutely must keep in mind is process overhead is a continuum you tune to your team. No one in the NBA is going into a huddle and getting instruction on how to throw a ball mid game, but the kids in third grade are. Both styles of planning and coaching are appropriate to the team at hand.
Re: Breaking down tasks
#561. The "business" level. There are no "tasks". There are only needs and desires. Things like "a user can log in and press a button". These should not be broken down further than the smallest unit of deliverable value. In this example, there's no point estimating "user can log in" because it delivers no value on its own. A good rule of thumb is these should be described using descriptive language, not imperative, so not e.g. "implement log in procedure".
2. The "team" level. It's OK here to break down those things into "user can log in" and "logged in user can press button". That's because you know they can be implemented independently. But there's still no point delivering them independently. Don't tell the upper level about this breakdown. They are always really eager to know, but they don't need to know. Use this to calculate your estimate for level 1, but said estimate should be a single aggregate. Implementing these in parallel with multiple devs adds no extra overhead because they are completely independent.
3. The "developer" level. This is where you finally have "tasks" and imperative language. Things like "add button to form", "implement 2FA" etc. These tasks are naturally heavily dependent on each other and it's highly likely they'll be done in a completely different order to whatever you write them down in.
If you decide to distribute these tasks among developers then you increase the coordination overhead between devs. Think of it like a multi-threaded application. It's always more efficient for a single developer to do everything if possible (less overhead), but it might nevertheless be necessary to split it up due to time constraints, differing skillsets etc. It's just like we'd like to have one single 80GHz general purpose CPU, but in reality we have to make do with 16 5GHz cores split between performance and efficiency cores etc.
Given that the tasks are highly likely to change and evolve, there is not much point putting in loads of effort to break things down. Do it only when it's necessary, or when it helps you. It's necessary when you need to split up the work between developers. It's helpful when you think of more tasks during your work and you don't want to break your stack. Every developer should have a way to quickly take notes in a way that doesn't break flow, things like "ensure API accepts float input". This is stuff you'd never think of before you get your teeth into it.
Re: Breaking down tasks
#57Earlier quoted context omitted.
> the plan is never followed The plan not being perfect and prescient is part of the plan. Next time you plan for same or similar activity, your future plan will be better. The Project Managers even have a mantra: "fail to plan is plan to fail."
And Eisenhower's "plans are useless, planning is essential", of course. I know. But for me it's very easy to overdo it. Give me interesting chunks of about a week or two, with a tight deadline, and I'll do my best work. Remember, Linus wrote Git in two weeks. And there was no project manager in sight.
Re: Breaking down tasks
#58I never warmed to that.
However, this is not that, and I think it's an important skill. I started my professional life as an RF technician, and we learned how to do this, almost immediately. We used things like signal generators and oscopes.
Re: Breaking down tasks
#59Earlier quoted context omitted.
And Eisenhower's "plans are useless, planning is essential", of course. I know. But for me it's very easy to overdo it. Give me interesting chunks of about a week or two, with a tight deadline, and I'll do my best work. Remember, Linus wrote Git in two weeks. And there was no project manager in sight.
On the Linus point, I'd bet there were countless months where he was bringing ideas together in his head and planning how he'd do it before actually finding the time to sit down and write it.
Re: Breaking down tasks
#60I've also done this a lot, as has everybody. My experience is that there are two problems. One, it turns out I never ever end up doing the actual steps as I planned to. After a few I have new insights, realize I forgot something, see an easier way, I don't know -- the plan is never followed. The other is that I really hate working like this because it seems all the creative effort of thinking about how to make someth…
Of course if you are exploring or building your own projects and/or don't have any other accountability, you wouldn't start planning that.. unless you are really into planning in and of itself.
But as soon as you have a boss and the boss asks "how long? who does what? where do we start?" - you have to have some framework.
I also have a very high aversion to "conforming to the system", esp. when these systems seem arbitrary or are overly rigid .. but systems in general need to be simple and flexible. Productivity systems are there to help people.
I don't think the author intended for this to be like a detailed recipe.. but more like an example of how he approaches these things, which can hopefully help others have their own ideas.