This repository has been archived by the owner. It is now read-only.

[RFC] Engineering guiding principles #41

Merged
merged 7 commits into from Aug 21, 2018

Conversation

Projects
None yet
8 participants
@orta
Member

orta commented Aug 6, 2018

This tries to make a spiritual successor to the Artsy objc.io as a part of making more of artsy dev culture explicit instead of implicit.

I took a look at some of our larger tech choices and tried to re-frame some of the terms I've used when speaking publicly to be a consistent set of ideals. I need to do a bit more work on declaring that this is something we strive for, rather than perfect being this.

It's worth noting that this is different from the current org-wide culture survey that @williardx is running.

@peril-staging

This comment has been minimized.

Show comment
Hide comment
@peril-staging

peril-staging bot Aug 6, 2018

Danger run resulted in 1 warning and 2 markdowns; to find out more, see the checks page.

Generated by 🚫 dangerJS

peril-staging bot commented Aug 6, 2018

Danger run resulted in 1 warning and 2 markdowns; to find out more, see the checks page.

Generated by 🚫 dangerJS

@ashfurrow

Looks great – I would co-sign it all 👍 Just a bunch of nitpicking grammar stuff.

Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
@joeyAghion

Props for writing these down. Reading and reacting, I wonder if inline comments can lead to "consensus" about such a deep topic, but at least you've started the process.

I selfishly would love to incorporate some of the Platform team's principles into this. The most valuable for our work have been:

  • "Build for 10x." This helps us decide how much architecture/engineering/planning is too little and how much is too much.
  • "Done means done." This makes explicit that we take responsibility for our work product being the right change, performing in production as expected, and being understood and adopted by the necessary stakeholders. I.e., our work is not over when the PR is merged.
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
@orta

This comment has been minimized.

Show comment
Hide comment
@orta

orta Aug 6, 2018

Member

WRT consensus, I figured it might make sense to not class this as something mergeable once some commenting has happened, but do feedback etc for a week and iterate - then do an optional for all meeting about wrapping it up and shipping it

Member

orta commented Aug 6, 2018

WRT consensus, I figured it might make sense to not class this as something mergeable once some commenting has happened, but do feedback etc for a week and iterate - then do an optional for all meeting about wrapping it up and shipping it

@orta

This comment has been minimized.

Show comment
Hide comment
@orta

orta Aug 8, 2018

Member

I've taken a first run "build for 10x" and "done is done"

Member

orta commented Aug 8, 2018

I've taken a first run "build for 10x" and "done is done"

@ashfurrow

This comment has been minimized.

Show comment
Hide comment
@ashfurrow

ashfurrow Aug 8, 2018

Member

This paragraph sounds good to me, but I'd suggest moving the first sentence to be later in the explanation; it seems odd to start a description of "Done Means Done" with what it's not 😉

Member

ashfurrow commented on meta/engineering_principles.md in b88fb46 Aug 8, 2018

This paragraph sounds good to me, but I'd suggest moving the first sentence to be later in the explanation; it seems odd to start a description of "Done Means Done" with what it's not 😉

@ashfurrow

This comment has been minimized.

Show comment
Hide comment
@ashfurrow

ashfurrow Aug 8, 2018

Member

This makes it really clear, nice.

Member

ashfurrow commented on meta/engineering_principles.md in b88fb46 Aug 8, 2018

This makes it really clear, nice.

@orta

This comment has been minimized.

Show comment
Hide comment
@orta

orta Aug 9, 2018

Member

@sweir27 mentioned "Being Nice is Nice" as one of our principals

Member

orta commented Aug 9, 2018

@sweir27 mentioned "Being Nice is Nice" as one of our principals

@ashfurrow

This comment has been minimized.

Show comment
Hide comment
@ashfurrow

ashfurrow Aug 9, 2018

Member

@orta @sweir27 Yeah yeah, I like that a lot. It's kind of... like, unspoken almost? Like, "being nice is nice" is just so much a part of how we work that it's easy to forget it's even there.

Member

ashfurrow commented Aug 9, 2018

@orta @sweir27 Yeah yeah, I like that a lot. It's kind of... like, unspoken almost? Like, "being nice is nice" is just so much a part of how we work that it's easy to forget it's even there.

Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
Show outdated Hide outdated meta/engineering_principles.md Outdated
@sweir27

This comment has been minimized.

Show comment
Hide comment
@sweir27

sweir27 Aug 10, 2018

Contributor

To flesh out the idea I had above (also have to give much credit to my mother who always says "It's nice to be nice" which is one of the more helpful life lessons).


