paint-brush
훌륭한 엔지니어링 문화를 위한 궁극적인 가이드~에 의해@zevireinitz
3,170 판독값
3,170 판독값

훌륭한 엔지니어링 문화를 위한 궁극적인 가이드

~에 의해 Zevi Reinitz9m2023/04/17
Read on Terminal Reader
Read this story w/o Javascript

너무 오래; 읽다

현실을 직시하자. 개발자 경험이 화두입니다. 이는 내용이나 정의가 거의 없이 일반적인 용어로 많이 이야기된다는 것을 의미합니다. 이것이 제가 개발자 경험 논의에 더 많은 질감과 정의를 제공하기 위한 이니셔티브인 Dev-X 프로젝트를 시작하도록 영감을 준 이유입니다. 각 "에피소드"에서 저는 업계 리더에게 개발자 경험에 관한 10가지 질문을 던져 이러한 특정 주제에 대한 통찰력과 의견을 수집합니다. 그런 다음 이러한 토론을 게시하고 커뮤니티와 공유합니다. 거의 20개의 인터뷰를 통해 이제는 유용한 방식으로 집계를 시작하고 몇 가지 흥미로운 추세와 반복되는 주제를 발견할 수 있는 충분한 자료가 있습니다.

People Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - 훌륭한 엔지니어링 문화를 위한 궁극적인 가이드
Zevi Reinitz HackerNoon profile picture

현실을 직시하자. 개발자 경험 이 화두입니다. 이는 내용이나 정의가 거의 없이 일반적인 용어로 많이 이야기된다는 것을 의미합니다.


이것이 제가 개발자 경험 논의에 더 많은 질감과 정의를 제공하기 위한 이니셔티브인 Dev-X 프로젝트를 시작하도록 영감을 준 이유입니다. 각 "에피소드"에서 저는 업계 리더에게 개발자 경험에 관한 10가지 질문을 던져 이러한 특정 주제에 대한 통찰력과 의견을 수집합니다. 그런 다음 이러한 토론을 게시하고 커뮤니티와 공유합니다.


거의 20개의 인터뷰를 통해 이제 유용한 방식으로 집계를 시작하고 몇 가지 흥미로운 추세와 반복되는 주제를 발견할 수 있는 충분한 자료가 생겼습니다.

훌륭한 엔지니어링 문화를 만드는 방법

이는 훌륭한 엔지니어링 문화를 조성하기 위한 궁극적인 가이드입니다. DevX Project 인터뷰에서 제가 물었던 질문 중 하나는 "훌륭한 엔지니어링 문화의 핵심 요소는 무엇입니까?"였습니다.


결국에는 회사의 모든 것이 당신이 만든 문화에 의해 좋든 나쁘든 영향을 받게 되므로 이는 중요한 질문입니다. Liran Haimovitch가 말했듯이 "문화는 팀이 예측할 수 없는 상황에서 예측 가능한 방식으로 행동할 수 있도록 하기 때문에 아침식사로 전략을 먹습니다."


그렇다면 문화란 정확히 무엇인가? 좋은 질문. 의도적으로 그 부분은 해석의 여지가 있도록 남겨두었고, 반응도 마찬가지로 다양했습니다. 일부 인터뷰 대상자는 개발자 자신에게 초점을 맞췄습니다. 다른 사람들은 회사와 회사 정책에 중점을 두었습니다. 일부는 기술적이거나 전문적인 조언을 제공했고 다른 일부는 대인관계 및 의사소통 요령을 제공했습니다.


그리고 이것이 무엇보다도 첫 번째이자 아마도 가장 중요한 점일 것입니다. 진정으로 훌륭한 엔지니어링 문화는 여러 항목의 균형을 동시에 유지해야 합니다.


세부 사항은 조직 및 상황에 따라 다를 수 있지만 공통 분모는 3차원 문화 구축 접근 방식이 필요하다는 것입니다.


따라서 DevX 프로젝트 인터뷰에서 수집하고 적용한 훌륭한 엔지니어링 문화 구축에 대한 이 개발자 경험 가이드를 즐기시기 바랍니다.


개발자 자율성

DevX 프로젝트의 여러 기능은 개발자를 위한 자유와 자율성의 문화를 조성하는 것의 중요성을 반영했습니다.


