시간이 없어서 ....

27 views
Skip to first unread message

양완수

unread,
Jun 13, 2010, 11:07:58 PM6/13/10
to Agile Beginners' Q&A
안녕하세요 .
이제 프로젝트가 막바지군요 다음주에는 휴가를 떠날수 있을 것 같습니다.

프로젝트인원 7 인에 개발자 5명에 프로젝트에서 제가 맡은 임무는 프로젝트 개발 프레임워크에 대한 가이드라인 마련이나 적절한 라
이브러리를 제공하거나 프로토타입 코드를 통해 개발자들간에 코드의 차이점을 줄여나가는 역활입니다.

프로젝트 초기 전체적인 아키텍쳐에 관해서 작은 시간을 빌어서 토론도 하고 스터디도 해나가면서 어느 정도 절충안을 잡았습니다.
이 때 다른 개발자분들이 전부 저보다 경력이 많으시고 나이도 많으셨습니다. 그래서 제가 가지고 있는 생각을 어느 부분에서는 충돌
없이 내려놓아야 할 때도 있었습니다.

대분에 충돌의 발생 가능 지점은 시간과 일정이었습니다. 이런 시간과 일정에 대한 기준점은 물론 전 동의 하지 않았습니다.
나름 초기 시간이 많이 투자 되는 부분이 있을 수 도 있지만 후반 고객의 변심에 더 빠르게 대처 할 수 있다고 생각 했습니다.

그래도 밥이 안되기 때문에 어느정도 선에서 절충안을 내놓기를 중복에 관해서는 관대하지 말자였습니다.
프로젝트 중 발생하는 코드에 대해서는 중복이 2번이상 발생하면 제거하자였습니다.

시간이 지나고 프로젝트인원이 빠져나가고 추가적으로 들어온 고객요청 또는 오류 에 대해서 코드를 살펴보던 전 깜짝 놀랐습니다.
어느 한 서비스 코드에서 4시간 정도에 중복 제거 작업을 통해 거의 반적 이상의 코드를 제거 했고 코드가 말하는 바가 명확해졌
기 때문입니다.
분명 중복제거를 하자고 말했고 서로 지켜가고 있다고 믿었는데 많은 중복이 발생하고 있었습니다. 그냥 중복이 아니라
cut&paste 가 너무나 명확하게 보이는 ....
아마 시간적으로 조급함을 가지고 있었나 봅니다.
하지만 제가 4시간에 걸친 작업을 보았을때 조금만 생각 했다면 좋았을것을 하고 생각했습니다.
이번 중복 제거 작업을 한 이유는 고객요구 사항 반영을 위해 제가 작성하지 않은 코드를 이해 하기 위한 리펙토링중 하나였습니
다.

왜 이렇게 시간에 조급해 하는 걸까요 ?

Steve Yoon

unread,
Jun 14, 2010, 6:12:07 AM6/14/10
to ab...@googlegroups.com
안녕하세요? 윤경록입니다.
아무 답변이 안달려 있기에; 하수이지만 용기를 내어서 제가 생각했던 바를 공유드립니다.
저도 비슷한 고민을 하고 있는 중입니다만, 조금 다른 각도로 보고 있습니다.

시간에 대해 조급해 하는 것은 다시 말해서 무엇엔가 불안해 하고 있다고 보고 있습니다.
그래서 무엇을 불안해 하고 있는가를 고민 중에 있습니다만, 아직 뚜렷하게 스스로 정답을 내지는 못하고 있습니다.
단지 아래와 같은 이유가 불안요소가 아닐까 합니다.
  • 경험 미숙으로 인해 미래를 예측하기가 너무 힘들어서 생기는 불안함 ("상용화까지 일년 밖에 안남았는데 다 할 수 있을까?")
  • 스스로에 대해 자신감을 갖지 못할 정도로 자아가 약해서 생기는 불안함 ("이건 내가 해본 적이 없는데...")
  • 커뮤니케이션(팀워크) 부족으로 생기는 외로움을 동반한 불안함 ("팀장님이 보호를 안해줘요.  ㅠ.ㅠ" 또는 "이 정도는 상식 아니야? 눈치도 없나? 왜 내 마음을 몰라줘..")
  • 원인을 알 수 없는 피해 의식 ("왜 내가 이것까지 생각해야하지?")
