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.