개발자에게 좋은 환경이란

JS·2023년 1월 1일
0

Brain Setup

목록 보기
5/18
post-thumbnail

개발자에게 좋은 환경이란

모든 직업은 적성이 있으며 그 중 개발자는 평생 공부하는 직업이라고들 합니다. 그렇다면 그러한 개발자에게 좋은 환경이란 어떤 것일까?

구현 능력으로서 평가받는 환경

개발자는 결국 코드를 작성하여 원하는 결과물을 구현할 줄 아는 사람이어야 한다. 어떤 작업물을 만들 수 있는 능력이 있어도, 그것은 결국 구현까지 완료되어야 결과물이라고 말할 수 있을것이다. 회의·문서작성·영업 모두 중요하지만, 결국 개발자라는 직업은 본질로 돌아가면 코드를 작성하여 구현하는 직업이다. 때문에 사내 정치가 코드 작성능력 위에 올라갈 경우 그 조직에 충성할 이유는 더더욱 없을 것이다

피드백 가능한 주변인들의 존재

많은 사람들이 코딩은 글쓰기와 비슷하다는 말을 한다. 글을 쓸 때 구조적으로, 절차 지향적으로, 쓸데없는 말을 쳐내는 작업이 필요하듯 코딩도 마찬가지다

코딩을 잘 하는 방법은 당연히 일단 많이 써보는 것이고, 쓴 글을 자신도 복기하고 주변인들에게 보여주며 의견을 나누는 작업이 필연적이다. 완벽한 인간이 존재할 수 없지만 완벽에 가까운 인간은 존재할 수 있듯, 글쓰기도 마찬가지로 완벽한 글은 없지만 완벽함에 가까운 글을 향하는 길은 존재한다

주변인들과 글을 돌려보고, 다른 관점에서 작업물을 살펴보면 새로운 관점으로 살펴볼 수 있고 발전 가능한 부분이 구체화될 것이다. 성공만을 바라봐서는 성공할 수 없다. 목표를 설정하고, 실패를 두려워하지 않고 잘못된점을 계속해서 보완하다보면 자연스럽게 성공하게 되는 것이다

도전과 성장에 열린 사람들

개발자는 끊임없이 발전하는 세계에서 살아가는 사람들이다. 여태 사용해왔던 기술이 한순간에 구닥다리 기술이 될 수 있는 곳이다. 만약 바뀐 메타를 부정하고 사용하던 기술만 고수하는 집단이라면 그 집단은 타이타닉 호처럼 다함께 침몰할 뿐일 것이다

잘 사용하고 있는 기술을 가다듬는 과정도 중요하지만, 새로운 기술이 발표되면 학습, 그리고 도전하는 분위기가 정착된 조직이어야 한다. 기술의 발전은 나날히 빨라지고 있고, 멈춰서서는 도태될 뿐이다

어떠한 환경이 이롭고 어떠한 환경이 해로운가?

좋은 환경

실행 가능한 비전과 목표

뜬구름 잡는 목표와 비전은 의미가 없다. 인간은 명확한 목표가 보일 때 비로소 자신의 진정한 힘을 끌어올릴 수 있으며 자신이 가고 있는 길이 옳은지 끊임없이 두드려볼 수 있다. 개발자는 결국 현실에 이상을 구현하는 직업이다

공유

조직은 무언가를 진행할 때 기술적이든 업무적이든 스케줄이든 공유가 필요하다. 이러한 내역이 투명하게 공개되고 원할 때 찾아볼 수 있는 환경이 조성되어야 혼선이 발생하지 않고, 서로간의 협업으로 효율적인 업무 진행이 가능하다

성취와 축하

동물은 보상이 필요한 생물이다. 어떤 일이든 목표한 바를 끝까지 해낸다면 보상이 있어야 한다. 이러한 보상이 있기에 인간은 도전을 하고 나아가며 성취감을 느끼게하는 호르몬을 발산한다. 그리고 이러한 호르몬이 발산되면 자신감을 얻고, 그 자신감은 주변에 넛지효과를 퍼트린다

축하할 일은 모두가 축하하고 개인의 성취도 물론 중요하지만 그러한 성취 하나하나가 모여 조직의 성취가 될 수 있어야 하고 그 성취를 조직원 모두가 느낄 수 있어야 한다

실패

좋은 인간과 조직을 구분하는 방법은 실패를 대하는 자세이다. 인간은 실패할 수 밖에 없으며 죽을 때까지 이기기만 할 수 없는 생물이다. 하지만 이러한 실패는 값진 비료로서 토양의 영양분이 될 수 있다. 실패는 누구나 한다. 하지만 그러한 실패를 교훈으로 삼아야 하며 이러한 실패했다는 사실을 비난해선 안되고 건설적인 방향으로 나아갈 수 있는 분위기가 조성되어야 한다

피드백의 과정은 중요하다. 어떤 이유에서 실패했는지, 보완해야 할 점은 어떤 점인지 생각하다보면 성공을 향한 확률은 더욱 더 높아질 것이다

나쁜 환경

경쟁 혹은 사내 정치

보통 과정보다 성과에 중심을 두는 직장내에서는 정치질이 많이 일어나게 된다. 인간은 기본적으로 이기적인 생물이며 내가 남보다 잘해서 성과를 내어 그 결실을 가져가는 사람들이 많다면 이상적이겠지만 현실은 남을 깎아내려 우위를 점하고 보상을 타가는 일이 비일비재한다

일에 대한 성과는 조직이라는 단체에서 평가받아야 하는 항목으로서 당연하지만, 그것이 정치질의 도구가 되어서는 안된다. 성과는 과정을 평가하는 도구 중 하나가 되어야 하지, 성과 자체를 목적으로 삼아버린다면 조직은 변질될 것이다

단기적인 인센티브

누군가가 성과를 낸다면 당연히 보상을 받는게 맞다. 그러나 인센티브를 부여하는 방식은 신중하게 진행되어야 할 것이다. 인센티브를 받지 못한 구성원들은 더 인센티브를 받을 수 있는 일들만 골라하려할 것이며 성과 불평등에 대한 불만이 나올 것이다. 또, 자신이 더 높은 성과금을 받기 위하여 인위적으로 정보를 숨기거나 협업에 비협조적으로 변할 것이다

회의

회의는 말 그대로 여러 사람의 의견이 필요한 경우나, 리더의 방향성을 모두에게 설명하는 자리가 되어야 한다. 그리고 회의에는 결론이 도출되어야 한다

최악의 회의는 회의가 이루어지는데 시간만 끌리며 다음 회의 때 다시 생각해보자는 결론이다. 시간은 누구에게나 소중하며 이러한 무의미한 회의는 구성원들의 사기만을 깎아내릴 것이다

회의가 소집되었다면 회의록이 있어야 하며 결론이 도출되어야 하고, 관심있는 사람들에겐 회의록이 제공되면 된다. 시간은 낭비되어서는 안된다

결론

좋은 환경이란 성장하고 협조할 수 있는 조직이며 나쁜 환경은 제자리에 머무르기만 하고 비협조적인 조직 분위기일 것이다. 인간은 사회적인 동물이며 서로 협력하면 항상 높은 곳으로 올라갈 수 있는 동물이다

조직의 문화는 조직마다 다르며, 조직 문화가 어떻게 작동하고 있는지에 따라 개발자로서도, 조직으로서도 성장 한계점이 낮을지 높을지 결정된다고 생각한다


Reference

이 글은 다음의 레퍼런스를 읽고 정리한 글입니다
개발자에게 좋은 직장 혹은 좋은 환경

profile
게임 프로그래머 지망생

0개의 댓글