그리고 말씀하신 것과 같은 '복사하기' 코드 중복은 "자아 약함" + "책임 회피"의 결과가 아닐까해요. 저도 이와 같은 경우를 많이 겪은 것 같은데.. "왜 이렇게 했나요?"하고 물어보면 "개발자는 게을러야 한대요!"라고 대답하시더군요. ㅠ.ㅠ 저는 더욱 부지런해지려고 노력한답니다;;; 하지만 오늘 다 못하면 내일로 자주 미룬답니다;;;

제 생각이 어떠실지 모르겠습니다. 의견 공유해주시면, 저도 더 생각해보고 글을 이어가도록 하겠습니다.

그럼 이만 줄이겠습니다.

윤경록 드림

2010년 6월 14일 오후 12:07, 양완수 <ywsa...@gmail.com>님의 말:



--
Google 그룹스 'Agile Beginners' Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ab...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 abqna+un...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/abqna?hl=ko에서 그룹을 방문하세요.




--
-----------------------------------------------------------------
Name : 윤경록
Mobile : +82-10-3008-7479
MSN : steve...@gmail.com
Nateon : steve...@nate.com
Blog : http://steveyoon77.tistory.com
twitter : @steveyoon77
- 日新又日新 [일신우일신]

Hanuri7421

unread,
Jun 14, 2010, 6:29:33 AM6/14/10
to ab...@googlegroups.com
카피앤 페스트를 하게 되는 저나 주변의 경우를 보면 다음과같은 경우 였던것 같습니다.

일단 제사용하고자 하는 코드가 물려있는 시스템에 대해서 잘 몰라서입니다

그리고 그 의존적인 시스템이 만약 내가 짠 코드더라도 이번에는 정리하는 시간때문인것 같습니다 길어 봐야 불과 몇시간이거나 하루가 걸리더라도 그날 작업 한것이 보기엔 아무것도 없다라고 느껴지고 그걸 상관에게 보고하기가 힘들어서 일단 빨리 복사해서 조금 수정해서 만들어야겠다고 생각하고 작업을합니다

하지만 생각과는 다르게 기능이 구현된것을 보고후에는 바로 추가적인 작업을 지시 받아서 결국 이전의 땜빵식 중복코드를 정리할 시간이 없어 지더군요 

그러다보면 코드의 중복이 발생하기 시작합니다...

그리고 c++프로젝트같은 경우는 dll의 관리가 초보자에게는 어렵게 느껴지고 또다른 여러가지 링커 문제나 라이브러리 분리후 링커시 발생하는 자잘한 컴파일 오류들을 차분히 해결해 나갈 용기가 부족한것 같습니다 ... 분명 저걸 다하느라 오늘작업 하나도 못할텐데.. 하면서..

또 귀찮은 작업이라고 생각 하거나

지금 하는 작업이 스파이크 솔루션의 형태(그냥 한번 가능성을 타진하기위한것) 일경우는 더욱 그런것 같습니다..

하지만 예상과는 다르게 스파이크솔루션에 계속 기능을 추가해가면서 지저분한코드로 프로젝트가 커져가는것 같습니다...

초보자 입장에서는 선임들이 이런걸 잘 관리해주지 않으면 해쳐나가기가 힘든것 같더군요 

그냥 아직 바보같은 저의 경우를 써봤습니다

나의 iPhone에서 보냄

2010. 6. 14. 오후 7:12 Steve Yoon <steve...@gmail.com> 작성:

lic...@gmail.com

unread,
Jun 14, 2010, 7:38:38 PM6/14/10
to ab...@googlegroups.com

제 생각에는 조급함보다 귀찮음이 더 많지 않았나 합니다.

제 경우에는 중복 제거를 위해 리펙토링을 하다보면 하루를 넘기기도 하고,

잘못 수정해서 사이드 이펙트(추가 문제)가 발생하기라도 하면 2~3일을 날리기도 했습니다.

이런점들 때문에 솔직히 귀찮고 부담으로 느껴지고, 또 나중으로 미루기도 하는 것 같습니다.

 

. 그래서 주기적인 코드 검토가 필요한 것 같습니다. ^^;

 

이상 주저리 주저리 였습니다. ^^;

wansu yang

unread,
Jun 14, 2010, 10:07:22 PM6/14/10
to ab...@googlegroups.com
저에 경우 성격이 그런지 습관인지 비슷한 코드가 나타나면 의미있게(?) 묶어내지 않으면 더 불안하더군요.

