본문 바로가기

AI Feed
Tech & Product/AI, 더 쉽게

개발자는 문화도 개발한다는 게 사실인가요?

여러분의 회사에는 어떤 분들이 근무하고 계신가요? TEN에는 ‘AI 인프라’에 집중한 기업인 만큼, AI 인프라를 생각하는 개발자들이 많이 모여 있습니다. 그 안에서 기획자 겸 마케터로 일하고 있는 에디터 SA는 개발자분들의 업무수행 방식과 문화가 때때로 신기하게 느껴지기도 하는데요. 최근에는 이런 이야기를 들었습니다.

🧑‍💻 개발자들이 많아졌고, 각자 맡은 분야도 다른데, 올해부터는 개발 문화를 새롭게 정리해서 정착시키면 좋지 않을까요?

‘개발 문화’라고 따로 정리할 수 있는 방식이 있다는 것 자체가 에디터 SA에게는 아주 신기했는데요.😲 보통 기업 문화, 조직 문화를 이야기하지만 그건 어떤 방식이 있다기보다는 다 같이 어떤 규칙을 합의하고 지키면서 만들어가잖아요. 그래서 어떤 방법, 방식을 채택한다고 보기는 어려운데요. 개발 문화는 개발 프로세스와 산출물의 효율성을 생각해서인지 여러 가지 방법론이 존재하는 것 같았습니다.🤔

그래서 문득, 궁금해졌습니다. 그럼, 개발 문화는 어떤 방식으로 꾸려나가면 좋은 걸까요? 경계해야 할 태도는 어떤 게 있을까요?

 

 

 

[ 좋은 개발 문화란... 먼저 이야기를 나눠 볼까요? ]

어, 너두? 야, NADO.... 🖐️

우선 ‘좋다’, ‘이롭다’라고 할 수 있는 개발 문화부터 알아봐야겠습니다. 명확하게 어떤 것이 좋은 개발 문화의 특성이라고 할 수 있다고 정의된 내용은 없는데요. 다양한 IT기업, 글로벌 테크 기업들이 개발 문화를 개선하는 데 있어 중점을 두고 있는 키워드가 있더랍니다. 바로 ‘소통(communication)’이었어요.🤓 

무엇이든 소통하고 나누며, 잘못을 바로잡고 더 나은 방향으로 나아가도록 하자는 취지인데요. 예를 들어 개발 프로세스에 있어 코드 리뷰를 꼭 포함한다거나, 소통하는 시간을 따로 마련하는 거예요. 또는 나중에라도 참고할 수 있는 자료들을 꼭 남겨 놓는 방식도 도움이 됩니다. 내부에서 어떤 개발 프로젝트를 하든 가이드라인을 따를 수 있도록, 로드맵, 버전 관리, TF로 진행한 긴급 프로젝트의 내용을 문서화하는 거죠.

이런 ‘문서화’는 대내외 모두 신경 쓰면 좋은 부분인 것이, 우리가 알고 있는 대다수의 플랫폼 운영 기업, IT 기업 중에서도 좋은 개발 문화의 일환으로 기술 블로그를 따로 운영하고 있기도 하잖아요. 내부에서도, 같은 직업을 가진 타사의 개발자들도 참고하고 의견을 줄 수 있도록 창구도 열어 두고요.🙂 아! TEN의 AI 피드에서도 참고가 될 수 있는 기술 블로그 콘텐츠들을 공개할 예정이랍니다.😊

 

 

 

[ 경계해야 할 개발 문화, 그리고 사일로 효과(Silo Effect) ]

그럼, 경계해야 할 개발 문화 요소는 어떤 게 있을까요? 지양해야 할 개발 문화에 대해서 짚어보기 위해서는 ‘개발’이 궁극적으로 하고자 하는 바가 무엇인가를 생각해 볼 필요가 있겠습니다. 그 ‘궁극적으로 하려는 바’를 방해하는 요소가 곧 개발 문화에서 지양해야 하는 것이 될 테니까요. 보통 우리는 ‘개발’을 통해서 우리가 일상에서 직면한 문제나 불편을 해소하잖아요. 그럼 이를 방해하는, 개발 과정에서 좋지 않은 문화들을 짚어볼 수 있겠네요. 🤓 

 

저, 저기... 제 코드가 문제가 있다는 건가요? (이래서 리뷰하기 싫었는데)

가장 많이 언급되고 있는 좋지 않은 개발 문화는, ‘소통 부족’입니다.🤔 혼자 개발하는 것을 즐기고, 자신의 개발 내용에 대한 비판을 꺼리는 문화가 정착되어 있으면 더 나은 결과물을 낼 수 없다는 건데요. 함께 협업하는 파트너에게 내용을 정확하게 공유하지 않고 얼버무리거나, 개발 기록을 남기는 문화가 정착되어 있지 않은 것도 문제가 됩니다. 개발은 아주 중요한 요소이지만, 어쨌든 문제나 불편을 해소하기 위한 프로젝트에 속해 있는데요. ‘해결’이라는 공통의 과제를 위해 여러 직무의 사람들이 힘을 합할 수 있도록, 개발에서도 노력해야 한다는 거지요. 

소통이 부족한 개발 문화에 관해 이야기하자면 ‘사일로 효과’를 이야기하지 않을 수 없겠습니다. 사일로 효과(사일로 이펙트, Silo effect)는 ‘부서 이기주의’라고도 표현하는데요. 기업 등 조직이 공동의 목표나 이익보다는 부서만의 이익을 추구하여 다른 부서와의 정보 공유 및 소통, 협력을 외면하는 현상을 말합니다. 원래 ‘성과주의’가 너무 심해지면 나타나는 현상이라고 하는데요. 

