Solving big problems
2025-07-26
I'm currently building adsorption modelling software adsim in C++. Big projects like this can be overwhelming. Each feature I implement can take weeks or months, and so I tend to put these tasks off.
The problem is that I end up spending most of my time developing quick and easy features that aren’t important. To stop this from happening, I'm now trying to chunk large tasks down into much smaller ones - say, 20-30 minutes each.
As an example, I am trying to validate the solver on an academic paper. I've split this task down as follows:
- Extract the data using PlotDigitiser
- Validate the isotherm function by replicating the isotherms
- Implement additional variables that I have not yet implemented (e.g. Prandtl number and Sherwood number)
- Implement the empirical equation used for the external heat transfer coefficient
- Implement the equation for film diffusion
- Implement the empirical equation for effective axial heat dispersion
- Run the solver and compare the results
- Create figures for validation
- Add the simulation as a tutorial to the software
Although "validate solver on a paper" seems like one task, it's obvious that there are many sub-tasks hidden within. In fact, a lot of these tasks could be subdivided further.
TLDR advice: subdivide a task until they are broken down into 20-30 minute chunks. That way, you keep momentum and don't get distracted by the less important tasks.