본문 바로가기
개발 이야기/Etc

[독서]소프트웨어 장인

by 농개 2020. 3. 1.
반응형

소프트웨어 장인(산드로 만쿠소)

 

개발자 필독서라 불리는 "소프트웨어 장인"을 읽고 요약/정리 해봅니다.

 

중소기업 개발 프로세스와 애자일

 첫 회사를 중소SI기업에서 시작했었다. 프로젝트를 수주하면, 고객이 원하는 장소로 파견을 가게 되었고, 전통적인 개발방법론인 Waterfall 방식으로 개발프로세스를 시작했다. 간단히 아래의 절차를 밟은 것 같은 기억이 있다.

  • 요구 분석 : 기획자가 담당한다. 회사 다니면서 기획자랑은 일상적인 대화는 나눈적이 없다. 하지만 개발을 시작하게되면 가장 많이 소통하게 되는 직원이었다.
  • 화면 설계 : 역시 기획자가 담당했었다.
  • DB 설계 :  화면설계서를 기반으로 개발자가 수행한다.
  • 퍼블리싱 작업 : 개발자가 DB 설계를 할 때, 퍼블리셔가 수행한다.
  • 개발 : 화면설계서를 보면서 퍼블리싱 산출물에 데이터를 입히며 개발한다.
  • 테스트 : 기획자가 QA역활도 했었던 것 같다.
  • 수정 : 개발자가 한다.
  • 개발완료

이때까지만 해도 개발자는 기획자가 만든 요구와 화면설계를 그대로 구현하는 직책인줄 알았다.

이 책은 현대의 개발에 있어서 개발자는 거기에 머물러선 안된다고 말하고 있다.

 

Waterfall의 단점은 익히 알고 있을 것이다. 결국 위와 같은 프로세스의 결과물은 일정에만 맞춰 찍어낸 코드에 불과 하다. 이는 동작만 하는 정교하지 못한 코드로 이뤄졌을 것임이 대부분일 것이다.

이 책은 이제 현대 개발프로세스인 애자일 방법론으로 개발을 해야한다고 말한다. 애자일(Agile)이란 "날렵한", "기민한"을 뜻하는 형용사이다. 말그대로 계획에 의존하기 보다는 재빠르고 유연하게 문제에 대처하는 방법론이다.

현대 회사는 이러한 애자일 개발프로세스의 도입을 위해 많은 것들을 제공하려한다.

소통의 환경이 제공되면 기업문제 해결을 물론 개인의 약점, 강점 파악에도 도움이 된다.

포스트잇이 많을수록 애자일 하다는 연구결과도 있다고한다.

 

 

장인정신

장인정신은 솜씨있게 짠 코드의 중요성을 강조한다.

동작하는, 뿐만 아니라 정교하고 솜씨있는 작품으로서 코드를 작성해야한다고 말한다.

또한 장인정신은 다른 사람에게 겸손히 배우는 자세를 가져야하며, 자기보다 경험이 적은 개발자에게 지식을 공유하기를 꺼리지 않는다.

 

 

개발자의 숙명

고객만족을 위해서 스스로 발전해야한다. 이를 위해서 시간을 투자하고 비용을 투자하는 것도 개발자의 숙명이다.

펫프로젝트. 토이프로젝트라고 알려져 있는 것으로 개발자가 회사일이 아닌 삶 속에서 시간과 비용을 투자해 코딩을 하여 결과물을 만드는 것이다. 우리는 항상 시간이 있다. 시간없어서 못한다는건 핑계일 뿐이다.

코딩이 아니어도 좋다. IT 잡지, 다른사람이 작성한 개발 블로그, 개발자 커뮤니티 등에 스스로 시간을 투자하여야한다.

 

 

레거시 코드

회사에 입사를 하게되면 레거시에서 시작하는 프로젝트를 맡을 수 있다.

레거시 코드란 오래된 코드로 가독성도 떨어지고, 테스트도 불편한 유지보수가 까다로운 코드를 말한다.

실용주의적 관점에서 코드 리팩토링 하는 것이 중요하다. 

처음 발견 했을 때 보다 깨끗하게.

 

 

 

고객과 함께 성장하는 개발자

프로젝트를 진행하면서 기획자 또는 고객이 특정 기능에 대한 수정을 요구한 경험이 있을 것이다.

만약 이 때 "No"라고 말해야 한다면, 고객의 비즈니스 도메인을 분석하고 분석한 결과을 도대로 대안을 마련하는 것이 좋다. 개발자는 코딩만 해서는 안된다. 고객의 요구사항에 질문 할 수 있어야하고, 때로는 말과 글로써 설득할줄 알아야한다. 누가 이런말을 했다.

개발은 기획자, TW(Text Writer), 퍼블리셔, 개발자, PL, PM 그리고 고객 모두 함께 하는 것이다.

 

 

 

반응형

'개발 이야기 > Etc' 카테고리의 다른 글

Intellij 단축키 검색 키워드 정리  (0) 2021.01.12
2020 Log  (0) 2021.01.01
2019 Log  (0) 2020.01.03
VSCode 확장 추천!!!  (0) 2019.11.27
OAuth2.0에 대해서 이것만은 알고 가자  (0) 2019.03.04