[erlang-questions] Software Estimation and Progress Tracking

Valentin Micic v@REDACTED
Thu Sep 19 13:54:31 CEST 2013

Well, if you do not know what you're doing, then you can just as well call it a research.

On 19 Sep 2013, at 11:59 AM, Jesper Louis Andersen wrote:

> On Thu, Sep 19, 2013 at 6:44 AM, <kevin@REDACTED> wrote:
> I recently wrote a blog post on software estimation and progress tracking for functional languages. Unfortunately, the post was not terribly substantive and posed more questions than it answered. Since the Erlang community seems to have a lot of good practical experience on various sizes of commercial projects, I wondered if anyone here had experience with estimation and progress, particularly as it differs (or perhaps doesn't) when using Erlang as opposed to imperative languages.
> The underlying problem of software estimation is this:
> "Please estimate how many years it takes to make a fusion reactor from now, solving all power problems on the earth in one fell swoop."
> The thing is, you can't. People understand this to be research and hence they have no qualms at throwing effort at the project in the hope it brings you closer to the ultimate goal, albeit slowly.
> Software is not "construction". It turns out to be "research". Regarding it as "construction" by imposing estimates and progress tracking is usually futile due to this dichotomy and the fact people missed it was "research".
> So, will the research happen faster in Erlang than in other languages? This is hard to answer without being concrete. My loose experience is that languages working at higher level in general provides shorter paths to enlightenment[0]. Since functional languages are often working at a higher level there is a considerable overlap. But don't underestimate something like Python, Ruby or Javascript which also works at the same high level. It is not always the case that you will be faster due to the trait of being functional.
> Compared to "traditional" languages like C or C++, the lack of proper garbage collection is the key thing which make you research faster. Compared to Java, it is the succinctness of Erlang. Compared to many other systems, like Python or Ruby, it is the toolset in Erlang to describe concurrency and the ability to utilize the machine via parallelism. Compared to Golang, it is probably the process isolation and the ability to run large complex systems with hundreds of applications in the same memory space without panics[1].
> Bringing it back to estimation, I fear that we will just adapt and expect more features to delivered in shorter time, so our estimation of progress and effort will still be off, even if we get things done faster. For some reason, there is a bias toward "fast delivery" with no regard toward "quality of product". This is a depressing work environment, though: every deliverable will be too late, always. And this leads to a psychological phobia of estimation :)
> [0] Since software is research, the goal is to seek enlightenment and understand something deeper than before.
> [1] Though this is a hunch, not experience.
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130919/15384af3/attachment.htm>

More information about the erlang-questions mailing list