Why software projects take longer than you think: a statistical model (2019)
1–10 of 178 posts
Re: Why software projects take longer than you think: a statistical model (2019)
#2I think the high level imaginary API/pseudocode of any system is straightforward and fast when you start from scratch. (Because you're not focused on detail and just intent)
But when you start from an existing codebase, existing infrastructure, existing APIs, it slows to molasses. You've got to understand and have a mental model of ALL OF THAT before you can complete your intent.
I think this is why software takes longer than expected. Your mental model has to be accurate, and there is always more to learn.
How do you solve the problem?
I'm an advocate and trying to design what I call "commutative programming", which is another way of saying that the behaviour is the product of every statement about the behaviour that is desired, not an explicit instruction of what to do next which is what modern programming is and it is slow and tedious and doesn't compose. In this dream, if you want to change behaviour, you just add statements. Programming is additive! Not edit sourcecode or try to find out where to insert your lines of code or tweak existing lines. Let the computer tell you about conflicting requirements or missing criteria.
We need query engines and cost based optimisers for behaviour.
Imagine taking lots of files that are simple "writing to an imaginary API" - that's your intent specification. You just need to merge them together and your system is finished.
I started work on a commutative GUI https://github.com/samsquire/additive-guis but I'm also thinking from time to time about commutative code where we define refinements to desired behaviour and the computer behaviour query engine or rule engine generates the code or configuration that exhibits this behaviour. (A bit like Kubernetes for behaviour.)
In the future: we don't get LLMs to code for us, but we have highly expressive semantic vector spaces that map to architectural relationships and meaning of behaviour, and changing the architecture of a system to support new behaviour is a matter of changing the serialisation of semantic vectors via the prompt.
Re: Why software projects take longer than you think: a statistical model (2019)
#3Unfortunately it doesn't happen very often (mainly because tooling support for this has been missing in popular trackers such as Jira).
In situations where I was the decisionmaker on the methodology I've had excellent success with it. (using about 90%-95% confidence interval was typically right on the mark)
Re: Why software projects take longer than you think: a statistical model (2019)
#4My interpretation here is software engineers are better at estimating tasks than I thought. The next step is analysing tasks being performed in serial to show how many sub-tasks a project can have before the estimates are effectively meaningless / likely to blow out an unpredictable amount. I bet it turns out to be about a sprint's worth of work. Real people have a knack for feeling out those sort of tipping points empirically.
[0] https://en.wikipedia.org/wiki/Inspection_paradox#Inspection_...
Re: Why software projects take longer than you think: a statistical model (2019)
#5Re: Why software projects take longer than you think: a statistical model (2019)
#6I've been advocating for 3-point estimation for quite a while. [1] Unfortunately it doesn't happen very often (mainly because tooling support for this has been missing in popular trackers such as Jira). In situations where I was the decisionmaker on the methodology I've had excellent success with it. (using about 90%-95% confidence interval was typically right on the mark) [1]: https://en.wikipedia.org/wiki/Three-poi…
But how does one uncover the best/worst/most likely without doing so?
You can spend 20min writing the most beautiful Acceptance Criteria but if you don't get a bit into detail on what the user actually wants it's all for naught. It could be way simpler (hey what if I just did X) or way more complex (oh well now that you mention it..), etc.
Typically it was engineering manager & engineers sitting in a room discussing requirements with each other. What could go wrong obviously? lol.
Re: Why software projects take longer than you think: a statistical model (2019)
#7Will I be on 0 outage calls or 5? Doesn't matter if I am on pager duty rotation or not..
Will I get pulled into 3 calls this afternoon or 0?
Is my boss gonna come bother me with some urgent non-ticket task tomorrow morning? Etc.
I'm currently in a no-jira, no-meeting, get-it-done environment and I find myself getting tremendous amounts of work done for the first time in nearly a decade. I would not have estimated my ability to get 1/4 of what I have gotten done, done. My last 2 jobs were basically the opposite. Everything took 4x as long as it should..
Re: Why software projects take longer than you think: a statistical model (2019)
#8Nobody has yet had the balls to state the obvious: we have to learn to work without estimations.
Re: Why software projects take longer than you think: a statistical model (2019)
#9Another factor here is in a meeting-heavy agile environment, many engineers can't even give a good forward estimate of the number of "in the zone" hours they will have in the coming week. Will I be on 0 outage calls or 5? Doesn't matter if I am on pager duty rotation or not.. Will I get pulled into 3 calls this afternoon or 0? Is my boss gonna come bother me with some urgent non-ticket task tomorrow morning? Etc. I'm…
Re: Why software projects take longer than you think: a statistical model (2019)
#10Another factor here is in a meeting-heavy agile environment, many engineers can't even give a good forward estimate of the number of "in the zone" hours they will have in the coming week. Will I be on 0 outage calls or 5? Doesn't matter if I am on pager duty rotation or not.. Will I get pulled into 3 calls this afternoon or 0? Is my boss gonna come bother me with some urgent non-ticket task tomorrow morning? Etc. I'm…
Best env, but sadly a bit rare?
I used to select for shops like that, no wonder lay-offs are scary if you've been trapped in meetings instead of shipping.