레이블이 문서화인 게시물을 표시합니다. 모든 게시물 표시
레이블이 문서화인 게시물을 표시합니다. 모든 게시물 표시

2011년 2월 13일 일요일

어제 일도 기억하지 못하는데...

개발자들은 동서고금을 막론하고 대부분이 문서화를 싫어하는 경향이 있다. 문서화는 시간이 많이 걸린다고 생각하고 기껏 정리를 해 놔도 남들이 잘 이해하지 못하기 때문이다.

이 생각에 동의한다면 문서화 자체를 완전히 잘못 생각하고 있는 것이다. 문서화를 지금 개발하고 있는 것을 기록해서 나중에 다른 사람들이 활용할 수 있게 한다는 추가적인 작업으로 생각하고 있을 가능성이 높다.

문서화에 대한 생각을 완전히 바꿔보자.

대부분의 개발자들은 기억력이 매우 좋다고 생각하지만 의외로 그렇지 않다. 특정 부분에 있어서 뛰어난 기억력을 발휘하는 경우는 있다.

갑자기 머리에서 번뜩인 아이디어를 10초안에 정리하지 않으면 영원히 사라져 버리는 경우는 흔하다. 하물며 수많은 내가 하고 있는 해야 하는 일들은 시간이 흐르면 내 머리 속에서도 사라져 버린다. 이런 것들을 사라지기 전에 기록한다고 생각하자. 그러려면 특정 형식에 얽매이지 않고 어디서나 기록을 할 수 있 툴들이 필요하다.

간단한 메모장에서 부터 스마트폰과 연동하는 노트 앱이나 클라우드에 저장하는 메모 앱들도 있다. 마인드맵을 이용하는 방법도 있다. 용도에 따라서 다양한 방법들은 각자 구미에 맞는 것들을 선택하면 된다.

이렇게 항상 메모하는 습관을 가지고 있으면 의외로 엄청난 변화를 경험하게 된다. 머리 속에만 있던 생각이 글자로 적히게 되면 점점 발전되어서 머리속 가지고 있을 때보다 가치있게 된다. 또한 다른 사람들과 공유가 가능하고 다른 사람들의 생각과 합쳐서 더 좋은 아이디어로 발전하기도 한다.

이런 메모 습관은 글을 작성하는 것에 대한 거부감을 줄여나가고 개발문서 작성할 때도 도움을 주게 된다. 

나는 오랫동안 메모를 해 왔다. 

아주 오래 전에는 작은 수첩에 메모를 하는 것이 가장 효율적이었다. 그 때는 이를 다시 정리하는 시간이 필요해서 꽤 불편했었다. 하지만 이제는 너무나 좋은 툴들이 너무나 많아서 좋은 것을 선택하는 것이 오히려 어려울 정도다.

과거 OneNote를 사용한 적도 있지만 이제는 Evernote를 이용하고 있다. Evernote는 그동안 메모를 하면서 생각하고 있던 요구사항을 거의 모두 만족한다. 물론 이것 외에도 좋은 툴들이 많으니 입맛에 맞는 것을 선택하면 된다.

우선 아이폰을 이용해서 "텍스트", "음성", "카메라" 메모를 모두 쉽게 남길 수 있다. 이렇게 남긴 메모는 아이폰, 맥, PC에서 모두 접근 할 수 있고 편집할 수 있다. 게다가 무료이다. (유료서비스도 있음)
신기한 기능 중에 하나는 "카메라"로 촬영한 이미지 안의 "텍스트"도 검색이 되는 것이다.
설계 회의를 하다가 화이트보드에 그려 놓은 그림을 사진을 찍어 놓으면 내용을 검색할 수 있는 것이다.

여기에는 거의 모든 내용을 항상 기록한다. 길을 가다가 생각난 모든 것을 기록한다. 스펙을 작성할 때도 이렇게 모인 자료들이 많이 활용된다.

문서화를 남을 위한다고 생각하지 말고 자신이 일을 할 때 자신을 위해서 항상 기록한다고 생각하면 문서화 실력도 조금씩 더 향상될 것이다. 다시 한번 생각하자. 남을 위한 것이 아님을.

2009년 4월 28일 화요일

과거의 개발자 vs. 미래의 개발자

개발자는 2가지의 상반된 가치를 가지고 있습니다.

하나는 과거의 가치
또 하나는 미래의 가치입니다.

"이 사람들 나가면 과거에 개발해 놓은 것 어떡하지?"라는 생각이 들면 과거의 가치를 가진 개발자이고

"이 사람들 나가면 미래에 개발은 누가 하지?"라는 생각이 들면 미래의 가치를 가진 개발자입니다.

과거의 가치를 가진 개발자들은 본인이 아니면 유지보수가 어렵게 소프트웨어를 개발해 놓았고, 대부분의 지식은 머리 속에 있기 때문에 자신이 과거에 만들어 놓은 소프트웨어를 인질 삼아서 회사와 인질극을 벌이고 있는 것과 같습니다. 이렇게 된 원인이 상당부분 회사에 있다고 하더라도, 개발자의 가치는 인질범과 별반 다를 바가 없습니다. 기존 소프트웨어를 망칠까봐 대우해줄 수 밖에 없습니다.

미래의 가치를 가진 개발자들은 자신이 과거에 만들어 놓은 소프트웨어들은 후배들이 유지보수 할 수 있도록 충분히 문서화를 해 놓았고, Peer review를 통해서 이미 많은 지식이 전달된 상태입니다. 이러한 개발과정을 거쳐서 본인은 분석, 설계 능력을 더욱 향상시켰고, 신기술들에 대한 연구에 집중하여 미래에는 과거의 제품들 보다 한 단계 높은 수준의 제품들을 만들어 낼 것입니다. 이러한 개발자들이 진정한 영웅이라고 할 수 있습니다.

인질범이 되겠습니까? 영웅이 되겠습니까? 이는 본인의 의지에 달려있습니다.

안타까운 것은 고참 소프트웨어 개발자 중에는 영웅보다 인질범이 더 많다는 겁니다. 물론 이 개발자가 인질범과 다를바가 없다는 것을 본인도 모르고 회사도 모르는 경우가 태반이지만 말입니다.