잘못된 개발 문화에서는 ‘성과’에 집중해서라기보다, 각자 가지고 있는 개발 과제에 너무 집중해 있거나, 개발 내용을 공유하고 피드백을 받는 것에 대한 두려움으로 소통을 피하다 보니 문제가 생긴다고 보는 것이 맞을 것 같아요. 사일로 이펙트의 정확한 정의와는 조금 다르지만, 개발 문화에서의 부서 또는 개발자 개개인이 고립되는 현상을 사일로 이펙트로 부르는 것이 무리한 의미 확장은 아닌 것 같아요. 이렇게 소통이 부족한 개발 문화를 사일로 이펙트라는 명칭을 빌려서 문제로 규정하고, 해결하기 위해 소통을 확장해 나가는 것도 개발 문화 개선에 도움이 될 테니까요.

 

 

 

[ 일단 개발은 끝냈으니 대충 끝내고 배포합시다! ]

아, 이거 하나 바꾼 건데 검증 또 하고 QA도 해? 귀찮은데...

AI 피드에서는 AI 이야기를 자주 나누다 보니 그만큼 ‘데이터’ 이야기도 자주 하게 되는데요. AI 모델이 학습하는 데이터도 있지만, 모델을 개발하고, 학습한 모델을 서비스화하는 과정 각각에서 남는 개발 데이터도 있습니다. 이 개발 데이터를 제대로 검증해 보지 않고 개발을 마무리하는 것이 가능할까요? 🤔 개발된 코드가 제대로 작동하는지, 효율적으로 기능하는지 테스트하는 것은 아주 당연한 일이라, 개발자라면 “🧑‍💻그걸 안 하고 배포를 할 수가 있어?”라고 의아해하실 법합니다. 하지만 의외로, 아주 가까운 주변에서 그런 일들이 일어나고 있을 수 있습니다. 때로는 검증과 테스트를 거치는 단계가 개발자에게 해당하는 업무가 아니라고 여기는 경우도 매우 많다고 하네요.

예를 들면, 개발 후 QA를 1차로 마친 후에 추가 개발 작업이 진행된 상황이 있다고 가정해 볼게요. 추가 개발 작업이 진행되기 전에 전체 개발에 대한 테스트를 마쳤으니, 약간의 추가 개발이 있던 부분은 그냥 넘어가도 될까요? 당연히 “그럼 안 되지.”라는 답이 먼저 튀어나오실 거예요. 하지만 실제로 개발하다 보면, 아주 사소한 변화에까지 일일이 검증하는 것이 불필요한 프로세스라고 느껴질 수도 있지요. 그래서 프로젝트에 관련된 담당자 모두가 검증을 패스하지 않더라도, 개발 단계에서의 검증을 패스하는 경우도 종종 볼 수 있습니다. 이런 현상이 굳어지지 않도록 개발 문화 차원 또는 프로세스 구축 단계에서부터 개발 산출물을 검증하고 개발 현황에 대해 점검할 수 있도록 하는 것이 중요합니다.

 

 

 

[ 제가 개발했고 다 아는데, 굳이 문서로 남겨야 할까요? ]

2024년...1월...NN일...날씨 맑음... 오늘은 개발을 했다......

개선해야 할 개발 문화에 대해 알아보면서, 어려움을 토로하는 이야기들을 자주 접할 수 있었던 항목이 있습니다. 바로 ‘기록’이에요. 어려움을 느끼는 이유도 다양했는데요. 코드에 익숙하다 보니, 그것을 장문의 글이나 여러 항목으로 다시 정리하는 것에 부담을 느끼는 경우도 보았고요. 말로 직접 설명하는 것이 더 빠르고, 상황에 맞게 인수인계할 수 있다고 생각해서 문서화를 선호하지 않는 경우도 있었습니다.

하지만, 개발에서는 언제 어떤 일이 생길지 모른다는 점이 매력이자, 어려움인데요. 그에 대한 대응책을 마련할 때 참고할 자료가 있다면, 어떤 어려움도 잘 극복할 수 있지 않을까요? 동료나 후임자를 위해 코드에 주석을 남기거나, 일련의 문서에 개발 작업을 정리해 두면 다른 개발자가 프로젝트를 이어받았을 때 발생할 수 있는 오류를 방지하는 등 다양한 측면에서 안정성과 효율을 동시에 챙길 수 있습니다. 물론, 당연히 알고 있는 이야기입니다. 바쁘다는 이유로 문서화에 소홀해지게 되는 점이 개발 문화에 측면에서 문제가 되는 것이겠지요.

 

 

 

좋은 조직 문화, 좋은 기업 문화에 대한 가이드를 살펴보면 명확한 내용보다는 다소 일상적인 것, 태도에 관한 것들이 많았는데요. 개발 문화에서는 더 나은 문화를 만들어가기 위한 행동과 프로세스를 명확하게 제안하고 있다는 점이 참 흥미로웠습니다.😎 개발자분께는 다소 당연하게 여겨질 수 있는 이야기일 수도 있었겠지만, 당연한 만큼 우리에게 잘 도입되어 있는지 생각해 보면, 확답하기 어려운 것이 현실이지요.

효율적이고 안정적인, 그리고 발전 가능성까지 고려한 개발 문화는 당연히 AI를 개발하는 과정에도 필요할 거예요.😊 AI 피드에 놀러 오시는 많은 개발자분들의 개발 문화는 어떤가요? 함께하시는 개발자, 기획자분들과 개발 문화에 관해 이야기해 보시면서, 미처 챙기지 못하고 있었던 부분들을 확인해 보시는 것도 의미 있는 결과를 얻을 수 있을 것 같은데요. 우리 모두 AI로 세상을 더 이롭게 만들기 위한 가치를 생산하기 위해, 새해를 맞아 개발 문화부터 점검해 보면 어떨까요?😉