What is the goal?
How to approach a business problem? How to propagate what you have learned in case of complex topics? Well, these are complex questions, so let’s start with something simpler: what is the goal of an educational program?
For a long time I was convinced that achieving some kind of knowledge – ideally confirmed by an exam – is the goal. In other words – to reach a particular state.
Working backwards from this approach: it does not matter how long it took – whether it was a multi-overnight challenge, a systematic process that span across several months or a single run. Each resulted in the same: an exam passed, a certification achieved, a solution proposed. So why bother?
The question
What if this approach is not always proper? What if not the target state is the ultimate goal, but also the process – transition – itself is as least as important as the target state?
Incubation of thoughts
From an individual perspective – it allows for incubation of thoughts – simply by postponing a decision or discussion we might get a better solution.
How can it be translated for day-to-day development work? Provided that we are focused on transition as well as on the state there is no point in proposing a solution in one go. It is better – taking the quality of the final solution into account – to reserve several sessions. One session could be devoted to splitting the whole epic-level topic into separate business outcomes. Another one for splitting a single high-level outcome into smaller ones, that can be delivered incrementally. And the final could be used for estimations of the incremental outcomes.
This might sound like a waste of time, as we need at least three sessions for example above, with intervals between – and it will be if you are interested in generating a not-so-useful documentation and not a working code.
In case your focus is on something working, with developers being able to address various details that for sure appear when it comes to coding – it certainly will not be a waste of time. Such slow, longer discussion will be an investment.
Share your journey
And what about the perspective of others, when your goal is to share your knowledge?
The best approach I have found so far is in general based on the proper narrative – I found that sharing your journey yields best understanding. Depending on the case it can be as simple as a drawing showing initial state and target state or, as with the more complex topics like Domain-Driven Design and Clean Architecture – whole journey, when you present initial state and incrementally follow steps to reach target state is something that has a chance for successful reception. Especially when your audience is not in your context.