AxiomSeif Lotfy는 다음과 같이 말했습니다. "저는 Dan Pink가 자신의 저서 "Drive - 우리에게 동기를 부여하는 것에 대한 놀라운 진실"에서 말한 내용에 실제로 의존한다고 생각합니다. 그는 자율성, 숙달, 목적을 주요 동기 부여 요소로 소개합니다. 따라서 개발자에게 자신의 기술을 숙달할 수 있는 자율성을 부여하면 개발자도 훌륭한 문화를 만드는 목적을 개발하게 됩니다. 그리고 엔지니어에게 도구를 강요하지 마십시오. 엔지니어가 자신의 도구를 선택하도록 해야 한다고 생각합니다. 그들에게 자율성과 주인의식을 부여해주세요.”


Viktor Farcic은 다음과 같이 덧붙였습니다. “나에게 가장 중요한 것은 결정을 내릴 수 있는 자유입니다. 내 생각엔 많은 회사들이 엔지니어들을 어린아이처럼 대하고 손을 잡고 무엇을 해야 할지 지시하는 것 같다. 이제 길을 건널 수 있으니 멈춰야 합니다. 이제 왼쪽으로 이동합니다. 이제 오른쪽으로 이동합니다. 나에게 이것은 개발자들 사이의 창의성과 학습 능력에 정말 큰 타격을 줄 수 있습니다. 개발자로서 우리 직업의 대부분이 사물을 생각하고 파악하는 것이라고 믿기 때문에 이는 매우 충격적인 일입니다. 코드 작성은 쉽습니다. 무엇을 작성해야 할지 알고 최소한 구문 등에 대한 기본적인 이해가 있다고 가정하면 코드 작성이 프로세스에서 가장 쉬운 부분입니다. 무엇을 작성하고 어떻게 작성하는지 파악하는 것이 복잡한 부분입니다. 그리고 우리가 사람들에게 이 문제를 알아낼 수 있는 충분한 자유를 제공하지 않으면 우리가 원하지 않는 결과를 얻게 될 것입니다. 개발자는 아무런 조치 없이 하라는 대로 정확히 수행한 로봇에 불과했기 때문에 문제는 작동하지 않습니다. 자신의 생각이나 창의성.”

실제 관계 만들기

개발자 자율성의 이점은 기술적 결정에만 국한되지 않습니다. 또한 팀 구성원 간의 더 나은 대인 관계를 조성하는 데 도움이 될 수 있습니다. Seif Lotfy는 진정한 관계 형성의 이점을 강조하며 "매우 전문적인 관계를 넘어서 팀이 자유롭게 움직이고 자기 자신이 되며 서로를 있는 그대로 감사할 수 있는 자유를 주어야 합니다."라고 설명했습니다.


자율성은 사람들이 자신의 진정한 버전이 되도록 하는 것을 의미합니다. 그리고 이런 일이 발생하면 팀과 회사에 긍정적인 결과를 가져오는 경우가 많습니다.


Barak Schoster가 말했듯이 "함께 일하기 즐거운 똑똑한 사람들을 고용"할 수 있다면 도움이 됩니다.

적극적인 소유권 및 책임

개발자에게 자율성을 부여하는 것은 개발자가 자신의 작업에 대해 적극적으로 주인의식을 갖고 책임을 져야 한다는 요구와 딱 들어맞습니다.


Liran Haimovitch에 따르면 소유권과 책임은 모든 위대한 문화에서 가장 중요한 두 가지 요소입니다.


Shawn "Swyx" Wang은 이러한 소유권이 "사전적 소유권"이어야 한다고 강조했습니다. "Amazon의 16가지 리더십 원칙 목록 항목 #9 - "행동에 대한 편견". 저는 이것이 이 맥락에서 중요하다고 생각합니다. 왜냐하면 당신이 적극적으로 소유권을 갖지 않으면 많은 일이 완료되지 않기 때문입니다. 따라서 이는 건전한 엔지니어링 문화를 위해 정말 중요합니다.”

“왜?”에 대해 의사소통하고 설명합니다.

Seif Lotfy는 개발자가 소통하고 그 이유를 묻는 것이 중요하다고 말했습니다. “다른 사람의 접근 방식과 결정에 반영된 생각을 이해해야 합니다. 그렇게 하면 동의하지 않더라도 모든 것을 고려하고 앞으로 가능한 최선의 길을 찾으려고 노력할 수 있습니다.


Amir Shevat는 이것이 설명을 요청하는 사람에게 의존해서는 안 된다고 덧붙였습니다. "이유"를 먼저 제시하는 문화를 구축해야 합니다.


“당신의 지식을 공유하고 왜 y가 아닌 x를 선택했는지 설명하세요. 그렇게 하면 사람들이 당신에게서 배우고 일상생활에서도 당신의 모범 사례와 독특한 사고 방식을 채택할 수 있습니다.”

투명도

유사하고 덜 중요한 가치는 투명성입니다.


