1. 프로그램이 지닌 가치는 두 종류다.

 - 하나는 현재의 기능이라는 가치고, 또 하나는 미래의 기능이라는 가치다. 프로그래밍할 때 개발자는 주로 프로그램에 무슨 기능을 넣을지에 전념한다. 버그를 수정하든 새 기능을 추가하든, 그것은 프로그램의 성능을 높임으로써 현재 기능의 가치를 높이는 일이다.

프로그램의 현재 기능은 그저 일부에 불과하다는 사실을 깨우치지 않으면 개발자로서 오래가지 못한다.

오늘 일을 오늘 할 수 있어도 내일 일을 내일 할 능력이 없다면 개발자로서 실패하게 된다. 오늘 해야 할 일은 알아도 내일 일은 알 수 없는 것이 당연하다. 이런 일, 저런 일, 또는 어쩌면 생각지도 못한 일을 하게 될 수도 있다.

그러나 오늘 할 일은 알겠는데 내일 할 일은 잘 모르겠다고 해서, 오늘 일에만 전력을 쏟아버리면 내일은 아무 일도 할 수 없다. 과거의
 판단이 현재를 기준으로 불합리하다는 사실을 발견했다면 그 판단을 수정해야 한다.

2. 리팩터링은 실행 중인 프로그램의 기능을 바꾸는 작업이 아니고, 신속한 개발 공정을 가능하게 하는 성질과 가치를 높이는 일이다.

3. 소프트웨어는 실물의 기계와 달리 유연하며 하나부터 열까지 생각을 통해 이뤄진다.

4. 코드는 반드시 대부분 제대로 돌아가는 것이 우선이고, 리팩토링은 나중 일임을 명심하자.

 

--

 

 - 소프트웨어의 특성상 100% QA도 어려울 수 있고, 그 외의 많은 변수로 100% 버그 없는 소프트웨어는 존재하기 어렵다고 생각합니다. 그러면 어떤 생각을 가지고 문제에 접근해야 하는지, 개선해야 하는지, 괜히 너무 급하게 일정을 잡고 있는 건 아닌지? 생각하며 반성합니다. 단순히 코딩을 잘해 소프트웨어의 모든 문제가 해결되었다면 이런 고민은 시작도 안 했겠죠. 결국 한정되어 있는 시간 내에서 품질 좋은 소프트웨어를 만들려면 어떻게 해야 하는가에 대해 끊임없이 고민하고 우선순위를 정하고, 어떻게 커뮤니케이션을 하고, 프로세스를 만들어갈지를 고민을 한번 더 하게 되었습니다. (개발팀 혼자 할 수 있는 것이 아니라 다른 팀도 함께 움직여주어야 가능하죠.)

2019.03.31 18:34. RSS feed. Trackback 0 came from other blogs. Leave a Response.
Posted in 독서. Top

댓글을 달아 주세요