Skip to content

Instantly share code, notes, and snippets.

@vini-btc
Last active April 7, 2019 19:32
Show Gist options
  • Save vini-btc/eb6efdb01a5ac910942b072d15fffb06 to your computer and use it in GitHub Desktop.
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).
@mloureiro
Copy link

1. ... and if possible propose a set of action points.

I think this the goal of the discussion

3. ... A wip/dummy/sample PR with a proposal

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.

5?. An ACK .... (adding an "Acked" comment there, for example)._

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 pessimist realist, but unless we drasticaly change the way we
behave, I'm not expecting this to happen

@vini-btc
Copy link
Author

vini-btc commented Apr 5, 2019

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.

@mloureiro
Copy link

Part of my motivation behind proposing it is trying to make some more shared ownership happen

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