팀 프로젝트로 아주 간단한 웹 사이트를 구현하며 느낀 경험을 담습니다.
팀으로 프로그래밍을 한다는 것, 다시 말해 협업을 한다는 것
작게는 프론트와 백 개발자만으로 혹은 기획, 디자인, 개발자, DB등 혼자가 아닌, 여러 사람과 협업을 한다는 건 어쩌면 혼자 작업하는 것보다 준비할 것이 많다.
협업으로 프로그래밍일 시작하기 전에 필요한 준비과정 중 느낀점을 담았습니다.
당연히 무엇을 만들지가 먼저 필요하다.
이는 구체적이면 구체적일 수록 좋다.
2명 이상의 개발자가 협업을 한다면, 같은 대화가 오가더라도 생각하는 내용은 다를 수 있다.
이 단계에서 와이어 프레임과 목업을 같이 구상하게 되며, 어떤 기능을 구현할지 디자인은 어떤 식으로 나오게 될지 생각보다 오랜 시간을 들여서 구상한다.
같은 내용을 듣더라고 와이어 프레임 / 목업으로 실제 화면을 보며 구상하다보면 더 좋은 아이디어가 나오기도 하고,
각각의 생각이 다른 부분은 확인할 수 있기 때문에 실제 코드로 구현하는 부분이 아닐지라도 충분한 시간을 들여서 구체적으로 작성하면 좋다.
아마 프론트/백 개발자가 가장 많은 대화를 하는 주제가 아닐까 싶다.
API 명세 또한 구체적일 수록 좋다.
또한 API 명세는 프론트/백 각 개발자에게 약속과 같기 때문에 해당 단계에서 구체적으로 작성하며, 실제 구현 단계에서 명세를 보고 코드를 작성한다.
그렇지 않다면 프론트 개발자는 백 개발자에게 계속해서 질문할 수 밖에 없다...
프론트를 희망하기 때문에 중요하지 않다고 생각해서 크게 생각하지 않았던 내용이다.
하지만 API 명세와 마찬가지로 프론트 개발자가 확인하며 코드를 구현하는게 더 좋다고 느낀다.
기능 구현에 대해 구체적이면 구체적일 수록 좋은 이유이기도 하다.
구체적인 기능을 세부적으로 나누면 역할을 분담하기도 쉬워지며 이는, 팀원 각각의 코드들을 합쳤을 때 충돌을 방지해주기도 한다.
협업을 잘하기 위해 협업을 잘해야한다.(??)
어쩌면 기능 구현을 잘 하는 것보다 더 중요하다 생각되지만 절때 어려운것은 없다.
정말 기본적인 것들만 지켜줘도 원활한 소통이 되고, 협업에 큰 도움이 된다.
해당 내용은 따로 글을 작성할 만큼 많은 내용이 있지만 내가 생각하는 가장 중요한 부분은 "내 시간도 소중하듯 상대방의 시간도 소중하다"는 것이다.
그 외 정말 많은 내용이 있지만 위 내용만 알고 있어도 충분히 도움이 된다고 느꼈다.