-
Notifications
You must be signed in to change notification settings - Fork 15
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
feat: Propose keeping architecture design records for scaf. #408
base: main
Are you sure you want to change the base?
Conversation
This includes the actual ADR for this change, as well as the MADR template proposed for future ADRs.
Before delving into specific concerns, it's important to note that Scaf is developed by a small team that generally agrees on what problems it should solve and how to solve them. To date, there have been very few, if any, disagreements about its architecture. This raises an important question: Are we looking to implement ADRs to solve a problem that doesn't actually exist in our current workflow? While I appreciate the potential benefits of adopting ADRs for Scaf, particularly in terms of transparency and decision documentation, I have some concerns about the implementation:
While I see the value in ADRs, I believe we need to carefully consider these points to ensure their adoption would genuinely benefit Scaf without unduly burdening our development process. Perhaps we could consider the following options:
By addressing these concerns and considering these alternatives, we can make a more informed decision about whether and how to implement ADRs in the Scaf project. If we do decide to adopt them, we can ensure they provide maximum benefit with minimal disruption to our development process. Ultimately, given the size and cohesion of our team, we should carefully evaluate whether formal ADRs are necessary or if our current system of issues and pull requests, perhaps with some minor adjustments, is sufficient for our needs. |
I think our template, while largely the same with a few additions, turned out daunting and scary compared to Brian Okken's: https://github.com/okken/ok/blob/main/docs/adr/000-adr-template.md?plain=1&featured_on=pythonbytes I know a lot of sections are marked as optional, but the visual impact of the giant template puts you in a different mindspace. At least during a trial period, I think we should keep it very lightweight. We just need a few sentences covering the key points. I like Okken's template because I think it encourages that. This will also make is easier to add the ADRs for the project as it stands. On Scaf in particular, I think this documentation – or something like it – is necessary not for our team but for developers we want to use Scaf. Currently, we don't explain Scaf's options or why we chose its ingredients in one place. |
I agree w/Anthony and like the short and sweet template he linked. What should our naming convention be for the files? Should we group into subdirs? |
What do you think of using the lightweight ADR template as an issue template so we can use GitHub issue management to keep track of them and link PRs to them? |
I would be ok with this if we can provide a single link from the documentation that gives a list of just the ADRs in some sensible order (which might not be date-based, because a semantic order might make more sense, such as big pieces to smaller pieces). |
i like the idea of a simple adr markdown template, with files under the reason i like this approach is that we get an adr in the end, which is pretty much a summary doc of what we decided, why we chose that option, and options we considered (what want to know most of the time and quick to read). along the way, we can use the github issue and pr as a way to track the discussion, and link the issue in the actual adr for a "more details" view on the decision. |
@rochecompaan do you think a full "issue" workflow is necessary for these or is the PR process enough to distinguish a draft ADR from a final ADR? |
I'll try refactoring my ADR into Brian Okken's template and the suggested location, and we can see if it works out better in practice. |
After some more thought about using GitHub issues, I'm again in favor of having an ADR docs dir so that we have markdown artifacts that are browsable offline rather than stored and viewed through proprietary GitHub services. This will give us the minimal PR workflow you're suggesting, @abosio. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm on board with the proposed changes, just a couple of additional thoughts/summary:
- The lightweight format will help us with workflow and not be too much of a bottleneck.
- Location of docs/decisions is ok; down the road we may want to categorize further into major components for ease of finding things if the volume gets large
- The PR process seems sufficient for managing the ADRs
- We may need to narrow the scope of what truly requires an ADR so we don't burden workflow on little things?
- We might want to list some of the bigger past decisions and get help documenting those for the team
- I'm still unclear on naming convention of the files so it's easy to read the list/find things
My concerns shouldn't prevent us from moving forward with this template format, so I'm approving.
This includes the actual ADR for this change, as well as the MADR template proposed for future ADRs.