가끔 소프트웨어는 아무것도 포기하지 않으려 한다.

누구나 쓸 수 있고, 무엇이든 만들 수 있고, 언제든 바꿀 수 있고, 어떤 요구에도 대응할 수 있는 제품.

말만 들으면 좋은 제품 같다.

실제로 어느 정도는 좋은 방향일 수 있다. 사용자가 언제 어디서 무엇을 원할지 모르니, 가능한 한 유연하게 만들어두고 싶은 마음은 자연스럽다. 시장은 바뀌고, 요구사항도 바뀌고, 처음부터 너무 좁게 정하면 기회를 놓칠 수도 있다.

그런데 요즘은 그런 제품을 볼 때 조금 불안해진다.

아무것도 포기하지 않는다는 건, 때로 아무것도 선택하지 않았다는 뜻이기도 하니까.

뭔가를 만들고 있다는 감각은 꽤 강하다.

가만히 불안해하는 것보다 훨씬 낫고, 아무것도 하지 않는 것보다 나은 선택처럼 느껴진다. 문제는 그 감각이 가끔 진짜 질문을 가린다는 데 있다.

  • 누가 이걸 쓰는지

  • 정말 풀 만한 문제인지

  • 계속 운영할 가치가 있는지

이런 질문들은 첫 화면을 만드는 일보다 훨씬 불편하다.

답이 없을 수도 있고, 답을 찾다 보면 지금 만들고 있는 것의 쓸모없음을 마주해야 할 수도 있다. 열어두고 싶었던 가능성을 닫아야 할 수도 있고, 좋아 보이는 아이디어를 포기해야 할 수도 있다.

그래서 종종 더 쉬운 쪽으로 도망간다.

  • 질문 대신 기능 추가

  • 일단 구조부터 다듬기

  • 끝까지 가는 대신 새로 시작

그렇게 하면 당장은 덜 불안하다. 분명히 무언가를 하고 있기 때문이다. 하지만 나중에 돌아보면, 문제를 푼 게 아니라 문제를 피해 더 만들고 있었던 것 같을 때가 있다.

요즘 이런 현상이 많이 보인다.

AI로 인해서 이런 감각은 더 강해지고, 또 쉽게 보는 것 같다.

모든 제품에는 트레이드오프가 있다.

쉬운 제품은 자유도를 일부 포기한다. 자유로운 제품은 사용 난이도와 운영 비용을 감당한다.

많은 사용자를 품으려는 제품은 깊이를 잃기 쉽고, 특정 사용자를 깊게 돕는 제품은 모두를 만족시키기 어렵다.

트레이드오프가 없는 것처럼 보이는 제품은 보통 둘 중 하나다.

아직 선택하지 않았거나, 누군가가 그 선택 회피의 비용을 대신 내고 있거나.

그 비용은 대개 코드, 운영, QA, 예외 처리에 쌓인다. 나중에 누군가가 설명하고 고쳐야 할 부채로 남는다.

겉으로는 모든 가능성을 열어둔 것처럼 보이지만, 실제로는 결정을 미룬 비용을 누군가 조용히 지불하고 있다.

제품은 논리적(코드)으로 그리고 물리적(시간)으로 모든 것을 다 충족할 수는 없다. 모든 방향으로 열려 있는 제품은 결국 어떤 방향으로도 깊게 가지 못한다. 무엇이든 될 수 있는 제품은, 아무것도 아닐 위험을 함께 가진다.

나는 방향성에 대해서 생각한다.

그것은 거창한 철학이 아니다.

“우리는 세상을 바꾼다” 같은 선언도 아니다.

구체적인 선택이다.

  • 나는 이 문제를 푼다

  • 나는 이 문제는 안푼다

  • 나는 이 자유도를 허락하지 않는다

  • 나는 이 복잡도를 감당하지 않는다

그리고 틀리면 다시 질문한다.

그런 선택들이 쌓여야 제품의 방향이 된다.

이제는 만들고 있다는 감각만으로 안심하고 싶지는 않다.

그 감각이 진짜 문제를 풀고 있는지, 아니면 잠깐 불안을 덮어주고 있는지 확인하고 싶다.

그냥 계속 마음속에 떠오르는 말이라 글로 남기고 싶었다.

포스트 정보

작성자
baealex

창작을 좋아하는 개발자

최초 발행
수정일
저자 홈페이지
https://baejino.com