저의 불안함에 원인을 곰곰히 생각 해보았습니다.

-중복된 코드가 다시 나 오면 복사 붙이기를 해야한다는 귀찮음
-지저분한 코드가 있으면 집안에 쓰레기가 가득한것 같은 찝찝함 
-나중에 코드 수정이 있을 때 어딘가에 있을 중복코드를 다시 찾아다녀야한다는 귀찮음 

고수는 아니지만 간단한 리펙토링 (중복제거 , Extra Method , 작명) 을 통해서 효과를 많이 보았던것같습니다.
시간적으로 압박을 받을 때 더 리펙토링을 많이 하는 것 같습니다. 
물론 복사 그리고 붙히기도 하는데 어느 정도 찝찝함이 기준을 넘어가면 리펙토링을 해야겠다고 마음을 먹는 편입니다.
코드가 알아보기 쉽고 읽기 편할 수록 코딩 할 맛이 나더군요 .....

코드 검토를 주기적으로 시간을 할애하여 하려 해보았으나 잘 안되더군요 .
 
같이 작업 하시던 분들에게 왜 습관적으로 리펙토링을 하지 않나요 라고 물었습니다.
리펙토링이되면 요런요런것이 좋은데라고 하며 물었습니다.

1.수정을 통해 발생할 문제가 있을것 같아서
2.리펙토링이머지? 또  배워야해? 
3.리펙토링은 이론일뿐..
4.코딩할 시간도 없는데..

다들 리펙토링을 너무 거창하게 생각하는듯합니다.











2010/6/15 <lic...@gmail.com>
--
Google 그룹스 'Agile Beginners' Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ab...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 abqna+un...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/abqna?hl=ko에서 그룹을 방문하세요.



--
===========================================================

안녕하세요! 양완수 입니다.
+HP      : 010 2008 4167
+Email  : ywsa...@gmail.com , yang...@daumsoft.com
+
===========================================================

wansu yang

unread,
Jun 14, 2010, 10:09:25 PM6/14/10
to ab...@googlegroups.com
불안
조급
경험미숙
불확실
예측불가
자신감없음
자아약함
외로움
눈치
피해의식
회피 
시간부족
상관 보고
용기
귀찮음
지저분함

2010/6/15 wansu yang <ywsa...@gmail.com>

lic...@gmail.com

unread,
Jun 15, 2010, 5:01:50 AM6/15/10
to ab...@googlegroups.com

양완수님 말씀처럼 리펙토링을 너무 거창하게 생각하는듯합니다.” 라는 말이 공감이 가네요.

 

 

김정훈

unread,
Jun 15, 2010, 5:18:22 AM6/15/10
to ab...@googlegroups.com
시간의 문제만은 아니라고 봅니다. 
저는 중복에서 오는 문제점에 대한 심각성을 과소평가하는 것이 아닐까 합니다.
중복코드의 폐해는 만들자마자 발생되기보단 누적되면서 발생되는 경우가 많습니다.
그러다보니 그 심각성을 못느끼고 일단 만들고 보자라는 생각이 앞서다보니 그런 것은 아닐까요?


2010년 6월 14일 오후 12:07, 양완수 <ywsa...@gmail.com>님의 말:
안녕하세요 .

조종국

unread,
Jun 16, 2010, 10:36:42 PM6/16/10
to Agile Beginners' Q&A
작업 완료가 "기능만 제대로 구현하면 끝이다"라는 암묵적인 분위기가 문제일 수 있습니다.
무리한 일정이나 교육의 부재 혹은 나쁜 습관 같은것이 이유일 수 있겠네요.

깨친 창문의 예에도 알수 있듯이 몇몇 구성원이 냄새가 나는 코드들을 조금씩 작성해가면
다른 구성원도 쉬이 영향을 받게 되겠죠. 그것도 빠른 속도로...

코드리뷰나 페어프로그래밍 또는 코드 검사 툴 (FxCop같은.. 함수 최대 라인수, 클래스 최대 라인수, 작명법 처럼 어느정도
기계적이긴 하지만 효과가 없진 않습니다)
같은것을 이용하시면 조금 도움이 될것 같습니다.

제일 중요한건 중요 구성원들의 "지속적인 관심과 의지"이지 않을까요.

Reply all
Reply to author
Forward
0 new messages