들어가며
‘소프트웨어 장인 정신’에 대한 글을 적어 보려고 합니다. 가장 먼저 주제를 좁혀보겠습니다. ‘소프트웨어 장인이라면 이런 이런 습관을 가지고 있어야 한다’는 글은 아닙니다. 대신에 ‘소프트웨어 장인이 되어가는 과정에서 경력 3년을 가진 개발자 장환석의 정신 상태’라는 표현이 좋겠습니다.
소프트웨어 장인 정신이라는 대주제에 아래, 첫 번째 글은 ‘커뮤니케이션’에 대해서 두 번째 글은 ‘기술’에 대해서 작성할 생각입니다. 커뮤니케이션에 대해서 먼저 이야기하는 이유는 ‘조직의 커뮤니케이션 구조가 소프트웨어의 구조에 영향을 미친다’는 말에 크게 공감하기 때문입니다.
경력 10년의 개발자가 되었을 때에는 한 조직을 ‘제대로’ 리딩할 수 있는 사람이 되고싶다는 생각을 합니다. 3년의 시간동안 보고 배웠던 많은 분들의 좋은 모습들을 배우고, 지금 생각해도 많이 부족했던 모습들은 버리기 위해서 이 글을 쓰고 있습니다. 지금의 생각들이 몇 년 뒤의 저에게 어떻게 느껴질지 궁금하네요.
이번 글은 ‘커뮤니케이션’이라는 키워드는 중심으로 소프트웨어와 개발자에 대한 생각들, 소프트웨어 품질을 높이기 위해 필요성을 느껴온 최소한의 문서들, 협업 방식을 다루고 있습니다. 다음 글은 이러한 생각들을 반영해서 스스로 해답이라고 찾아본 ‘간소화된 헥사고날 아키텍처’에 대해서 기술해보려고 합니다.
소프트웨어와 개발자
소프트웨어 개발자로서 하는 일
저는 고객에게 소프트웨어로서 가치를 제공하는 일을 하고 있습니다. 처음에는 그저 키보드를 두들겨서 머릿속의 생각을 논리적으로 표현하는 것을 좋아했다면, 이제는 고객이 정말로 원하는 가치가 무엇일까 고민해보기도 합니다. 고객이 원하는 가치가 무엇인지 찾았다면 그것을 꼭 소프트웨어로서 제공하고 싶습니다. 나이브하게 말하면 돈을 많이 벌고 싶지만, 다른 방법이 아니라, 소프트웨어로서 돈을 많이 벌고 싶습니다.
가만히 앉아서 요구사항을 파악해보고 키보드를 두들겨서 고객에게 새로운 가치를 전달하는 것에 성취감과 뿌듯함을 느낍니다. 생각해보니 ‘고객에게 가치를 전달하는 것’보다 ‘새로운 가치를 만드는 것’에 훨씬 더 집중하고 있었습니다. 아마도 개발에만 열심히 집중하고 있으면 2주마다 돌아오는 정기 배포날과 저 대신 고객을 자주 만나주시는 다른 직군의 분들 덕분에 고객에게 가치를 전달하는 행위가 항상 이루어져서 그런 것 같습니다. 열심히 만든 가치를 고객에게 전달한다는 관점에서 개발뿐만 아니라 배포에도 좀 더 관심을 가져야겠습니다.
소프트웨어의 품질
소프트웨어의 품질은 요구사항에서부터 시작한다고 생각합니다.
... 작성 중 ...
'DEV > INSIGHT' 카테고리의 다른 글
모니터링 데이터에는 LLM를 어떻게 붙여야할까? (0) | 2024.01.02 |
---|---|
COUNT와 Pagination, 필요없을 수 있습니다 (0) | 2023.09.24 |
어떤 기능을 먼저 만들어야할까? (0) | 2023.09.20 |
성능과 사용자 경험의 사이에서 (1) | 2023.09.20 |