> “We should just be more careful at the specification stage”. But this turns out to fail, badly. Why? The core reason is that, as you can see from the examples above, if you were to write a specification in such detail that it would capture those issues, you’d be writing the software. Not true; a specification can precisely describe the properties of the solution of a (sub-)problem, rather than the process of solvin…
Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)
41–50 of 66 posts
Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)
#42I've been developing for 30 years. When asked for an estimate I spend time thinking about it and then when I come up with a number I multiply it by 3. Usually this works but sometimes I can be off. My typical process is to score stuff from "totally get it" to "don't have it all in my head". I then guess on hours and in the end multiply by this 3 factor. When my clients complain about the estimate I often say we "writ…
I tested this against an expert management estimate once. The difference was less than ten hours over several months.
Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)
#43One of the best things you can do in your organization is create a culture that treats obstacle discovery as forward progress. There is nothing more disheartening for an engineer than banging her head against the wall trying to debug some race condition only to get flak from management about why it isn't fixed and why it's holding up some milestone. The root of this problem is management that doesn't understand the p…
But I completely agree that a shitty culture leads to a shitty product.
Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)
#44Every project has 'gotchas'. And I don't mean just every coding project, I mean every project anywhere, ever. Part of the key of navigating those 'gotchas' is to immediately communicate it to your stakeholders when you run into one. Sit down and watch HGTV for a an hour or two, and you'll see that carpenters, plumbers, electricians, and HVAC contractors all run into problems - 'Whoops, this wall is load bearing, we'l…
Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)
#45Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)
#46One of the best things you can do in your organization is create a culture that treats obstacle discovery as forward progress. There is nothing more disheartening for an engineer than banging her head against the wall trying to debug some race condition only to get flak from management about why it isn't fixed and why it's holding up some milestone. The root of this problem is management that doesn't understand the p…
In your race condition example, it would be the difference between an engineer debugging a race condition in mission critical code, and debugging one that is incidental complexity in a unit test or ancillary tool that could be refactored to be single threaded, or just omitted altogether. Heck, even in the mission critical code case, it's worth considering how many users it effects, how it effects them, and at every moment considering if the time spent so far on the problem (and its associated opportunity cost) is still justified. (Taking into account the fixed costs of switching context into the problem again.) It's very easy to get wrapped up in an interesting problem and forget about the eject button.
Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)
#47I don't do web dev as a matter of course these days (I did nothing but back in the day though), but once in awhile I help a friend out with their portfolio of sites. Usually easy updates. But the conversation almost inevitably starts out with, "Do you think you could take care of it? It should take a few hours".
Of course, it takes two days.
Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)
#48One unaddressed problem with estimates is: if the developers finish before the project is due according to the estimate, there is no motivation to start doing new work. How to solve this?
Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)
#49> “We should just be more careful at the specification stage”. But this turns out to fail, badly. Why? The core reason is that, as you can see from the examples above, if you were to write a specification in such detail that it would capture those issues, you’d be writing the software. Not true; a specification can precisely describe the properties of the solution of a (sub-)problem, rather than the process of solvin…
Its an iterative process that approaches code. The more abstract the language, the closer the spec resembles the code.
Re: Coding, Fast and Slow: Developers and the Psychology of Overconfidence (2013)
#5090% of time should be spent on studying textbooks, reading other people's code (only the best authors, like Joe Armstrong or Simon Marlow or Rich Hickey, you know), [wishful] thinking, visualizing, drawing diagrams (using a pen and paper, no UML and shit), writing pseudo-code (like they do in AIMA), [unit]tests (before code!) and then just 10% of time for coding, when you know what exactly you are doing and why.
This, by the way, is called "slow thinking".)