"Being nice is nice" or "It's nice to be nice" or however we want to say it.

Behind every piece of code is a human, internal or external to Artsy. Give people the benefit of the doubt. Take the time to understand why they made a decision before making assumptions. Realize that you may come across differently on slack/github than in-person and consider how the person on the other side might respond to what you're saying. There's always a nice way to handle a situation, and we strive for that.

Contributor

sweir27 commented Aug 10, 2018

To flesh out the idea I had above (also have to give much credit to my mother who always says "It's nice to be nice" which is one of the more helpful life lessons).


"Being nice is nice" or "It's nice to be nice" or however we want to say it.

Behind every piece of code is a human, internal or external to Artsy. Give people the benefit of the doubt. Take the time to understand why they made a decision before making assumptions. Realize that you may come across differently on slack/github than in-person and consider how the person on the other side might respond to what you're saying. There's always a nice way to handle a situation, and we strive for that.

@orta

This comment has been minimized.

Show comment
Hide comment
@orta

orta Aug 10, 2018

Member

Being nice is nice is good for me, I gave a talk on this back in 2015

Member

orta commented Aug 10, 2018

Being nice is nice is good for me, I gave a talk on this back in 2015

@joeyAghion

This comment has been minimized.

Show comment
Hide comment
@joeyAghion

joeyAghion Aug 10, 2018

I like "being nice is nice" and think that some other "obvious" items might be worth making explicit for new team members:

  • shipping early and often
  • making the "hard" things easy with CI/CD/devops
  • anybody can contribute to anything and our open-source-style workflow

joeyAghion commented Aug 10, 2018

I like "being nice is nice" and think that some other "obvious" items might be worth making explicit for new team members:

  • shipping early and often
  • making the "hard" things easy with CI/CD/devops
  • anybody can contribute to anything and our open-source-style workflow
@starsirius

This comment has been minimized.

Show comment
Hide comment
@starsirius

starsirius Aug 10, 2018

Member

This is great! I like that we have examples and further readings for each section! Minor suggestion that it will help me read with a ToC type of summary on the top, given the # of items we have.

While reading through it, it reminds me of the triangle (quantity-quality-time). Maybe that's worth mentioning, too.

Member

starsirius commented Aug 10, 2018

This is great! I like that we have examples and further readings for each section! Minor suggestion that it will help me read with a ToC type of summary on the top, given the # of items we have.

While reading through it, it reminds me of the triangle (quantity-quality-time). Maybe that's worth mentioning, too.

@mennenia

This comment has been minimized.

Show comment
Hide comment
@mennenia

mennenia commented Aug 14, 2018

❤️

@joeyAghion

This comment has been minimized.

Show comment
Hide comment
@joeyAghion

joeyAghion Aug 16, 2018

Another principle (from Platform) that felt relevant today as I was reviewing the last and next quarters: "Order matters." I.e., we think carefully about the right order in which to take on big projects. Initial steps can de-risk projects, expose mistaken assumptions, surface feedback, and create opportunities for reuse or other compounding benefits.

joeyAghion commented Aug 16, 2018

Another principle (from Platform) that felt relevant today as I was reviewing the last and next quarters: "Order matters." I.e., we think carefully about the right order in which to take on big projects. Initial steps can de-risk projects, expose mistaken assumptions, surface feedback, and create opportunities for reuse or other compounding benefits.

@orta

This comment has been minimized.

Show comment
Hide comment
@orta

orta Aug 18, 2018

Member

OK, I think I've addressed all the feedback in here

WRT the TOC, I'll fix and build something more systematic for the entire upcoming README repo rather than a one-off for this file.

Member

orta commented Aug 18, 2018

OK, I think I've addressed all the feedback in here

WRT the TOC, I'll fix and build something more systematic for the entire upcoming README repo rather than a one-off for this file.

@orta

This comment has been minimized.

Show comment
Hide comment
@orta

orta Aug 18, 2018

Member

Will merge this on Tuesday if there's no breaking feedback, it's obviously a living document - I'd love some blog posts or links around the last two values so they feel fleshed out

Member

orta commented Aug 18, 2018

Will merge this on Tuesday if there's no breaking feedback, it's obviously a living document - I'd love some blog posts or links around the last two values so they feel fleshed out

@orta

This comment has been minimized.

Show comment
Hide comment
@orta

orta Aug 21, 2018

Member

Alright, merging this. 🎉

Member

orta commented Aug 21, 2018

Alright, merging this. 🎉

@orta orta merged commit ab2063b into master Aug 21, 2018

@ashfurrow ashfurrow deleted the principals branch Aug 21, 2018

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