티스토리 뷰

본 내용은 "Clean Coder”(http://www.yes24.com/24/goods/29241448)라는 책을 요약한 내용입니다.


프로의 마음가짐, 즉 프로페셔널리즘(Profeesionalism)이란 “어떤 일에 뛰어난 기량을 갖춘 전문가적인 기질과 정신을 일컫는다”입니다. 이는 아마추어리즘(Amateurism)과 상대되는 개념입니다.

함부로 바라지 마라

프로페셔널리즘에는 숨은 뜻이 있다. 당연히 명예와 긍지의 상징이기도 하지만, 동시에 책임과 의무를 나타내기도 한다. 물론 두 가지는 뗄래야 뗄 수 없다. 책임지지도 못할 일에서 명예와 긍지를 얻을 수는 없다. 프로페셔널리즘에는 책임이 전부라 해도 과언이 아니다.

책임감을 가져라

책임감을 가지고 테스트가 되기 전에 선적(배포)를 하지 마라. 만약 고객 또는 상위 관리자가 선적을 하자고 해도 안 된다고 말해야 한다.

무엇보다도 해를 끼치지 마라

소프트웨어 개발자가 어떤 해를 끼칠까? 소프트웨어 관점에서 기능과 구조 양쪽에 해를 끼친다.

기능에 해를 끼치지 마라

프로라면 한 명도 빠짐없이 오류에 책임을 져야 한다. 오류가 명백하지 않더라도 상황이 어떻게 돌아가는지 밝혀야 한다.

QA는 아무것도 찾지 못해야 한다

잘 돌아가는지 아닌지도 모르는 코드를 QA에게 보내는 개발자는 프로가 아니다. “해를 끼치지 마라”는 규칙을 어기는 짓이다.
적어도 Sanity Test(https://en.wikipedia.org/wiki/Sanity_check)를 수행한 뒤 QA 요청을 해야 한다는 뜻인 것 같습니다.

제대로 작동하는지 아닌지 알아야 한다

테스트를  하라. 100% 테스트 커버리지를 권장이 아니라 강력히 요구한다. 어떤 코드는 테스트가 어려운 경우도 있는데, 이는 테스트하기 어렵게 설계를 했기 때문이다. 해결책은 테스트 주도 개발(TDD)로 개발하는 것이다.

자동화된 QA

자동화된 테스트를 잠깐 돌려보는 것으로 QA가 끝났다고 할 순 없다. 개발자 입장에서는 코드가 잘 돌아가고 다른 부분에 영향을 주지 않는지를 빠르게 알 필요가 있는데, 자동화된 테스트를 돌려 보는 것은 최소한 QA를 통과할 정도는 된다고 할 수 있다.

구조에 해를 끼치지 마라

소프트웨어는 변경에 유연해야 한다. 유연하면서도 유지하기 쉬운 구조로 소프트웨어를 설계하라.(패턴 적용)
리펙토링은 항상 해라. 그럴려면 테스트 코드가 잘 만들어져 있어야 한다.
보이 스카웃 규칙. 모듈을 체크인 할 때는 항상 체크아웃 했을 때보다 깨끗해야 한다는 규칙이다.

직업윤리

어떤 회사는 책을 사주고, 교육과 컨퍼런스에 보내준다. 회사에서 호의를 베푸는 것이다. 하지만 이를 회사 책임이라고 생각하지 마라.
스스로 공부하라.

전산 분야 지식을 익혀라

프로 소프트웨어 개발자라면 알아야 하는 최소한의 기술 목록
  • 디자인 패턴
  • 설계 원칙: SOLID 객체지향 원칙, 컴포넌트 개념
  • 방법론: XP, 스크럼, 린, 칸반, 폭포수, 구조적 분석, 구조적 설계 개념
  • 원칙: TDD, 객체지향 설계, 구조적 프로그래밍, 지속적 통합, 짝 프로그래밍
  • 도구: UML, 데이터 흐름도, 구조 차트, 상태 전이 다이어그램과 테이블, 흐름도, 결정 테이블

끊임없이 배우기

IT 산업은 미친듯이 바뀌기 때문에, 어마어마하게 공부해도 간신히 따라잡는 정도다.
책, 기사, 블로그, 트윗을 읽어라. 컨퍼런스에 가라. 여러 모임에 참가하라. 스터디 그룹에 들어가라.

연습

프로는 연습한다. 소프트웨어 개발자에게도 연습이 필요하다.
간단한 프로그래밍 문제를 풀어라.

함께 일하기

함께 프로그래밍하고, 함께 연습하고, 함께 설계하고 계획하라.

멘토링

배우기에 가장 좋은 방법은 가르치는 것이다. 프로라면 후배들을 멘토링하는 책임을 져야 한다.

업무 지식을 익혀라

회계 시스템을 만든다면 회계 분야를 알아야 한다. 즉, 도메인 지식을 익혀라.

회사와 고객에 동질감을 가져라

회사의 문제가 자신의 문제다. 회사를 대할 때 우리와 우리가 아닌 나머지라는 태도에 빠지기 쉬우나 프로라면 그러지 않아야 한다.

겸손

프로라면 자신이 하는 일에 자부심을 가져야 하지만 때때로 실수 할 수 있다는 사실 또한 잘 안다.

그래서 다른 사람이 실수했다고 망신을 주지 않는다. 다음 번 실패할 사람이 자신임을 알기 때문이다. 


'소프트웨어공학' 카테고리의 다른 글

[클린코더] 3장 예라고 말하기  (0) 2016.10.20
[클린코더] 2장 아니라고 말하기  (2) 2016.10.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함