소프트웨어 장인정신

아이비네트워크는 어떤 회사일까?

어떤 정체성을 가지고 어떤 소신과 철학을 가지고 있는 회사일까? 이는 내가 항상 생각하고 팀과 고객들에게 해 온 말이지만, 함께 일하는 팀 구성원들과 고객들에게 그 진정한 의미와, 실제 업무를 수행하는 과정에 적용할 수 있도록 그 소신과 철학을 구체화 시켜야 하겠다는 고민에 오래도록 빠져 있었던 것도 사실입니다.

우리 아이비네트워크는 장인정신으로 웹을 개발하려고 끊임없이 노력하는 회사입니다. 아직 모두가 장인은 아니고, 장인정신으로 똘똘 뭉쳤다고 자신있게 얘기할 수는 없습니다. 아니 그 장인이 언제되고 장인정신을 언제 갖출 수 있을지는 정해질 수 없는 것일지도 모릅니다. 그러나 웹개발에 장인이 되어야 하고, 장인정신으로 프로젝트를 수행해야 한다는 것은 흔들릴 수 없는, 타협할 수 없는 정신으로 회사의 문화에 녹아들게 하려고 합니다.

장인(Craftsman)이란 누구를 말하며, 장인정신(Craftsmanship)이란 무엇을 의미하는가?

장인정신이란 자기가 하고 있는 일에 전념하거나 한 가지 기술에 정통하여 그 일에 최고의 경지에 이르고자 하는 철저한 직업 정신을 말합니다. 예로부터 일정한 분야에 전념하거나 한 가지 기술을 오랫동안 전념하여 그 일에 정통한 사람을 ‘장인’이라 하였는데, 이것은 정신 속에 내면화되어 있는 철저한 장인 정신과 직업 윤리의 한 표현일 것입니다. 순수한 우리말에는 ‘장이’ 혹은 ‘쟁이’라고 했는데, 전력을 다할 만한 가치가 있다고 생각되는 일에 혼신을 다하는 철저한 장인 정신의 소유자를 지칭하는 말이죠. 요즘에서는 ‘전문가’라고 할 수 있고 ‘달인’이라고도 할 수 있습니다.

16년간 프로젝트를 수행하면서 항상 내 머리속에 따라다니는 의문들이 있었습니다.

  • 이러한 장인의 경지에 오르고, 장인정신을 가지고 웹개발을 하는 것이 어떤 의미가 있을까?
  • 프로젝트를 수행할 때, 고객의 요구사항을 철저하게 준수 한다고 장인이고 장인정신을 가졌다고 할 수 있을까?
  • 만약 고객의 요구사항이 논리적이지 못할 수도 있고, 결과에 비해 비용과 시간이 많이 소요되는 개발이라면 어떻게 해야 하는가?
  • 장인정신만 갖고 개발을 한다고, 납기와 고객이 요구하는 방향과 거리가 있는 나만의 개발이 될 가능성은 없겠는가?
  • 어느 부분을 타협하고, 어느 부분은 타협하지 말아야 하는가?
  • 다른 사람들보다 깊고 많은 기술을 습득하고 구현한다고 해서 과연 장인이고 장인정신으로 프로젝트를 수행한다고 할 수 있을까?

그렇다면  지금 얘기하고 싶어하는 소프트웨어 장인정신이란 어떤 것일까? 어떤 방법으로 고객과 소통하고, 고객의 원하는 바를 정확하게, 아니 그 이상으로 제공해 줄 수 있을까? 이런 질문들에 대한 대답은 아래와 같은 업무 역량과 정신을 가지고 개발 프로젝트에 임해야 한다는 것으로 대신해봅니다. 아래는 Codurance라는 소프트웨어 컨설팅 회사를 운영하는 산드로 만쿠소(Sandro Mancuso)라는 개발자가 쓴 “소프트웨어 장인정신(Software Craftsmanship)”에서 인용한 것입니다.

좋은 프로그래밍 관례나 기술이 서로 다른 종류의 시스템이나 환경에 공통으로 적용될 수 있지만, 코딩은 개발자가 해야 하는 많은 일들 중 하나일 뿐이다. 코딩을 잘 하거나 특정 언어나 프레임워크에 매우 익숙하다고 해서 고참 개발자가 되는 것은 아니다. 이제 개발자들은 다음과 같은 여러가지 일을 할 수 있어야 한다.

  • 고객과 자주 대화하기
  • 테스트/배포 프로세스를 자동화하기
  • 전체 비즈니스에 영향을 미칠 기술 선정하기
  • 지리적으로 분산된 팀들과 협업하기
  • 고객을 도와 필요한 작업을 정의하기
  • 우선순위 선정하기
  • 진척 상황 보고하기
  • 변경사항과 기대일정 관리하기
  • 잠재 고객 및 파트너에게 제품 소개하기
  • 사전 영업 활동 지원하기
  • 개발 일정과 비용 산출하기
  • 채용 면접하기
  • 아키텍처 설계하기
  • 비기능적 요구사항과 계약조건
  • 사업 목표 이해하기
  • 주어진 여건에서 최적의 결정하기
  • 새로운 기술 주시하기
  • 더 나은 업무 방식 찾기
  • 고객에게 가치 있는 상품이 전달되고 있는지 고민하기

– ‘소프웨어 장인’,  p.32-33, ‘새로운 현실’

주로 프로그래머의 영역에서 기술을 하였지만, 프론트엔드 개발자나 UX/UI 디자이너, 프론트엔드 개발자, 프로젝트매니저, 기획자, 그리고 경영을 담당하는 영역까지 모두 해당될 것입니다.

항상 현업의 이슈에 대해 고민하고, 개선을 위한 더 나은 기술을 찾고 습득하고, 결국에 우리가 하는 일이 고객의 성공적인 비즈니스를 위하는 일이라는 것을 잊지 않고, 결과로 얻어지는 것은 나에게 주어지는 작은 보람이라는 것으로 만족하며 본연의 임무를 수행할 수 있도록 노력해야 하겠습니다.

4 thoughts on “소프트웨어 장인정신

Comments are closed.