Software estimation and psychology

Fri 29 July 2016

In all its glorious complexity, brain is but a machine that uses some neat tricks to help us navigate the logical reasoning space, among other things. However, despite its flexibility, it is still very hard for many people to actually navigate this logical space as well as they would like to. It is, for example, extremely hard to understand how to connect two ideas, to solve a puzzle. Psychological issues often involve not being able to connect two seemingly disparate ideas to find joy in the present or forgive the past. Psychiatrists job involves helping their patient navigate this psychological space to solve some of their pressing issues. Even after we spent decades researching this frontier, we haven’t made enough progress to ever solve problems, much less to guarantee a solution. Software estimation is hard, for the exact same reason as psychological exploration is hard. Software is trying to understand and code up this logic, and its estimation requires us to navigate the logical space well enough to connect the problem to solution in detail. However, main time consuming part of programming is exactly that. So, in essence, accurate software estimation takes almost as much time as actually programming the software. And both of them would be extremely easy, if only we can find out how to use our brains.