Amir Shevat는 다음과 같이 설명했습니다. “투명성은 매우 중요합니다. 이는 엔지니어들이 더 큰 그림, 즉 우리가 어디로 가고 있는지, 왜 우리가 하고 있는 일을 하는지 볼 수 있는 환경을 조성하는 것을 의미합니다. 개발자를 위한 이러한 유형의 환경을 조성하면 개발자가 더 나은 코드를 작성할 수 있습니다.”

진실성

의사소통과 투명성이 적절하게 유지되면 '정직성'이라는 또 다른 핵심 문화 요소도 얻을 수 있습니다. Amir가 말했듯이: “뭔가 옳지 않다고 생각한다면, 말하십시오. 프로세스는 더 나은 방향으로 변화하고 발전할 수 있고 발전해야 합니다.”


Wilco의 Shem Magnezi도 비슷한 관점을 제시했습니다. “핵심은 시스템, 프로세스, 제품, 코드 스타일, 모니터링 도구 등에서 개선할 수 있는 부분에 대해 항상 생각하는 것입니다. 시스템 구축에는 셀 수 없이 많은 측면이 있으며 결코 완벽할 수는 없습니다. 하지만 우리는 항상 개선할 수 있는 방법을 찾아야 합니다.” 이는 훌륭한 엔지니어링 문화에서 의사소통, 투명성 및 무결성이 드러나는 방식입니다.

비난 제로

Swyx와 Jason Bosco 는 비난 없는 피드백과 사후 문화가 중요하다고 제안했습니다.


Swyx는 다음과 같이 말했습니다. “물건을 배송하고 생산을 유지 관리할 때 항상 문제가 발생할 수 있다는 점을 기억하십시오. 따라서 비난 없는 사후 문화를 갖는 것도 중요합니다.”


이는 팀의 모든 구성원이 피드백을 받는 데 열려 있어야 한다고 덧붙인 Amir Shevat도 이에 동의했습니다. “일반적으로 서로의 피드백에 열려 있는 엔지니어는 업무를 훨씬 더 잘 수행합니다.


그리고 비난 없는 문화를 어떻게 달성할 수 있습니까? Seif Lotfy에 따르면 기본 가정을 바탕으로 작업하는 것부터 시작됩니다. “모든 사람의 의도가 좋다는 기본 가정을 개발하는 것이 중요합니다. 이는 서로 다른 시간대와 일정에 분산되어 있는 팀에게 특히 중요합니다.”


모든 사람이 다른 사람은 모두 좋은 뜻이라고 생각하고 각 팀원이 비난 없이 피드백에 열려 있다면 팀은 일을 효과적으로 수행할 수 있는 좋은 위치에 있을 것입니다.


Earthly.devAdam Gordon Bell은 다음과 같이 말했습니다. “훌륭한 문화는 신뢰와 이해를 기반으로 합니다. 두 가지 모두 공유된 경험을 바탕으로 시간이 지나면서 구축됩니다.”

협동

당연히 엔지니어링 문화의 핵심 요소인 협업은 여러 인터뷰에서 반복되는 메시지였습니다.


WixHila Fish는 "최고의 솔루션을 찾고 최종 목표를 달성하려면 다른 사람들과 협력해야 합니다."라고 말했습니다.


그리고 Amir Shevat는 다음과 같이 설명했습니다. “저는 협업이 덜한 팀이 "놀라운" 개별 엔지니어들로 가득 차 있을 때에도 협업이 잘되는 사람들로 구성된 팀이 항상 덜 협업하는 팀보다 뛰어난 성과를 낼 것이라고 생각합니다. 저는 개인적으로 그다지 협력적이지 않은 엔지니어링 팀의 일원이었습니다. 그들은 훌륭하고 놀라운 엔지니어를 보유하고 있었지만 자신이 하고 있는 일을 실제로 공유하지는 않았습니다. 사람들이 협업하고, 공유하고, 피드백을 제공하고, 각 사람이 작업 중인 작업 간의 인터페이스에 대해 이야기하기 시작하면 훨씬 더 유익합니다.”


공예와 제품에 대한 열정


NorhflankTom Snelling은 다음과 같이 말했습니다. “팀이 가질 수 있는 가장 좋은 것은 그들이 만들고 있는 제품에 대한 진정한 열정이라고 생각합니다. 내가 투자한 프로젝트와 투자하지 않은 프로젝트에 참여하면서 사기(결과)의 차이는 놀랍습니다. 엔지니어들이 자신이 하고 있는 일에 진심으로 관심을 가질 때 문화는 10배 향상된다고 생각합니다. 당신의 프로젝트에 참여하고 싶어하는 똑똑한 사람들을 고용하세요.”

