Software Engineering at Google ์์๋ฅผ ๋งค์ผ ์กฐ๊ธ์ฉ ์ฝ๊ณ ์๋ค. ์ฝ๋ค๊ฐ ์ด๋๋ก ๊ทธ๋ฅ ์ง๋์น๊ธฐ์๋ ์์ฌ์ด ๋ถ๋ถ๋ค์ ๊ธฐ๋กํ๋ ค๊ณ ํ๋ค.
Software Engineering at Google
Curated by Titus Winters, Tom Manshreck & Hyrum Wright
1.
์์น : PART II Culture / Chapter 2: How to Work Well on Teams / The Genius Myth
The Genius Myth is the tendency that we as humans need to ascribe the success of a team to a single person/leader.
์ฒ์ฌ ์ ํ๋ ์ฐ๋ฆฌ๊ฐ ์ธ๊ฐ์ผ๋ก์จ ํ์ ์ฑ๊ณต์ ํ ๊ฐ์ธ/๋ฆฌ๋์๊ฒ ๋๋ฆฌ๋ ๊ฒฝํฅ์ ๋๋ค.
ex) ์์๋ก ๋์จ ์ ํ ์ธ๋ฌผ๋ค๊ณผ ์
์ . ์ฌ์ค ์ด ์
์ ๋ค์ ๋๋ํ ํ์๋ค์ ๊ณต๋์์
์ด๋ค.
Linux - Linus Torvalds
Unix - Ken Thompson and Dennis Ritchie
Python - Guido Van Rossum
Steve Jobs - Macintosh
Bill Gates - BASIC interpreter , MS-DOS
Michael Jordan - The teamโs coach, Phil Jackson. ์ฝ์น์ ๋ฅ๋ ฅ์ผ๋ก ๋ง์ดํด ์กฐ๋์ ์ฌ๋ฅ์ด ๋ ๋น๋ฌ๋ค
Celebrity is a big part of it. Humans have a natural instinct to find leaders and role models, idolize them, and attempt to imitate them. We all need heroes for inspiration, and the programming world has its heroes, too.
์ ๋ช ์ธ์ฌ๋ ์ด๊ฒ(์ฒ์ฌ ์ ํ)์ ํฐ ๋ถ๋ถ์ด์ฃ . ์ธ๊ฐ์ ๋ณธ๋ฅ์ ์ผ๋ก ๋ฆฌ๋์ ๋กค๋ชจ๋ธ์ ์ฐพ๊ณ ์ฐ์ํํ๊ณ ๋ชจ๋ฐฉํ๋ ค๊ณ ํฉ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ์๊ฐ์ ์ป๊ธฐ ์ํด ์์ ๋ค์ด ํ์ํ๊ณ , ํ๋ก๊ทธ๋๋ฐ ์ธ๊ณ์์๋ ์ด๊ฒ์ ๋ง์ฐฌ๊ฐ์ง์ฃ .
2.
์์น : PART II Culture / Chapter 2: How to Work Well on Teams / Hiding Considered Harmful / Early Detection
If you keep your great idea hidden from the world and refuse to show anyone anyโ thing until the implementation is polished, youโre taking a huge gamble. Itโs easy to make fundamental design mistakes early on. You risk reinventing wheels. And you forfeit the benefits of collaboration, too:
๋ง์ฝ ๋น์ ์ ํ๋ฅญํ ์์ด๋์ด๋ฅผ ์ธ์์ ๊ณ์ ์จ๊ธฐ๊ณ ๊ตฌํ์ ์์ฑํ ๋๊น์ง ๊ทธ ๋๊ตฌ์๊ฒ ๊ทธ ๋ฌด์๋ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ๊ฑฐ๋ถํ๋ค๋ฉด, ๋น์ ์ ์์ฒญ๋ ๋๋ฐ์ ํ๋ ๊ฒ์ ๋๋ค. ์ด๊ธฐ์๋ ์ค๊ณ ๋์์ธ ์ค์๋ฅผ ํ๊ธฐ ์ฝ์ฃ . ๋ฐํด๋ฅผ ์ฌ๋ฐ๋ช ํ ์ํ์ด ์๊ณ ์. ๊ทธ๋ฆฌ๊ณ ๋น์ ์ ํ์ ์ ์ด์ ๋ค์ ๋์น๋ ๊ฒ๋๋ค.
3.
์์น : PART II Culture / Chapter 2: How to Work Well on Teams / Hiding Considered Harmful / Pace of Progress
Requirements morph unexpectedly. How do you get that feedback loop so that you know the instant your plans or designs need to change? Answer: by working in a team. Most engineers know the quote, โMany eyes make all bugs shallow,โ but a better version might be, โMany eyes make sure your project stays relevant and on track.โ
์๊ตฌ์ฌํญ๋ค์ ์๊ธฐ์น ์๊ฒ ๋ณ๊ฒฝ๋ฉ๋๋ค. ๊ณํ์ด๋ ๋์์ธ์ด ๋ณ๊ฒฝ๋์ด์ผ ํ๋ ์๊ฐ์ ์๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํผ๋๋ฐฑ ๋ฃจํ๋ฅผ ์ป์ด์ผํ ๊น์? ๋ต์ ํ์ผ๋ก์ ์ผํ๋ ๊ฒ์ ๋๋ค. ๋๋ถ๋ถ์ ์์ง๋์ด๋ค์ "๋ง์ ๋์ด ๋ชจ๋ ๋ฒ๊ทธ๋ค์ ์์์ง๊ฒ ํ๋ค."๋ผ๋ ์ธ์ฉ๊ตฌ๋ฌธ์ ์์ง๋ง, ๋ ๋์ ๋ฒ์ ์ "๋ง์ ๋์ด ๋น์ ์ ํ๋ก์ ํธ๋ฅผ ์ ์ ํ๊ณ ์์กฐ๋กญ๊ฒ ์งํ์ํจ๋ค."์ผ ๊ฒ์ ๋๋ค.
4.
์์น : PART II Culture / Chapter 2: How to Work Well on Teams / Itโs All About the Team / The Three Pillars of Social Interaction
To reach collaborative nirvana, you first need to learn and embrace what I call the โthree pillarsโ of social skills.
ํ์ ์ ์ด๋ฐ์ ์ด๋ฅด๊ธฐ ์ํด์๋, ๋จผ์ ํ์๊ฐ ์ฌํ ์คํฌ์ "์ธ ๊ธฐ๋ฅ"์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋ฐฐ์ฐ๊ณ ๋ฐ์๋ค์ด์ผ ํฉ๋๋ค.
Pillar 1: Humility
You are not the center of the universe (nor is your code!). Youโre neither omnisโ
cient nor infallible. Youโre open to self-improvement.
Pillar 2: Respect
You genuinely care about others you work with. You treat them kindly and
appreciate their abilities and accomplishments.
Pillar 3: Trust
You believe others are competent and will do the right thing, and youโre OK with
letting them drive when appropriate.
๊ธฐ๋ฅ 1 : ์ธ๊ฐ์ฑ
๋น์ ์ ์ฐ์ฃผ์ ์ค์ฌ์ด ์๋๊ณ ๋น์ ์ฝ๋๋ ๊ทธ๋ ์ฃ . ๋น์ ์ ์ ์ง์ ๋ฅํ์ง๋ ์๊ณ ์ค์ ์ด ์์ง๋ ์์ต๋๋ค. ๋น์ ์ ์๊ธฐ ๊ฐ์ ์ ์ด๋ ค์์ต๋๋ค.
๊ธฐ๋ฅ 2: ์กด์ค
๋น์ ์ ๊ฐ์ด ์ผํ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ง์ฌ์ผ๋ก ์ฑ๊น๋๋ค. ๋น์ ์ ๊ทธ๋ค์๊ฒ ์น์ ํ๊ณ ๊ทธ๋ค์ ๋ฅ๋ ฅ๊ณผ ์ฑ์ทจ๋ฅผ ๋์ด ํ๊ฐํฉ๋๋ค.
๊ธฐ๋ฅ 3: ์ ๋ขฐ
๋น์ ์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ ๋ฅํ๊ณ ์ผ์ ์ ํ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ผ๋ฉฐ, ๊ทธ๋ค์ด ์ ๊ธฐ์ ์ผ์ ์ด๋๋ ๊ฒ์ด ๊ด์ฐฎ์ํฉ๋๋ค.
5.
์์น : PART II Culture / Chapter 2: How to Work Well on Teams / Itโs All About the Team / Why Do These Pillars Matter?
Relationships always outlast projects. When youโve got richer relationships with your coworkers, theyโll be more willing to go the extra mile when you need them.
๊ด๊ณ๋ ํญ์ ํ๋ก์ ํธ๋ณด๋ค ์ค๋ ๊ฐ๋๋ค. ๋๋ฃ๋ค๊ณผ ๋ ๋๋ ํ ๊ด๊ณ๋ฅผ ๋งบ์ ๋, ๋น์ ์ด ํ์๋ก ํ ๋ ๊ทธ๋ค์ ๋ ๋ง์ ๊ฒ์ ๊ธฐ๊บผ์ด ํด ์ค ๊ฒ๋๋ค.
6.
์์น : PART II Culture / Chapter 2: How to Work Well on Teams / Itโs All About the Team / Blameless Post-Mortem Culture
The key to learning from your mistakes is to document your failures by performing a root-cause analysis and writing up a โpostmortem,โ as itโs called at Google (and many other companies).
์ค์๋ก๋ถํฐ ๋ฐฐ์ฐ๋ ์ค์ํ ํต์ฌ์ ๊ทผ๋ณธ ์์ธ์ ๋ถ์ํ๊ณ ๊ตฌ๊ธ(๊ณผ ๋ค๋ฅธ ๋ง์ ํ์ฌ๋ค)์ด "๋ถ๊ฒ(์ฌํ ํ๊ฐ)"์ด๋ผ ๋ถ๋ฅด๋ ๊ธ์ ๊ธฐ๋กํด์ ๋น์ ์ ์คํจ๋ฅผ ๋ฌธ์ํํ๋ ๊ฒ์ ๋๋ค.
A proper postmortem should always contain an explanation of what was learned and what is going to change as a result of the learning experience. Then, make sure that the postโ mortem is readily accessible and that the team really follows through on the proposed changes.
์ ๋๋ก ๋ ๋ถ๊ฒ์ ๋ฐฐ์ด ๊ฒ๊ณผ ๋ฐฐ์ด ๊ฒฝํ์ ๊ฒฐ๊ณผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ๋ค์ ๋ํ ์ค๋ช ์ ํญ์ ํฌํจํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๊ณ ๋์๋ ๊ทธ ๋ถ๊ฒ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋์ง์, ํ์ด ๋ฌธ์์์ ์ ์ํ ๋ณ๊ฒฝ ์ฌํญ๋ค์ ์ง์ง๋ก ๋ฐ๋ฅด๋ ์ง๋ ํ์ธํด์ผ ํฉ๋๋ค.
A good postmortem should include the following:
โข A brief summary of the event
โข A timeline of the event, from discovery through investigation to resolution
โข The primary cause of the event
โข Impact and damage assessment
โข A set of action items (with owners) to fix the problem immediately
โข A set of action items to prevent the event from happening again
โข Lessons learned
์ข์ ๋ถ๊ฒ์ ๋ค์์ ํญ๋ชฉ๋ค์ ํฌํจํด์ผ ํฉ๋๋ค.
- ์งง์ ์ฌ๊ฑด ์์ฝ
- ๋ฐ๊ฒฌ๋ถํฐ ์กฐ์ฌ, ํด๊ฒฐ๊น์ง์, ์ฌ๊ฑด์ ํ์๋ผ์ธ
- ์ฌ๊ฑด์ ์ฃผ์ ์์ธ
- ์ํฅ ๋ฐ ํผํด ํ๊ฐ
- ๋ฌธ์ ๋ฅผ ์ฆ์ ํด๊ฒฐํ๊ธฐ ์ํด ํํ ์ผ๋ จ์ ์์ ํญ๋ชฉ๋ค(๊ณผ ๋ด๋น์๋ค)
- ๋ค์ ์ฌ๊ฑด์ด ๋ฐ์ํ๋ ๊ฒ์ ๋ง๊ธฐ ์ํด ํํ ์ผ๋ จ์ ์์ ํญ๋ชฉ๋ค
- ๋ฐฐ์ด ๊ฒฝํ๋ค
์์น : PART II Culture / Chapter 2: How to Work Well on Teams / Itโs All About the Team / Blameless Post-Mortem Culture / Be open to influence
Admitting that youโve made a mistake or youโre simply out of your league can increase your status over the long run. In fact, the willingness to express vulnerability is an outward show of humility, it demonstrates accountability and the willingness to take responsibility, and itโs a signal that you trust othersโ opinions. In return, people end up respecting your honesty and strength. Sometimes, the best thing you can do is just say, โI donโt know.โ
๋น์ ์ด ์ค์ํ๋ค๋ ๊ฒ์ด๋ ๋น์ ์ ์ ๋ฌธ ๋ถ์ผ ๋ฐ ์์ญ์ด๋ผ๋ ๊ฒ์ ์ธ์ ํ๋ ๊ฒ์ ์ฅ๊ธฐ์ ์ผ๋ก ๋น์ ์ ์ง์๋ฅผ ๋์ผ ์ ์์ต๋๋ค. ์ฌ์ค, ์ฝ์ ์ ๊ธฐ๊บผ์ด ๋๋ฌ๋๊ธฐ์ ๊ฒธ์ํจ๊ณผ ์ฑ ์๊ฐ, ์ฑ ์์ง๋ ค๋ ์์ง์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์๊ฒฌ์ ์ ๋ขฐํ๋ค๋ ๊ฒ์ด ๋๋ฌ๋ฉ๋๋ค. ๊ทธ ๋๊ฐ๋ก, ์ฌ๋๋ค์ ๋น์ ์ ์ ์งํจ๊ณผ ํ์ ์ ๋ขฐํ๊ฒ ๋ฉ๋๋ค. ๋๋๋ก ๋น์ ์ด ํ ์ ์๋ ์ต์ ์ ๋จ์ง "์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค."๋ผ๊ณ ๋งํ๋ ๊ฒ์ ๋๋ค.
Professional politicians, for example, are notorious for never admitting error or ignoโ rance, even when itโs patently obvious that theyโre wrong or unknowledgeable about a subject. This behavior exists primarily because politicians are constantly under attack by their opponents, and itโs why most people donโt believe a word that politicians say. When youโre writing software, however, you donโt need to be continually on the defensiveโyour teammates are collaborators, not competitors. You all have the same goal.
์๋ฅผ ๋ค์ด, ์ ๋ฌธ ์ ์น์ธ๋ค์ ํ ์ฃผ์ ์ ๋ํด ์๋ชปํ๊ฑฐ๋ ์ง์์ด ์๋ ๊ฒ์ด ๋๋ฌด๋ ๋ช ๋ฐฑํ ๋์๋ ์ค๋ฅ๋ ๋ฌด์ง๋ฅผ ์ธ์ ํ์ง ์๋ ๊ฒ์ผ๋ก ์ ๋ช ์ด ๋์ฃ . ์ด๋ฌํ ํ๋์ ์ฃผ๋ก ์ ์น์ธ๋ค์ด ๋์์์ด ์๋๋ฐฉ์ผ๋ก๋ถํฐ ๊ณต๊ฒฉ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋ํ๋๊ณ , ์ด๋ฌํ๊ธฐ์ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ์ ์น์ธ๋ค์ ๋ง์ ๋ฏฟ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ํํธ์จ์ด๋ฅผ ์์ฑํ ๋์๋ ๊ณ์ ๋ฐฉ์ด์ ์ผ ํ์๊ฐ ์์ต๋๋ค. ๋น์ ์ ํ์๋ค์ ๊ฒฝ์์๋ค์ด ์๋๋ผ ํ๋ ฅ์๋ค์ ๋๋ค. ๋น์ ๋ค ๋ชจ๋ ๊ฐ์ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ์์ฃ .
'๋น ๊ตฌ๋ฉ ์ฑ์ฐ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Android]Glide fitXY (0) | 2021.08.11 |
---|---|
[Android]AlertDialog.Builder- dismiss() ์ฌ์ฉ ๋จ๋ฐ (0) | 2021.08.09 |
[Android] Types as Sets / ์งํฉ์ผ๋ก์์ ํ์ ๋ค(UI ์ํ) (0) | 2021.07.27 |
[Kotlin Coroutine]How to make sense of Kotlin coroutines ์ดํด (0) | 2021.07.15 |
[ํ๋ก๊ทธ๋๋ฐ] ์ฃผ์ ์ฐ๊ธฐ ํ (0) | 2021.07.14 |