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

한빛미디어

독자리뷰

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

hji7***

|

2025-04-25

플랫폼 엔지니어링

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

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

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

 

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

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

​

책의 서두에는

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

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

본문 202

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

​

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

​

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

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

1975년 존 갈

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

​

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

​

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

​

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

플랫폼이 신뢰받는가?

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

플랫폼이 사랑받는가?

​

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

​

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

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

​

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

​

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

닫기

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