-
-
Save vini-btc/eb6efdb01a5ac910942b072d15fffb06 to your computer and use it in GitHub Desktop.
Code architecture meetings guidelines | |
Topics to be discussed should pass the following requirements: | |
1. Clear description | |
It should clearly describe what the issue is about, stating the goal of discussing that topic and if possible | |
propose a set of action points. | |
2?. A tag | |
We currently don't have'em, but we could. "App structure", "React best practices", "Types", "Tests", etc. | |
3. A concrete example of the issue being discussed and/or the solution being proposed. This could be: | |
- A gist with the example | |
- An extract of the code from our codebase | |
- An extract of code from other sources | |
- A wip/dummy/sample PR with a proposal | |
- Highlights of an article or book. | |
4. An assignee. A person that will be responsible for presenting the topic, usually the creator. | |
5?. An ACK of all members on the topic card, represented by a comment. | |
As in: reporter of the card pokes people to check it. If one member agrees that the card is relevant | |
and that the other requirements were met, that member would go to the card and state this on a comment | |
on that card (adding an "Acked" comment there, for example). |
Regarding 1, I was thinking of, when it makes sense, adding already some plans of action to the description of the agenda point. An example of how I imagine it:
Removing semi-colons
We've been using semi-colons on our code base since it's beginning, although it is perfectly possible to write beautiful correct javascript without them. It is currently adding a lot of visual noise to our code, making our eyes hurt when reviewing code, and our fingers work WAY more than they would need.
Here is a piece of horrible code we have right now:
const a = 'a'; const b = 'b'; const maybeCmaybeD = c ? 'c' : 'd';
And with the proposed change:
const a = 'a' const b = 'b' const maybeCmaybeD = c ? 'c' : 'd'
The goal of the discussion is to show how bad semi-colons are and if everyone agrees, come up with a plan to refactor the current code, add corresponding linting rules and document semi-colons avoidance as a best practice from now on.
Regarding 3, I think before we go to the PoC, we could've approached it differently. For example, showing some highlights of the article that talked about apollo-client cache invalidation after mutations, some code samples that would be there and some counter-examples. Comments on the article, issues on github, quick and dirty examples of how the same code would look like using redux.
Regarding 5, cool.
And regarding your overall feeling, I believe it is because almost all of the work is on you. Part of my motivation behind proposing it is trying to make some more shared ownership happen. And I'm up to pick-up the task of pushing us all to make it happen.
Part of my motivation behind proposing it is trying to make some more shared ownership happen
❤
I think this the goal of the discussion
Regarding this, having a PoC I think it is not worth to make it before discussing
if we even should consider that flow/implementation (unless it is a quick one).
This is exactly what we did with Apollo cache, it is 1 of the options, so to make a
decision, we agreed in making a PoC to understand better how it works.
we can have vote or thumbs up system in jira
Overall I do think quite some ideas are great, like number 3.
Unfortunately, I believe that might work in the beginning (post-implementation)
but not for long.
My reasoning behind this is that preparing an AAM like we currently do, it takes
time to check backlog, make sure the topics are in the correct order of priority,
and finally, prepare the agenda.
Because of this we already missed a few meetings because no-one prepared
them, and it is way less work than number 3.
So, how will we do if no-one prepares nothing, but we need to discuss, exactly
like today's A/B testing topic? Are we going to postpone until the day where we
say, "we're going to build X like this because we need it for this week".
Sorry for being
pessimistrealist, but unless we drasticaly change the way webehave, I'm not expecting this to happen