코딩만큼 중요한데 생각보다 많은 개발자가 갖추지 못한 스킬
1️⃣ 학습 능력
주니어 개발자는 시니어 개발자를 따라잡기 위해 방대한 양의 지식을 습득해야 한다. 소프트웨어를 설계, 개발, 유지, 테스트 및 평가하는 데 사용되는 모든 도구와 기술과 함께 지속적으로 빠른 속도로 발전하고 있다는 사실때문에 이미 지쳐버리는데, 다 따라잡았다고 느끼는 순간 새로운 도구와 기술이 나온다. 이러한 끊임없는 변화에 대처하기 위해 소프트웨어 엔지니어는 평생 학습에 전념하고 이를 위한 학습 전략을 개발해야 한다.
소프트웨어 개발자가 앞서 나가기 위해 당장 할 수 있는 사소한 것은 질문하는 것이다. 간단해 보이는 데 많은 엔지니어들이 질문하는 것을 두려워한다.
2️⃣ 문서화하는 능력
문서 작성 능력은 소프트웨어 공학 스킬 중에서 아주 중요하다. 좋은 문서는 코드(또는 시스템) 기능, 사용 방법을 정확하게 설명한다. 소프트웨어 엔지니어는 현재 자신이 아닌 미래의 팀원을 위해 작성하는 것처럼 문서를 만들어야 한다.
소프트웨어 개발 팀을 구성하는 사람들은 종종 다양한 지식과 경험을 바탕으로 매우 다른 배경을 가지고 있다. 그러므로 때로는 명백한 것들까지도 적는 것이 중요하다.
📌 추가: 여러 팀과 조직을 이끄는 경우 지식 공유와 비즈니스 의사소통이 아주 중요하므로 작문 실력은 필수입니다.
3️⃣ 데브옵스
DevOps 팀에서 작업하고 DevOps 툴을 관리할 수 있는 숙련된 전문가의 수요가 그 어느 때보다 높아지고 있다.
📌 추가: 요즘은 개발자가 데브옵스 업무 보는 것과 온콜 서는 게 보편화되고 있어요. 인시던트를 잘 대응하는 건 주니어에게 필요한 스킬이며 인시던트를 주도하는 건 시니어 플러스 개발자의 기대 역할입니다.
4️⃣ 의사소통 능력
영화와 TV 쇼는 소프트웨어 엔지니어들을 어두운 사무실에서 밤늦게까지 일하는 히키코모리로 묘사하는 것을 좋아하지만, 이와 같은 묘사는 사실과 다르다. 오늘날 소프트웨어 개발은 협력이 중요하다.
가장 중요한 소프트 스킬 중 하나는 능동적인 듣기이며, 이는 종종 대화나 연설에서 다른 사람이 말하는 단어의 의미를 주의 깊게 듣고 이해하려고 하는 것이다. 능동적 경청은 다양한 배경, 경험을 가진 다양한 팀에서 일하는 소프트웨어 엔지니어들에게 아주 중요한 기술이다.
5️⃣ 프로그래밍
당연하지만 프로그래밍은 기본으로 잘해야 한다.
📌 추가: 많은 개발 도구가 발전함에따라 개발이 용이해졌고, 그만큼 개발 도구를 잘 다루는 것도 아주 중요합니다. 그리고 코딩만큼 중요한 시스템 설계는 미드 레벨 개발자가 꼭 알아야 하고, 시스템 확장과 라지 스케일 시스템 그리고 분산 시스템 스킬은 시니어 플러스 엔지니어가 터득해야 하는 스킬입니다.