Some of it might be a matter of experience.
It's just taken me 30 days to add some new CLI functionality to a piece of code (my first ever time working with this bit of the code stack - I'm not familiar with the underlying code, the debug tools, the various ways the build can fail). I know that the standard time for an experienced CLI developer to implement the equivalent extension of functionality on this section of the code is 3 days.
My second piece of CLI functionality is on track for 15 days... so by the time that's finished I will only be 5 times worse. :)