Development, Traffic Rules.

Jin Han·2022년 12월 7일
0
post-thumbnail

함께 일한다는 것

개인 프로젝트나 프리랜서로서 일하는 등의 경우가 아니라면 개발자들은 다른 사람들과 협업을 하게 된다. 가장 큰 이유는 혼자 감당하기 어려운 일을 나누어 분담하는 것이다. 정해진 일정에 맞추기 위해, 빠르게 완성하기 위해 협업을 하는 것이다.

하지만 그것만이 협업의 이유는 아니다. 다양한 사람들이 모였을 때의 결과는 때론 훨신 강력하게 나타난다. 다양한 시각, 다양한 접근, 다양한 생각, 다양한 자극들이 만드는 효과는 혼자서 일하는 경우엔 얻을 수 없는 것들이다.

혼자서 몇 시간 동안 생각해도 나오지 않는 것들이 함께 얘기하며 몇 분 만에 떠오르기도 한다. 개발자로서의 성장 속도는 협업과 그렇지 않은 환경에서 극명하게 차이나는 부분이기도 하다.

Indentation War

하지만 협업에서 발생하는 문제도 만만치 않다.

코드 컨벤션, 커밋 쪼개는 방법, git rebase/merge, 오픈소스 라이브러리 적용, 아키텍쳐, 신기술 적용, ...

유서 깊은 tab vs 2 space vs 4 space 전쟁은 우리가 얼마나 합의를 이끌어내기 어려운지를 알려주는 사례일 것이다. (게다가 이 사소한 전쟁조차 아직 끝나지 않았고 앞으로도 끝나지 않을 것으로 보인다.)

그럼에도 tab, 2 space, 4 space를 섞어 쓰는 것은 최소한 같은 협업 프로젝트에서는 보기 힘들다. 섞어 쓰면 일어날 일은 상상만 해도 끔찍하니까.

하지만 그 이상의 코드 컨벤션은 험난한 길이다. 그렇다면 더 나아가 아키텍쳐는? 신기술 적용은? 😵‍💫

No Silver Bullet

개개인의 취향이나 스타일, 생각들은 사실 잘못이 없다.

난 라인이 길어져도 줄바꿈을 하지 않는 것이 잘 보이는데?
난 저 아키텍쳐가 익숙하지 않으니 그냥 하던대로 할래.
이 신기술이 얼마나 좋은데 왜 다들 쓰질 않는거야? 나라도 그냥 고고!

개발에 정답이 있다면 모두들 그것을 썼을 것이다. 하지만 그런 것은 존재하지 않는다. 무엇이든 이유가 있고 장점과 단점이 있다.

하지만 정답은 없더라도 올바른 방향은 있다. 적어도 협업에서는.

Traffic Rules

운전을 하면서 아래와 같이 생각하는 다른 운전자를 보게 된다면?

난 신호등이 녹색인 것보다 보라색인 것이 더 잘 보이는데?
새로운 횡단보도 우회전 방법이 익숙치 않으니 그냥 하던대로 할래
난 300km/h로 달릴 수 있는데 왜 다들 60km/h로 달리는 거야? 나라도 그냥 달려!

유치한 비유지만 사실 이만큼 정확한 비유도 별로 없다.

다들 자신만의 생각대로 운전하는 도로가 있다면 지금보다 빠르게 목적지로 갈 수 있을까? 운전을 잘 하는 사람은 그렇게 자신할지도 모르겠다. 하지만 다른 대부분의 사람들은 비효율을 경험하게 되고 목적지에 늦게 도착하고 더 나아가 사고 위험이 무척이나 높아질 것이다.

맘에 들지 않는 코드 컨벤션이라도, 커밋 룰이라도 그걸 지킴으로써 모든 사람들이 혜택을 보게 된다.

새로 나온 슈퍼카가 아무리 빠르고 좋아도 경우에 따라서는 아무 쓸모가 없다. 승객을 태우는 버스 운전사나 화물을 나르는 화물차 운전자에게 슈퍼카를 쓰라고 강요하면 되는 것일까? 버스나 화물차가 300km/h를 달리면 좋은 것일까?

신기술이라고 모든 상황에서 좋은 것은 아니다. 모든 개발자들은 자신만의 상황이 있다. 현재는 스포츠카가 아니라 1톤 트럭이 더 도움이 되는 경우가 많다.

모두의 프로젝트

traffic rule은 개개인은 조금씩 손해를 보거나 양보를 요구받게 되지만 전체 운전자들이 목적지까지 최대한 빠르고 안전하게 도달할 수 있도록 하기 위해 만들어진 것이다.

개발 협업에서도 현재의 상황이 나에게 맞지 않더라도, 답답하더라도 긴 호흡으로, 짧은 발걸음으로 전체 개발자와 프로젝트에 도움이 되는 방향으로 접근하고 양보하고 또 양보 받아야 한다.

개인 프로젝트가 아니기 때문에. 모두의 프로젝트이기 때문에.

profile
iOS 개발자

0개의 댓글