On Saturday, 26 September 2015 at 11:00:39 UTC, Ola Fosheim Grøstad wrote:
On Friday, 25 September 2015 at 21:03:12 UTC, Laeeth Isharc wrote:
So, no, one can't say that in a blanket way risk aversion is good project management if what you care about is enterprise value rather than what people think of you.

Risk aversion is good software project management. Period.

What was it you were called by one compiler writer here ? The king of shifting goal posts.

You don't argue in a straightforward manner, Ola. Your words have a superficial logic to them, but not always much coherence or common sense,

It is very common for software projects to not meet their target and fail to adapt to changes in the environment,

Yes. One reason for failure to adapt is lack of plasticity and ability to iterate rapidly. But there are many factors and you can't reasonably portray it in the highly simplistic manner that in my opinion you do.

so the
first thing you should do is mitigate risk for failure and risks that you may not be able to move/change in the future.

No. The first thing you should do is think about what you want to achieve and how you are going to get there. Then you can think about what might go wrong, and what you will do if that happens, and what sensible optionality and insurance you can buy upfront.


You have to measure up the potential gains against potential risks.

Now you are repeating my words to me with different emphasis without acknowledging. If it's a question of balance and tradeoffs then it's no longer purely about blanket risk aversion,

If the gains is 30% increased productivity and 30% higher risk for failure... then you give up the increased productivity and argue in favour of increased budgets.

If. And it's context dependent. But you're making assumptions that may be true for you, and might be true for some others, but won't be true for another group.


Most current imperative languages are more or less of the same nature. They have different short-comings, but for non-system-programming you can basically do the same project in Go, C, C++, D, Java, C#, Nim, Rust, Ada...

Yeah yeah all Turing complete. But languages have many relevant attributes beyond those, as Knuth pointed out in the speech I posted an extract from here a while ago. The experience of writing different kind of projects in those languages is not the same, and in some cases that matters, sometimes a lot. Programmers are human beings, and the work on ergonomics and office design shows that even apparently trivial things can make a great deal of difference to human productivity. And the difference between writing in those languages is far from trivial. The fact that you can do it doesn't mean the language choice itself (setting aside tooling and libraries) is irrelevant commercially, as you must surely at some level realize. The right decision depends on the project and the context, and human and organisational factors must be a good part of that.

BUT that is only the language. Production involves more than the language. C++, Java and C# has a much larger set of options than the other alternatives.

True, but whether this matters much depends on what you are trying to do, particularly since with some effort you can talk to C++ natively and more effort Java and prob C#. And if you are building things in terms of micro services and the interface doesn't need to be incredibly fast, then it doesn't need to be native (and maybe sometimes shouldn't).





Reply via email to