On 2 Mar 2020, at 13:54, Warren Stephens wrote:

Note to others: Software *Engineers* must operate with the 3-way tradeoff
in mind (pick 2 is the old joke):

   1. quality (good)
   2. time (fast)
   3. cost (cheap)

Well, if you are taking "engineering" out of sheaf, then the following essential
parts of any engineering project also deserve a mention:

4. lifecycle (varying)
5. stakeholder roles and their preferences

A. Throwaway write-once, execute-once code.

Stakeholder roles (often both roles are played by the same person) and their preferences:
- Developer. Write ASAP, debug ASAP
- Code user. Get the answer quickly and cheaply.

Does not need tests. `with` is irrelevant.

Z. Write once, maintain for 50 years code.

Stakeholder roles and their preferences (roughly):
- Original developer.
  Write ASAP, debug ASAP, not to be hassled by maintainer and users.

- Maintenance developer.
Fix bugs, add features as expediently as possible. Not to break anything.

- Operating engineer.
  Make the code work reliably to not be woken up during outages.

- Technical writer.
Provide documentation for maintenance developer, users, operator as fast as possible.

- Users.
Get the benefit, have bugs and features implemented as fast as possible.

- Financier.
  Cost of development, operations and maintenance as low as possible.

- Project manager.
  Time to fix bugs and add features as low as possible.

- ... the list can go on and on

The price of writing the code for the first time and covering with tests if
it was written without tests in this case is irrelevant.

N. Code that was written once in a hurry, needs to be covered by tests, and does not change often enough and radical enough to expose brittleness of the tests.

That's the sweet spot. Is there much code like this, and is this use-case
important enough?

--
Misha

--
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/2EA1CFFB-5675-4F6F-A6F5-F5FF9CCC0669%40ridge.co.

Reply via email to