메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

플랫폼 엔지니어링 결국은 소프트웨어 개발에 대한 이야기

hji7***

|

2025-04-25

플랫폼 엔지니어링

데브옵스의 한계를 넘어, 플랫폼 엔지니어링으로 미래를 설계하라

  • 저자 : 이언 놀런드 , 카미유 푸르니에
  • 번역 : 류광 , 307번역랩
  • 출간 : 2025-03-31

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

플랫폼 팀에 대한 이야기를 다룬 책입니다. 저자들은 꽤 규모가 있는 플랫폼 조직에서 일한 경험이 있는 분들인데요. 그 경험을 바탕으로 플랫폼 조직을 구축하고, 키우고, 플랫폼 조직이 어떤 결과를 만들어야 하는지, 플랫폼 조직에 대한 모든 걸 설명하고 있습니다.

그래서, 책을 읽다 보면 책의 두께에 비해 내용이 상당히 많다는 걸 느끼게 됩니다. 심지어 저자들의 경험, 조언이나 내용 정리가 있는 박스에는 활자가 더 작아지더군요. 꽤 많은 시간을 투자해서 읽었던 것 같네요.

책의 서두에는

플랫폼을 설계하고 운영하는 리더가 대상 독자라고 쓰여있더군요. 그런데 플랫폼 설계를 하고 운영하는 사람은 그리 많지 않습니다. 저자들은 책으로 돈 벌 생각은 없는 사람들이 아닐까 싶었습니다. 그리고 책을 읽어가면서 그 판단이 정말 맞다는 생각을 하게 되었는데요. 사실 이 책은 플랫폼을 설계하고 운영하는 리더뿐만 아니라 스스로 소프트웨어 개발자라고 생각하는 사람이라면 읽어보는 게 좋을 것 같은데 저자들이 나서서 독자 층을 줄이는 말을 해버렸으니까 말이죠.

우리의 경험상 이는 보통 잘 작동하지 않는다

본문 202

"프로젝트 관리자를 너무 일찍 투입하지 말라"는 소제목을 가진 섹션에서 나오는 말인데요. 프로젝트 관리자가 일정을 관리하면서 하는 기대가 잘 이루어지지 않을 거라는 의미입니다. 프로젝트 관리자들은 간트 차트 같은 걸 열심히 그리면서 그 일정대로 일이 진행될 거라 기대합니다. 하지만 그런 일은 벌어지지 않거든요. 그 이유는 소프트웨어 개발이라는 게 어떤 일정에 얽매일 만큼 단순한 작업이 아니기 때문입니다.

이런 조언은 사실 플랫폼에 국한되는 이야기가 아닙니다. 소프트웨어 개발의 전반에서 귀담아들어야 할 이야기거든요. 게다가 다른 개발팀을 지원하는 플랫폼 팀, 일정을 가장 많이 따질 것 같은 팀에서 오랜 경험을 가진 리더들이 이런 말을 한다는 건, 플랫폼 팀 리더들만 읽을 책이 아니라는 반증인 셈입니다.

게다가 50년 전 '존 갈'이라는 사람이 했다는 말은 이 부분을 더 확고하게 이해하게 해줍니다.

잘 작동하는 복잡한 시스템은 모두 잘 작동하던 단순한 시스템을 진화시킨 것이다.

1975년 존 갈

플랫폼과 같이 왠지 대규모 프로젝트인 것 같은 작업은 시작부터 거대한 구조로 세세하게 설계되어서 시작했을 것으로 여겨지는데요. 실상은 그렇지 않다는 말인 것입니다. 실상은 최소단위로 실행 가능한 소프트웨어에서 시작해서 점차 그 기능과 영향력을 성장시켜서 결국 대규모 시스템으로 진화시켜가야 한다는 것이죠.

소프트웨어 개발은 공산품을 만들어내는 것 같은 개념보다는 정원을 가꾸는 것과 같은 개념이 더 잘 들어맞습니다. 작은 묘목을 좋은 땅에 심어 두고 성장시켜나가는 일이 정원사의 일이거든요. 나무가 자라서 팔수 있는 시기가 된다는 건, 일정을 잡아서 될 일이 아닙니다. 나무가 팔만큼 자라야 팔 수 있는 것이죠. 그러니 떡잎부터 '잘 작동하는 시스템'으로 만들어서 진화시켜나가고 일정이 아니라 품질을 더 신경 써야 하는 것이죠.

그럼 어떤 품질을 가진 소프트웨어로 성장시켜야 하는 것일까요? 이는 책의 마지막 파트에서 다룬 '플랫폼 성공 정의'부분에서 힌트를 얻을 수 있습니다. 저자들은 교과서적인 성과 측정으로 플랫폼의 성공을 정의하는 것보다 다음 네 가지 항목으로 플랫폼의 성공을 정의하는 게 맞다고 봤습니다.

플랫폼이 정렬되어 있는가?

플랫폼이 신뢰받는가?

플랫폼이 복잡성을 관리하는가?

플랫폼이 사랑받는가?

이는 플랫폼의 성공을 정의하는 것뿐만 아니라 소프트웨어의 품질이라고 바꿔 말해도 맞는 부분이라고 생각되더군요. 소프트웨어는 결국 소프트웨어를 사용하는 사람의 필요를 충족시켜야 하기 때문에 '정렬' 즉 '필요'라는 기준에 의해 나열되어야 하고, 신뢰성이 있으며, 유지 보수하기 좋게 복잡성도 관리가 되어야 하거든요.

오랜 시간 개발자로 일해오면서,

상당히 많이 들었던 말은 '모듈화', '컴포넌트화' 같은 말이었습니다. 뭔가 표준적인 것을 만들어서 이걸 끼워 맞추게 작업하면 소프트웨어 개발이 점점 더 빨라질 거라는 기대에서 나오는 말이었죠. 하지만 이런 과정을 제대로 해내고 성공하는 회사는 그리 많이 보지 못했습니다. 그 이유는 나무를 성장시키는 방식으로 소프트웨어를 개발하지 않고, 공장에서 제품을 찍어내는 것과 같은 방식으로 소프트웨어 개발을 바라보았기 때문이라고 생각합니다.

특히 플랫폼을 만드는 건, 왠지 나무를 키우는 것보다는 제품을 조립하는 개념으로 작업해야 할 것 같은 분야로 보이는데요. 이 책을 읽으면서, 플랫폼 분야도 그게 아니라는걸, 새삼 이해하게 되었습니다.

플랫폼 조직의 리더가 아니더라도, 많은 개발자들이 이 책을 읽고, 소프트웨어 개발에 대해서 생각해 보지 못했던 접근 방법을 깨닫는 기회가 되었으면 좋겠습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?