Skip to content

Add a philosophy document to exercises directories? #382

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
kytrinyx opened this issue Sep 19, 2016 · 4 comments
Open

Add a philosophy document to exercises directories? #382

kytrinyx opened this issue Sep 19, 2016 · 4 comments

Comments

@kytrinyx
Copy link
Member

In #375 (comment) @petertseng says:

these things should be documented so that we can avoid duplication of past efforts.

How about if we create a file in the exercise subdirectory that documents our discussions and efforts?

We wouldn't need to add this to all exercises, nor all at once. But as we have discussions it would be incredibly useful to be able to have the results of these discussions on hand.

@petertseng
Copy link
Member

petertseng commented Sep 20, 2016

I also suggest that it could be put in the canonical-data.json (if it should be mainly targeted at track maintaineres), or the description.md (if it should be targeted at students)\

to reuse existing files and not introduce a new one

@kytrinyx
Copy link
Member Author

I'd rather keep this out of the description.md since this is about why we ended up making the choices we did, or which trade-offs we considered and then rejected.

This also feels different from canonical-data.json as well, as that feels like it is the end result of the discussion, and most people who want to use it to generate a new implementation should be able to follow it without worrying about the details, unless they're interested in them.

@jtigger
Copy link
Contributor

jtigger commented Sep 23, 2016

I really like this idea. I've seen the same on long-lived systems and been grateful for the insight on why certain design choices were made. Knowing why can really make work more efficient: it increases my confidence that I'm making "good" changes and has saved me from repeating history.

The most useful ones I've seen have a simple formats, something like:

  1. Overall context (where idea came from, original problem being solved).
  2. Key Descision X:
    • Problem/Aspect
    • Decision (expected benefits + known trade-offs)
    • Other options considered (terse, but some hint as to why deemed unsuitable)

The latest iteration of such documents I was involved in for a system were deliberately and specifically version controlled so that text could be safely deleted without fully losing that history.

Is this the kind of thing you're talking about @kytrinyx?

@kytrinyx
Copy link
Member Author

Is this the kind of thing you're talking about?

Yes, that's exactly it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants