소프트웨어 장인 ( 1장 - 4장)

Yuri Lee·2021년 3월 20일
0

소프트웨어 장인

목록 보기
1/4
post-thumbnail

최근 들어 독서의 필요성을 더 크게 느꼈었다. 소프트웨어 관련 교양 서적을 읽어본 적이 거의 없는 편인데, 때마침 직장 상사분이 좋은 책이 있다며 빌려주셨다. 이 책을 읽고 인상 깊은 부분들을 적어보려고 한다.

1장. 21세기의 소프트웨어 개발

  • 해가 가면서 고참이라는 것이 일시적이고 상대적임을 알게 되었다.

  • 과거에는 개발된 애플리케이션의 사용자가 회사 내부인이거나 업무적으로 관계가 있는 사람인 경우가 대다수였지만 오늘날에는 전 세계 수백만 명의 일반인들이 애플리케이션을 사용하고 있다.

  • 기업들은 이제 시키는 일만 하는 값싼 코더가 아니라 프로페셔널 개발자를 원하고 있는 것이 요즘의 현실이다.

2장. 애자일

  • 애자일은 어떤 단일 개념이 아니다. 애자일은 서로 다른 여러 맥락에 따른 방법론과 테크닉의 조합이다.

  • 코드를 잘 작성하는 것은 소프트웨어 프로페셔널이 가져야 할 최소한의 요건이다.

  • 절차에만 집중하고 소프트웨어 개발을 공장 라인처럼 취급하면, 그저 시키는 일만 하고 출퇴근하는 공장 노동자와 다를 바 없는 개발자들만 생긴다. 이렇게 되면 비효율적인 피드백 시스템이 되어 전체 프로젝트에 해를 끼친다.

  • 많은 기업들이 애자일의 절차적인 부분에는 많은 관심을 기울이고 있지만 기술적 실행 관례에 대해서는 완전히 무시하고 있는 것이 현실이다.

  • 애자일 매니페스토에서는 분명하게 절차와 도구보다는 개성과 화합을 중요시 함을 선언하고 있지만, 애자일 전환은 온통 절차와 도구로 끝나 버린다. 스크럼을 도입하고, 스탠딩업 미팅을 하고, 백로그 관리 툴울 사용하는 것만으로는 갑자기 소프트웨어의 품질이 더 좋아지거나 개발자들의 역량이 높아질 수는 없다. 기술적 탁월함의 개선 없이 절차만 개선하는 것은 무의미하다. 완전한 애자일 전환을 위해서는 프로페셔널 소프트웨어 개발자들이 필요하다.

3장 소프트웨어 장인 정신

소프트웨어 장인정신이란?

  • 소프트웨어 개발의 프로페셔널리즘에 대한 것이다.
  • 프로페셔널 개발자들이 수용하고 있는 마음 가짐이자 삶의 자세이다.
  • 소프트웨어를 장인의 작품으로 여기면서 자신의 기술을 마스터 하기 위해 모든 노력을 기울인다.

매니페스토란?

  • 동작하는 소프트웨어 뿐만 아니라 정교하고 솜씨 있게 만들어진 작품을,
  • 변화에 대응하는 것뿐만 아니라, 계속해서 가치를 더하는 것을,
  • 개별적으로 협력하는 것 뿐만 아니라, 프로페셔널 커뮤니티를 조성하는 것을,
  • 고객과 협업하는 것뿐만 아니라, 생산적인 동반자 관계를

4장 소프트웨어 장인의 태도

  • 고객을 만족시키기 위한 투자는 스스로 해야 한다. 자신이 일하는 회사가 새 지식을 가르쳐 주길 기대한다면 이는 프로페셔널 소프트웨어 개발자가 아니다. 개발자로 가장한 공장 노동자일 뿐이다.

  • 우리가 속한 산업은 다른 어떤 산업보다도 더 빠르게 움직인다. 개발 언어, 프레임 워크, 실행 관례, 업무 절차가 계속 진화하고 있다.

끊임 없는 자기 계발

  • 독서 : 종이 책이든 전자 책이든 나만의 서재를 갖는 일은 중요하다. 특정 주제나 기술을 깊이 이해해야 할 때는 책만한 것이 없다. 커리어를 위해서라면 개념이나 행동양식에 대한 책들에 더 관심을 두는 것이 좋다.

  • 블로그 : 우리의 배움과 자기계발에 대한 기록의 장으로 두는 게 좋다. 여러가지 생각이나 아이디어들, 커리어를 둘러싼 세상을 어떤 관점들로 보는지 기록해보자. 다른 사람들이 그 기록에 대해서 어떻게 생각할지 걱정할 필요는 없다. 나 자신을 위한 기록이 가장 우선이다.

  • 기술 웹 사이트 : 온라인 기술 잡지와 같은 많은 웹 사이트들에서 새로운 트랜드나 기술들을 소개하고 있다.

팔로우할 리더 찾기

  • 프로페셔널 분야에는 해당 분야가 진보하는 데 크게 기여하는 리더 그룹이 존재한다. 특정 기술 분야에 대한 리더들도 있고 좀 더 일반적인 개념적, 행동양식적인 부분에 대한 리더들도 있다.

끊임없는 훈련

  • 실행 관례와 새로운 기술들을 배우는 것은 자동차 운전과 같다. 더 많이 훈련할수록 더 편안해지고 별도의 주의 집중과 의식적인 노력이 없어도 자연스럽게 할 수 있게 된다.
  • 카타 : 소프트웨어 카타는 작은 훈련용 코딩들을 의미한다. 같은 코딩 카타를 반복하더라도 매번 다른 테크닉, 다른 언어, 다른 기술, 다른 접근 방법을 사용해야 효과를 최대화할 수 있따.
  • 펫 프로젝트 : 펫 프로젝트는 취미생활과도 비슷한 나만의 소프트웨어를 프로젝트이다. 일정이나 예산 등 압박 요인이 아무것도 없다. 펫 프로젝트는 무엇보다도 재미있어야 한다. 새로운 비지니스를 시작하는 것이 아니라 흥미를 가지고 열정적으로 할 수 있는 주제를 찾으면 된다. (여행을 좋아한다면 여행에 대한 웹 사이트 만들기 ..etc)
  • 오픈 소스 : 오픈 소스 프로젝트는 매우 많다. 그 중에서 배우고 싶은 내용과 연관 있는 것을 찾고 소스를 내려받아 실행해보고 연구해보자.
  • 페어 프로그래밍

사회활동, 다른 개발자들과 어울리기

  • 아이디어를 주고 받고, 페어 프로그래밍을 하고, 사회적으로 교류할 수 있는 인적 네트워크를 형성하는 것은 성공적인 커리어를 위해 중요하다.

의도한 발견

  • 소프트웨어 프로페셔널이 할 수 있는 최대의 실수는 자신이 모르는 것을 모른다고 받아들이지 않는 것이다. 모르고 있다는 것을 인지하지 못한 상태를 '2단계 무지'라고 한다.
  • 모르는 것을 배우는 기회를 만들기 위해 항상 노력해야 한다.

일과 삶의 균형

  • 시간 만들기 : 자투리 시간을 활용하자.
  • 집중, 뽀모도로 기법 : 업무 외 시간을 잘 활용하려면 그 시간에 제대로 집중하는 것이 핵심이다.
    • 어떤 일을 할지 정한다.
    • 뽀모도로(타이머)를 25분에 맞춘다.
    • 타이머가 끝날 때까지 그 일을 한다.
    • 짧게 쉰다. (보통 5분)
    • 매 4회의 '뽀모도로'마다 길게 쉰다. (15~30분)
  • 균형 : 무엇을 하든지 페이스를 유지하는 것이 중요하다.

"나는 언제든 괜찮은 급여의 좋은 일자리를 찾을 수 있다." 라고 자신있게 말할 수 있으려면 상당한 노력을 기울여야 한다. 소프트웨어 장인으로서 성공적인 커리어를 가지려면 결단력과 열정이 필요하다. 집중하지 못하면 많은 노력들이 낭비된다. 배움과 훈련이 멈추는 순간 우리의 커리어도 멈춰버린다. 시간이 없다는 말은 더 이상 변명이 될 수 없다. 우리는 항상 시간이 있다. 모두 정확히 같은 만큼의 시간이 주어진다. 차이점은 우리가 그 시간을 어떻게 쓰느냐일 뿐이다.


위 글은 산드로 만쿠소의 소프트웨어 장인을 읽고 정리한 내용입니다.

profile
Step by step goes a long way ✨

0개의 댓글