무언가 나아지려 코드를 건드렸다가, 버그를 뱉어내면서 제대로 동작하지 않을때,

경험상으로는 웹 어플리케이션의 응답초기부터 관여하는 필터나, Wrapper류의 클래스를 건드렸을때 주로 보는 현상이다.
Extract Method, Interface변경 등의 리팩토링을 수행하면서 만나게 되는 황당함..
좀더 나은 코드와 구조를 만들려고 했지만 상태는 악화된다.

여기서, 적당히 괜찮은 상태에서 코드를 내버려 두어야 한다는 것이다.

시스템이 성공하려면 생산해 낸 것이 어느 정도면 적당히 괜찮은지를 결정하는 과정에 사용자가 참여할
기회를 가져야 한다

당연한 것이지만, 단순히 프로그램에 새 기능을 추가하거나 코드를 더 다듬는던가 하는 것에 의해 사용자의 요구사항이 무시되어서는 안된다. 요구하는 품질과 기능에 도달하였을때 개발을 그만두고, 사용자와의 Feedback에 신경 쓰도록 하자.
그러기 위해서는 만들어낼 시스템의 범위Scope와 품질은 해당 시스템의 요구사항의 일부로 명기 되어야 한다.
저작자 표시
신고
Posted by 영겁회귀
마샤 브라운의 외국 동화의 이야기 이다.

커다란 솥과 솥에 넣을 물, 그리고 돌멩이 세 개로 시작했던 수프. 하지만 아무리 돌멩이로 만든 수프라 해도 소금과 후추로 간을 하는 것은 기본이다. 거기에 당근이 조금 들어가면 어떨까. 양배추는? 거기에 쇠고기 약간만 넣어도 부잣집 식탁에 오를 훌륭한 요리가 된다. 보리 조금하고 우유 한 잔만 있다면 임금님도 좋아할 요리가 완성될 것이다.
전쟁을 거듭하는 동안 허기를 달래기 위해 군인 무리는 마을을 들르지만, 사람들은 군인들을 반기지 않는다. 군인들이 도착하기 전부터 먹을 것을 죄다 숨기고 배고픈 표정을 지어 보인다. 마을 사람들의 마음을 눈치 챈 군인들은 지혜를 발휘해 돌멩이 수프를 끓이기로 한다. 그리고 '돌멩이 수프'라는 말은 사람들의 호기심을 자극하고, 도대체 어떤 수프가 탄생할지 기대하게 만드는 동시에, 완성을 위한 재료를 꺼내게 만든다.
Tip 5. 변화의 촉매가 되라.
마을 사람들(팀원)들은 새로운 시도나, 내가 원하는, 주장하는 방식의 개발 방법으로 변경하는 것을
동의하지 않거나, 변화를 원하지 않는다.  매너리즘에 빠진 팀원들에게 변화의 촉매가 되어야 한다.
새로운 기능을 구현,개발하였을때는 메일로 공지하는 문서를 작성 후 배포하도록 하자.
More code가 아닌 지금과 다른 방법으로 구현할수도 있으며 낫다는 것을 배포후 코드 리뷰를 통해
전달 할수 있도록 하자.


Tip 6. 큰 그림을 기억하자.
어디까지나 팀 플레이고, 커뮤니케이션이 필요하며 고립되어선 안된다.
큰 그림(현재 개발팀의 목표 또는 회사의 목표)에 늘 주의를 기울이자.
개인적으로 개발하고 있는 스킬 또는 기술에만 집중하지 맣고, 주변에서
무슨 일이 벌어지는 지속적으로 살펴보자
.
저작자 표시
신고
Posted by 영겁회귀

깨진 창문 이론이란 경미한 범죄를 단속하는 것으로, 더 큰 흉악범죄를 막는다고 하는 범죄/사회적 이론이다.
일반적이고 안전한 사람들이 사는 공간에서 어떤 건물의 하나의 유리창이 깨졌다고 할때, 이 깨진 창문을
교체하거나 덮어 놓지 않고 방치하게 되면, 또 하나의 유리창이 깨지게 되고 연이어 많은 유리창이 깨지고
지저분한 낙서가 벽을 덮고, 안전하기 않은 사람들이 몰려들고 반대로 사람들은 떠나게 되고, 위험한 사람들이 모여들고 사고가 발생하여, 결국 지옥같은 장소가 되어 버린다는 이론이다.

웹페이지를 개발할때도 비슷한 상황을 겪게 된다.
팀원이 적거나 혼자서 개발을 할지라도, 명확하게 결론을 내지못한 코드(흐름), 시간에 떠밀려 재빨리
C&P로 개발한 페이지들은 허점을 가지게 되고, 이 허점은 언젠가는 문제를 야기하게 된다. (Broken Window)  

나의 의지와는 상관없이 비슷한 로직의 페이지에 코드가 복사되어 지고
여기 저기의 창문은 깨어지게 되고, 허점 투성이 웹어플이 만들어 지게 된다.

'깨진 창문'(나쁜 설계, 잘못된 결정, 혹은 형편없는 코드)을 고치지 않은채로
내버러 두지 마라. 발견하자 마자 고쳐라. 적절히 고칠 시간이 충분치 않다면
판자로 덮는 것이라도 하라. 불쾌한 코드를 주석처리 하거나, '아직 구현되지 않았음
(Not Implemented)라는 메세지를 표시하건, 가짜 데이타로 대치해 놓거나 하라.
더 이상의 손상의 예방하기 위해 어떤 조치든 취하고 현 상황을 잘 관리하고 있다는
것을 보여줘라
.


 바로 고치거나, 덮지 않으면 (덮는 것도 팀원이 덮어놓은 유리창을 여러개 더 만들 가능성이 매우 크기 때문에 좋은 선택은 아닌듯 하다) 모든 유리창이 꺠지는 것은 시간문제다!.

신고
Posted by 영겁회귀

티스토리 툴바