전문 직업 의식

Amir Shevat는 훌륭한 엔지니어링 문화를 조성하는 데 있어서 전문성의 중요성을 강조했습니다. “항상 회사의 요구 사항을 생각하십시오. 이는 업무의 모든 측면에 적용되어야 합니다. 기술적인 태도는 훌륭하고 꼭 필요한 것이지만, 비즈니스 사고방식을 훈련하는 것은 가장 기술적인 솔루션만이 아니라 목표 달성에 도움이 되는 솔루션을 선호하는 문화를 조성하는 데 실제로 도움이 됩니다. 회사를 위한 최선의 결과입니다.”


RoundforestGil Tayar는 다음과 같이 동의했습니다. “제가 보기에 훌륭한 엔지니어링 문화의 핵심 요소는 좋은 사람들입니다. 자존심이 많지 않습니다. 전문성과 공예에 대한 자부심. 이러한 요소는 창의적인 환경을 구축하며 이러한 요소 없이는 긍정적이고 생산적인 문화를 조성하기가 어렵습니다.”

훌륭한 문서 문화 조성

보다 기술적인 관점에서 Swyx는 팀이 문서화에 중점을 둘 것을 조언했습니다. “좋은 문서화 또는 디자인 문서 문화도 매우 중요합니다. 즉, 무언가를 구현하기 전에 분명히 그것을 디자인하고 제안을 통해 생각하고 모든 사람과 높은 수준의 사항에 동의해야 합니다. 그러나 좋은 문화는 여기서 한 걸음 더 나아갑니다. 이는 모든 사람이 문서를 받으면 실제로 문서를 읽는다는 것을 의미합니다. 그리고 그것은 매우 드뭅니다. 따라서 좋은 문서 문화는 좋은 글쓰기와 좋은 독서를 의미하므로 디자인 문제와 기대치의 불일치를 조만간 파악하게 됩니다.”

전달 케이던스

Amir Shevat는 건전한 전달 흐름의 가치를 다음과 같이 강조했습니다. "팀이 지속적으로 서비스를 제공할 때 정기적으로 작업에서 행복과 만족이라는 혜택을 얻을 수 있기 때문에 건전한 전달 흐름을 유지하는 것은 엔지니어링 문화에도 매우 중요합니다."


Barak Shoeter도 마찬가지로 팀에게 "반복 속도 최적화"를 권장했습니다.


Jason Bosco는 다음과 같이 말했습니다. "저에게 중요한 요소 중 일부는 엔지니어가 코드를 작성하고 사용자가 이를 사용하는 데 걸리는 시간을 줄이는 것과 간편한 롤백입니다..."

겸손

이것이 여러 인터뷰에서 어떤 형태로든 등장했지만 CircutIn Plain EnglishSunil Sandhu는 다음과 같이 잘 표현했습니다. “겸손은 엔지니어링뿐만 아니라 일반적인 업무 문화에서도 중요합니다. 팀원들은 기꺼이 다른 사람들을 도울 준비가 되어 있어야 하며, 누구도 질문을 하기에는 너무 어리석다고 생각하지 않는 환경을 조성해야 합니다.”


여기에 제가 드릴 수 있는 진부한 답변이 많이 있다고 생각하며, 어느 정도는 이에 대해 더 잘 답변할 수 있는 경험 많은 개발자가 더 많다고 생각합니다. 그래서 제가 마지막으로 말씀드리고 싶은 것은 팀이 선교 지향적이며 그 팀이 모두 같은 찬송가를 부를 때 놀라운 일이 일어날 수 있다는 것입니다.


Gil Tayar는 다음과 같이 말했습니다. “제가 보기에 훌륭한 엔지니어링 문화의 핵심 요소는 좋은 사람들입니다. 자존심이 많지 않습니다. 전문성과 공예에 대한 자부심이요.”

마무리 생각

분명히 좋은 엔지니어는 기술적 능력에 대한 일정한 기준을 가지고 있어야 합니다. 그러나 팀을 구성하고 관리할 때 서로를 높은 기준으로 유지하고 호기심을 유지하며 긍정적인 자세를 유지하고 지속적으로 개선하기 위해 노력하는 것은 이러한 추가 요소입니다.

이것이 바로 훌륭한 엔지니어링 문화의 핵심입니다.


여기 보이는 것과 같나요? 추천을 받고 싶으신가요? DevX 프로젝트 에서 다른 훌륭한 기능을 확인하고 자신의 개발자 경험 지혜를 공유하려면 신청하세요.


여기에도 게시되었습니다.