Post

http://scienceon.hani.co.kr/66101



Post

좋은 사수는 어떤 사람인가요? 라는 질문을 받은 적이 있어서 이렇게 개인적인 생각을 끄적여 봅니다.

인터넷 상에도 좋은 사수분들이 많이 계십니다.

그런 분들에게 뭔가 배우실려면
1. 질문을 잘해야 합니다. 질문을 잘 하기 위해서는 스스로도 뭔가 많이 알고 고민하고 찾아봐야 합니다.
2. 문장력이 좋아야 합니다. 제대로 질문을 하기 위해서는 문장력이 좋아야 합니다.
3. 영어를 잘하게 되면 그루급의 개발자들과 소통할 수 있습니다. 애플 포럼에서는 WWDC에서나 보는 애플 엔지니어가 막 대답해주고 그럽니다.
(에플 엔지니어 옆에는 에플마크가 있죠. 실제로 보면 풍기는 포스가 남다릅니다.)

그래서 저는 회사를 고르실 때 사수가 누구냐에 그렇게 우선순위를 두지 않습니다.
iOS개발의 최고의 사수는 애플문서입니다.

"사수"란 것은 "나보다 현업에 조금 일찍 들어온" 개발자라고 생각합니다.
꼭 같은 회사 같은 조직에 있을 필요가 없죠.

"좋은 사수"란 칭호는 스스로 만드는 것이 아니라 주변에서 "주는" 칭호겠지요.
좋은 사수란 부사수와 함께 같이 공부하고 같이 의견을 나누고 같이 발전한다는 오픈 마인드를 가진 개발자라고 생각합니다.
부사수에게 "틀렸어!" 라고 말하기 보다는 "이건 이렇게 하는 것이 좋지 않을까?" 라고 의견을 말하는 사수.
부사수에게 "업무지시" 를 하는 사수보다는 "공동된 목표를 향해 함께 개발을 한다" 라는 마인드를 가진 사수.
정도인 것 같습니다.

내공이 높은 사람은 아무말 없어도 옆에만 있어도 그 포스가 느껴집니다.
그리고 왠지 모를 듯한 존경의 마음이 스스로 가지게 되더군요.
저는 그런분 한번 만나서 2년정도 같이 일한적이 있었네요.
파트가 달라서 개발에 관련된 직접적인 지도를 받은 건 없습니다만 그냥 점심시간에 밥먹으면서 퇴근 후에 저녁먹으면서 이런저런 개발에 관련된 이야기를 즐겁게 하고 개발이 정말 재미있구나 라고 생각하게 되었네요.
개발에 재미를 느끼면 업무효율도 자연스레 오르게 됩니다. 하지 말라는 야근도 하고....
실력을 갖춘 그리고 순수하게 개발을  즐기고 열정적인 눈빛을 가진, 그리고 즐겁게 개발 이야기를 나눌 수 있는 사람이라면 저는 "최고의 사수"라고 생각합니다.

부사수를 혹독하게 굴려야 한다는 철학을 가진 분들도 많이 봅니다.
아님 하나에서 열까지 모두 가르쳐 줘야 한다는 분들도 많구요.
그렇게 하면 부사수 애들이 빨리 성장해서 실무에 바로 투입하게 될 수 있게 됩니다.
그러면 당장은 사수도 좋고 부사수도 좋아라 합니다.
그런데 이렇게 큰 부사수분들은 나중에 빠르게 한계에 봉착하게 됩니다.
스스로 문제를 해결할 수 있는 능력이 현저하게 낮을 뿐더러 근본적으로 개발에 대한 재미를 느끼지 못하지 못하게 되지요.
이런 사수가 나쁘다고 말하는 것은 절대 아닙니다.
비용과 효율을 최대로 생각해야 하는 조직에서는 이런분들이 오히려 중요합니다.

다만 거시적 장기적 입장에서는 개인적인면으로는 그리 좋은 사수가 아닙니다.
스스로 문제를 생각해주게 하고 정말 힘들어 할 때는 정답보다는 약간의 가이드와 힌트로써 도와주고 결과적으로 함께 개발을 즐기게 하는 사수가 최고의 사수라고 생각합니다.



Post

원본: http://sijinjoseph.com/programmer-competency-matrix/


출력용: http://www.idallen.com/programmer_competency_matrix.html




Post

3주_IT서비스 사업에 임하는 경영진의 준비(박준성교수,KAIST) [ 제작:무비라이크.010-2695-9910 ] from J Producer on Vimeo.


Post



이 슬라이드 내용 중에 공감하지 못하는건

'영어'....

프로그래머가 코드로 이야기 한다니.... 

그건 오픈소스 커뮤니티에서도 이름을 날릴 수 있는 특급 개발자에 한정된 이야기고,

적당한 고급 개발자 까지라면 미국에서 일하기 위해선 영어는 필수입니다.

인도 개발자들 머리좋고 실력좋고 영어도 잘하고 인건비도 내국인에 비해서 저렴합니다.

그래고 인도내에서도 IT 개발자 집중 양성 코스도 있구요.

영어못하는 한국인 개발자를 고용할 이유가 없습니다.


Post


출처: http://www.allofsoftware.net/2013/07/blog-post_31.html



공짜 점심이 개발자를 행복하게 할까?



이글은 제가 씨넷코리아에 게재한 칼럼입니다. 새로 시작하는 씨넷코리아에 많은 관심 바랍니다.


최근에 국내 유수의 소프트웨어 회사들의 구조조정 회오리를 보면 착찹한 생각이 든다. 척박한 우리나라 소프트웨어 환경에서 참신한 개발문화를 도입하고 새로운 모습을 보여주려고 했던 회사들이어서 더욱 안타깝다.

필자는 이런 현상의 결과와 겉모습만 말고 다른 시각에서 좀 더 근본적인 원인을 살펴보고자 한다.

3D 취급을 받고 있는 국내 소프트웨어 개발자들은 잘나가는 실리콘밸리의 소프트웨어 회사들과 높은 연봉을 받는 소프트웨어 개발자들이 부럽지 않을 수 없다. 종종 그런 회사들의 끝내주는 개발 환경이 부러움을 사곤 한다.

공짜 점심, 자유 출퇴근 제도, 공짜 커피, 편안한 사무실, 환상적인 휴게실/오락실/수영장, 선택 가능한 재택근무 등이 그것이다. 물론 회사마다 다르기는 하다.

우리도 개발자들에게 이런 공짜 점심 등의 혜택과 환경을 제공하면 개발자가 행복해질까? 회사는 더욱 성과를 낼 수 있을까? 뛰어난 개발자들이 모여들까? 


단순히 겉모습만 따라 하는 것은 단기적으로 효과가 있을지 모르지만 장기적이고 근본적으로는 해결책이 아니다.

여기서 우리는 착각하는 것이 있다. 그들이 제공하는 끝내주는 개발환경은 공짜가 아니다. 개발자가 예뻐서 주는 것이 아니다. 그들의 환경, 개발 문화, 개발 프로세스에 맞게 가장 성과를 잘 낼 수 있는 환경을 제공하고 있는 것이다. 

사무실 주변에 식당이 널려 있는 우리나라와는 다르게 실리콘밸리에서는 차를 타고 점심을 먹으러 가거나 샌드위치를 사다 먹어야 한다. 매번 차를 타고 점심을 먹으러 가는 것은 엄청난 시간 낭비이기 때문에 회사에서 공짜 점심을 제공하는 것이 회사에 더 이익이다. 실리콘밸리 회사들은 공유의 문화를 기반으로 수많은 리뷰가 있고 얼굴을 보지 않고도 효율적으로 일할 수 있는 프로세스와 시스템이 갖춰져 있다. 재택근무와 자유 출퇴근을 통해서 뛰어난 개발자를 효율적으로 활용할 수 있다. 이런 끝내주는 환경은 개발문화와 프로세스가 맞물려 나온 결과물이지 목적은 아니다. 

우리나라에서는 환경은 전혀 그렇지 않은데 그 결과나 겉모습만 따라 하면 회사가 잘 되기는커녕 자칫 악화를 초래할 수도 있다.

내가 생각하는 개발자가 진정으로 행복하게 일할 수 있는 환경은 좀 다르다. 개발자가 합리적으로 일할 수 있는 환경이 행복한 개발자가 될 수 있는 환경이라고 생각한다.

합리적인 커뮤니케이션이 가능하고, 개발자의 기술적인 의견이 존중되고, 적절한 개발 일정이 믿어지고 보장되며, 필요한 적절한 리소스가 제공되며, 빈번한 요구사항 변경으로 수많은 야근과 아키텍처가 산으로 가는 일이 없고, 개발자의 노력에 대한 적절한 보상이 이루어지고, 개발자 경력이 보장되는 환경이다. 물론 개발자도 그렇게 할 수 있는 역량이 있어야 한다.

좋은 복지 조건은 뛰어난 개발자를 유치하는데 도움이 되지만 아무리 뛰어난 개발자가 있다고 하더라도 비합리적인 환경에서 일한다면 효율적으로 개발이 되지 않을뿐더러 회사가 어려워 지면 좋은 복지가 오히려 회사의 발목을 잡는다.

나는 공짜 점심을 주는 것보다 경영진이 소프트웨어에 대해 좀더 이해를 하고 아무 때나 함부로 요구사항을 바꾸지 않고 합리적인 개발일정이 받아들여지면 좋겠다. 나는 공짜 커피보다 더 빠른 PC와 개발에 꼭 필요한 기반시스템에 투자를 해줬으면 좋겠다. 그것이 개발자인 나를 더 행복하게 만든다.

실리콘밸리 회사를 따라 가려면 겉모습보다는 그들의 개발 문화를 먼저 따라 하자. 공짜 점심은 약간의 돈만 있으면 쉽게 제공할 수 있지만 개발 문화를 따라 하는 것은 그보다 10배 100배 더 어렵다. 결실을 보는데 시간도 훨씬 오래 걸린다. 개발 문화를 따라 하는 방법은 책을 보고 배우기 어렵기 때문에 제대로 하더라도 5년, 10년 이상 걸릴 일이다. 그들이 50~60년 걸쳐서 쌓아온 문화를 단시간에 따라 잡기는 어렵다.

많은 회사들이 중요한 개발 문화 중 하나인 공유 문화를 따라 하려고 했지만 대부분은 겉모습 흉내만 내다가 정착에 실패를 했다. 또한 문화의 핵심은 모른 채 겉으로 드러나는 기법들만 쫓다가 회의에 빠져들기도 한다. 이렇게 실패한 경우에는 시도하지 아니한 만 못한 경우도 많다. 이도 저도 아니고 어중간해서 더 혼란스럽게 된다.

나름대로 깨어 있다는 개발자들도 의욕은 넘치지만 자수성가로 성장한 탓에 동료들을 이끌어서 효율적인 개발문화를 정착시키기에 한계를 느끼고 좌절하기 일쑤다.

제발 겉멋들어서 겉모습과 기법만 따라 하지 말고 진짜로 개발자가 행복해 할 수 있는 환경을 만들어 보자. 그것이 처음에는 힘들고 더 오래 걸리더라도 제대로 될 길일 것이다.

가끔 왜 두루뭉술하게 얘기를 하고 구체적인 방법을 알려 주지 않냐고 하는 사람들이 있다. 이런 짧은 글로는 방법을 구체적으로 알려주는 것은 불가능하다. 태권도를 글로 알려줄 수 없듯이 개발문화도 실전 경험을 많이 한 선배들의 코칭을 받아 직접 몸으로 부딪혀 보고 경험해 봐야 하는 것이다.


Post


Post

출처: http://www.androidpub.com/2048035



안녕하세요? 비니아빠 바야바입니다.

일단 조회수를 위해 제목만 거창하게 달아봤습니다. 죽여주세요.

오늘은 제가 만든 온라인 게임들은 어떻게 만들어졌는지 진짜 간단하게 소개해보려고 합니다.

2G->3G->LTE
 거치면서 모바일 네트워크 성능은 점점  진화하고 있고,

앞으로 모바일 온라인 게임이 마켓의 트렌드가 자리잡을 날도 머지 않았기 때문입니다.


1.
 게임 서버 

알까기 온라인의 초창기 시절에는 집에서 개인PC 한대를 서버 전용으로 돌렸습니다.

동접이 늘어나서 향후에는 17만원 상당의 서버 호스팅 서비스를 이용했구요.

알까기, 장기, 오목, 탱크가디언까지 4 온라인 게임을 1대의 서버에서 모두 실행했습니다.

최근에 개발한 치킨팝 온라인은 KT 클라우드 서비스를 이용하고 있는데 성능은 괜찮습니다만,

KT
측의 클라우드 서비스가 죽어서 2 정도 서비스가 중단되는 사태가 있었습니다.


게임 서버는 윈도우 서버를 사용했고, Visual C/C++ 이용해 서버당 동접 3천명을 처리하도록 개발했습니다.

알까기는 최대 1700명을 기록했고, 장기가 900, 오목이 250, 탱크는 150 수준을 기록했습니다.


게임 서버의 스레드는 이벤트 방식으로 원스레드 방식을 썼습니다.

Z9
별이라는 MMORPG 개발할 당시에는 멀티스레드를 사용했습니다만, 제가 만든 게임들은 모두  게임였기 때문에 

필요성이 느껴지지 않아서 그냥 원스레드로 개발했고, 성능에도 아무런 문제가 없었습니다.


2.
 데이터 베이스 

게임의 DB 윈도우 서버라서 MS-SQL 썼습니다.

다만 서버 호스팅 비용보다 MS-SQL 임대 비용이  비싼 관계로,  6,900원짜리 DB호스팅을 이용했습니다.

그럭저럭 사용할 만한 수준은 됐습니다만, 역시 전용 DB 없으니 속도상 느린 것은 어쩔  없더군요.

DB
호스팅을  후에, 게임 서버와 ODBC 연결하여 쿼리를 날렸습니다.

MySQL
  편하신 분들은 MySQL 쓰셔도 아무런 문제가 없습니다.



3.
 소켓과 프로토콜 

온라인 게임을 만들려면 서버에서 TCP 소켓을 열고 패킷을 주고 받아야 합니다.

제가 자바를 할줄 몰라서 그렇긴 합니다만, 자바로도 충분히 게임 서버를 만들  있을걸로 생각됩니다.

게임 서버에서 TCP 소켓을 열고, 패킷을 주고받을 프로토콜이 완성되면 

안드로이드 클라이언트에서 서버와의 통신을 위한 스레드를 하나 만듭니다.

게임이 돌아가는 동안에도 네트워크와 계속 통신하면서 데이터를 보내고 받아오고 해야 하기 때문입니다.

socket.setSoTimeout( 60000 );
socket.setTcpNoDelay( true );

저는 클라이언트의 소켓 옵션을 2가지 지정했습니다.

모바일의 네트워크 상태는 아직 불안정하기 때문에 setSoTimeout 시간을 60 정도 지정해주었고,

setTcpNoDelay
 true 셋팅해서 패킷을  기다리지 않고 곧바로 보내도록 지정했습니다.


서버에서 오는 패킷을 받기 위해 10000 바이트의 버퍼를 만들어서 데이터를 쌓았습니다.

쌓여진 데이터의 선두부터 체크해서 1개의 패킷이 구성될  있을 만큼 데이터가 쌓였으면 패킷을 처리하고 

다음 패킷의 크기만큼 쌓일때까지 계속 스레드를 돕니다.


여기서 중요한건 통신 스레드에 Sleep 어느정도 걸어줘야 한다는 겁니다.

안그러면 폰에 따라 게임의 속도에도 영향을 주게 됩니다.  같은 경우는 Thread.sleep( 100 ); 해줬습니다.


4.
 데이터 구조 

저는 서버와 주고 받은 모든 값을 byte 배열로 처리했습니다.

패킷에 char, short, int 등의 데이터를 byte 단위로 쉬프트 연산해서 1바이트씩 쪼개서 배열에 차례대로 넣고,

문자열을 보내야  경우에도 문자열을 byte 데이터로 바꾸어서 전체 길이 만큼 배열에 추가시켰습니다.

서버에서 보내지는 데이터도 당연히 byte 배열이고, 배열 내용에서 다시 char, short, int, 문자열 등을 추출합니다.

한가지 기억해두셔야  것은 안드로이드가 사용하는 문자열은 UTF-8이고, 윈도우 서버에서 사용하는 문자열은 

아스키 코드라는 점이죠. 그래서 서버에서 받은 문자열을 사용하려면 코드 변환을 해줘야 합니다.

반대로 서버에서 클라이언트로 문자열을 보내려면 역시 반대로 코드 변환을 해줘야 하고요.



5.
 온라인 게임 제작시 주의할  

안드로이드의 네트워크 기능은 아직 불완전 합니다.

3G
 WIFI  켜져 있을 경우, WIFI 꺼지고 3G 잡히던가 하면 서버와의 접속은 여지없이 끊어집니다.

여러가지 해결책이 있겠습니다만, 일정 시간마다 클라이언트가 서버로 라이브 패킷을 보내도록 해서 

일정 시간 이상 피드백이 없으면 네트워크 상태가 고르지 못한 것으로 간주하고 연결을 끊어버리거나,

게임 화면을 그대로 유지하면서 접속만 다시 시도하는 방법 등이 있겠습니다.

온라인 게임은 유저끼리 승패를 겨루는 경우가 많기 때문에 이런 처리가 없으면 상대방이 연결이 끊어졌을때,

다른 한쪽은 하염없이 계속 기다리고 있어야 하는 불상사가 생깁니다.

연결이 끊어지면 끊어졌다라는 신호라도 서버로 바로 보내주면 좋으련만, 안드로이드는 그런 친절함은 없어 보입니다.



이상입니다.

 

온라인 게임 개발에 대해 궁금하셨던 분들에게 약간이나마 도움이 되셨길 바랍니다.


Post

출처: http://www.ppomppu.co.kr/zboard/view.php?id=humor&no=124605



작은 게임 개발 업체의 팀장입니다.

 

약 5년간 지금의 회사를 다니면서 작년부터 야근을 거의 없애다 시피 했습니다.

 

물론 저 혼자의 노력은 아니고 사장님부터 전 직원이 모두 합심해서 이뤄낸 결과지요.

 

그 과정을 잠깐 설명 드리겠습니다.

 



우리 회사의 경영진은 개발 업무에 대해서는 전혀 모릅니다.

 

그래서 개발 담당 이사를 빼곤 개발에 관한한 전혀 간섭하지 않습니다.

 

그런데 사장님이 어느날 그러시더군요.

 

"다들 죽어라 일을 하는데 왜 우린 예정일도 못 지키고 만드는 것 마다 버그 투성이에 

 

결과물에 대한 평가도 만족스럽지 못할까?"

 

다시 말해서 대체 열심히 일을 하는건 알겠는데 왜 성과가 없는거야?라는 거겠죠.

 

각 팀 팀장들이 이런 저런 이야기를 합니다.

 

그래서 사장님이 지시를 내렸습니다.

 

예정일을 지킬 수 있는 작업 프로세스 먼저 제시해봐라.

 

팀장들이 모여서 논의를 한 결과 다음과 같은 분석이 나왔습니다.

 



첫째,

 

개발 계획이 바뀌면 바뀐 순간부터 전체 예정일은 다시 산출해야 한다.

 



개발 담당 이사가 주로 일정을 잡는데 이사의 판단에 따라 개발 순서가 바뀌는 경우가 종종 있었습니다.

 

이 과정에서 많이들 헷갈리시는데 예를 들어서 A라는 3개월짜리 컨텐츠 개발 진행 중 2개월이 지나서 중단하고 B 컨텐츠를 만들면 다시 A컨텐츠를 개발하는데 1개월이 걸릴거라고 생각합니다.

 

천만의 말씀입니다.

 

B 컨텐츠로 인하여 게임 구조가 얼마만큼 바뀌었는가에 따라서 A는 개발 기간이 달라집니다.

 

그리고 처음부터 다시 만든다고 생각하지 않으면 어느 부분에서 버그가 나올지 아무도 예측 못합니다.

 

즉, 뭔가를 추가하거나 변경하고자 한다면 계획을 끝내고 다시 계획을 잡아서 진행해야 합니다.

 

그런데 게임 뿐 아니라 대부분의 IT 업계에서는 그렇게 안 합니다.

 

이 부분을 사장님께 이야기 드렸더니 앞으로는 무조건 승인된 것 먼저 완료 한 이후에 다시 계획 잡아서 진행하는 것으로 결정하셨습니다.

 



둘째,

 

개발과 테스트, 그리고 디버깅에 대하여 각각 일정을 별도로 잡아야한다.

 



아주 단순하게 스킬 하나를 만드는걸 예로 들어 보죠.

 

기획이 나오고 기획팀은 완료 보고 합니다.

 

기획서를 보고 프로그래밍 하는 동안에 그래픽 리소스 나오고 그래픽팀도 완료 보고 합니다.

 

그래서 다 얹어서 구동합니다.

 

구동 완료 되는 것을 보고 프로그램팀은 완료 보고 합니다.

 

전 팀이 다 완료 보고 했지만 업데이트는 못합니다.

 

왜? 그래픽 싱크가 안 맞고 밸런스 수치도 이상한데다가 가끔 클라이언트가 튕깁니다.

 

사장님은 묻습니다.

 

다 작업 끝나다면서 왜 업데이트 안돼?

 

그래서 다음부터는 개발과 테스트와 디버깅은 모두 각각의 일정을 잡기로 했습니다.

 



셋째,

 

일정은 개발자가 잡되, 일정내에 못 마칠 경우 야근을 하든지 집에서 하든지 개발자 스스로 잡은 일정에 대하여서는 책임진다.

 



마케팅팀에서 기획서가 나오면 한마디 합니다. 이거 3주면 만들지? 테스트 1주 하고 디버깅 1주하면 5주니까 넉넉잡고 1달 반 뒤에는 업데이트 할수 있겠지? 그럼 2주후부터 마케팅 준비하면 되지?

 

기획서도 제대로 검토 안해보고 답할수 없죠.

 

당연히 검토 해보고 대답하겠다고 합니다.

 

그러면 팀장회의에서 지.랄합니다. 능력없는 팀장 되는거 한순간이죠. 울며 겨자먹기로 알겠다고 합니다.

 

팀원 모아놓고 기획서 검토 들어가면 택도 없는 일정입니다.

 

방법 없죠. 팀장 권한으로 야근 지시합니다.

 

이런 악순환을 끊어야 된다고 이야기 했습니다.

 

사장님께선 테스트 끝나고 업데이트 준비되면 그때부터 마케팅 계획 잡는걸로 하라고 하십니다.

 



넷째,

 

기획은 기획자가 하고 기획서 검토는 실무진이 한다.

 



어느날 이사 중 한명이 팀장회의에서 이야기 합니다.

 

어느 게임에서 어떤 컨텐츠 업데이트 했더니 대박 났댄다 우리도 만들자.

 

기획은 그냥 갖다 배끼랍니다.

 

기획팀은 별 고민 없이 기획 합니다.

 

개발팀도 별 고민 없이 개발 합니다.

 

그래픽팀은 죽어납니다. 세계관도 없고 배경 설명도 없이 그냥 만들라고 하니 만듭니다.

 

테스트 해봤더니 재미 하나도 없습니다.

 

재미있게 하려면 다른 컨턴츠와 연계 방안을 찾아야 되고 몇가지 보조 시스템도 만들어야 됩니다.

 

배보다 배꼽이 더 크게 생겼습니다.

 

개발까지 끝냈는데 업데이트는 언제할지 모릅니다.

 

게임을 제일 잘 아는것은 기획자입니다.

 

게임이 어떻게 되어야 하는지는 그래서 기획자가 결정해야 됩니다.

 

사장님께서 이야기 들으시더니 기획단계를 두단계로 나눠서 컨텐츠 설명위주의 기획서 초안을 만들어 브리핑 하고 팀장회의에서 충분히 가치가 평가되면 그 다음에 개발에 들어가도록 하자고 하십니다.

 



마지막,

 

일정 중 테스트와 디버깅은 무한정 할 수 없으니 최대 기간을 정한다.

 



사장님이 위의 이야기를 다 결정하시더니 한마디 하십니다.

 

개발 한달하고 테스트 석달에 디버깅 반년 이렇게 잡으면 다른 부서에서는 아무것도 계획할 수 없게 되니까 테스트 및 디버깅의 최대 기간은 반드시 고정해야 된다고 하십니다.

 

그 이내에 끝내지 못하면 귀책 사유를 찾아서 그 팀에 불이익을 주겠다고 하십니다.

 

최종적으로 조율된 것은 개발기간의 절반을 추가로 테스트와 디버깅에 사용하는 것으로 확정 지었습니다.

 

즉 6개월 개발하면 3개월 이내에 테스트와 디버깅을 마치는 것이죠.

 



위와 같이 결정된 이후 3개월간은 야근이 더 늘어났습니다.

 

팀간 업무 협의 과정이 원활하지 않은것도 있었고 개발자들이 개발 기간 산출을 잘못한 경우도 많았습니다.

 

그리고 다음 3개월간은 야근이 점차 줄더군요.

 

그러더니 올초 들어서는 평시 야근은 완전히 사라졌습니다.

 



물론 사안에 따라 야근을 하거나 주말 출근을 하는 경우는 종종 있습니다.

 

그러나 한 개인으로 놓고 보면 야근은 한달에 1일 이내 정도이고 주말 출근은 5개월 동안 두번 있었습니다.

 





-----------------------------

 



야근을 해야 하는 원인은 아마 회사마다 다를겁니다.

 

그러나 그 원인을 찾아서 해소하는데에 전 직원이 다같이 노력해야 되는 것은 모든 회사가 같을 겁니다.

 



야근을 없애는 과정에서 개발이 무척 더디게 진행되는 것 처럼 보여서 6개월간은 정말 답답했습니다.

 

그 답답함 때문에 혹시 회사가 망하는 것은 아닐까 불안하기도 했습니다.

 

그러나 그 과정을 겪고 나니까 정말 잘 했다고 생각됩니다.

 



야근을 바꾸고 나서 얻은 것은 다음과 같습니다.

 



1. 일정을 잡을 수 있게 되었다.

 

2. 자신의 작업 결과물을 다시 분석해 볼 여유가 생겼다.

 

3. 왜 작업을 해야 하는지에 대한 분명한 이유를 공유하게 되었다.

 

4. 회사에 대한 애착이 생겼다.

 

5. 연애를 시작하는 사람들이 늘었다.

 



회사를 아끼고 사랑하신다면, 그리고 그만한 위치에 있으시다면,

 

야근을 없애는 것에 대하여 깊은 고민을 해보시기 바랍니다.

 



리더쉽에 관한 강의를 받던 중 다음과 같은 말이 깊이 와 닿더군요.

 



"문제가 생겼을 때 그 문제를 해결하는 방법은 문제가 생긴 사람이 가장 잘 알고 있다."

 



"리더쉽이란 가르치거나 이끄는 것이 아니라 앞으로 나아갈 방법을 찾을 수 있게 해 주는 것이다."

 









PS. 첨언 이지만 이것도 깁니다.. 스압 주의.. ^^;

 



야근이 우리 부서만 없어진것처럼 생각하시는 분이 있는데 


물론 아직도 야근 많이 하는 부서도 있습니다만 대부분의 부서는 야근이 거의 없어졌습니다.

 



그런데 이 야근이라는것이 필요할 때가 있기도 하고 아주 안 좋은 결과를 야기하기도 합니다.

 



먼저 야근이 필요할 때는 다음과 같은 경우입니다.

 



1. 반드시 오늘 또는 내일안으로 처리해야 하며 처리 되었을 경우 다음날은 충분히 쉴수 있을 경우 

 

2. 프로젝트 초반에 시간 = 작업량 일 경우 

 

3. 소수의 인원이 최대한 빠른 시일안에 처리해야 회사 전체가 움직일 수 있는 경우 

 



우리 회사도 초반에는 위와 같은 경우였기에 야근을 밥먹듯이 했었습니다.

 

그런데 이 야근을 하는 문화가 한번 형성되고 나니까 점차 악영향이 만들어 집니다.

 



프로젝트의 진행 초반에는 키맨들이 야근을 참 많이 하게 됩니다.

 

이들의 업무가 과중하기도 하고 회사 창립 맴버인 만큼 회사에 대한 애착도 강합니다.

 

일부는 지분을 갖고 있기도 합니다.

 

그렇게 프로젝트가 점차 점차 복잡해지기 시작하면서 첫번째 결과물이 나오게 됩니다.

 



이 결과물로 투자도 받고 사람도 뽑아서 조금 편해지는가 싶더니 다음 단계에 대한 압박이 시작됩니다.

 

그런데 여기서부터 문제가 시작됩니다.

 



우선 새로 입사한 사람들과 초반의 키맨들의 업무 시간에 차이가 발생합니다.

 

야근을 하면 당연히 다음날 늦게 나옵니다.

 

또한 키맨들이므로 팀장급이고 경영진과의 친분도 두터워서 누가 뭐라고 하기 어렵습니다.

 

그러면 그 팀의 팀원들의 업무는 관리 받지 못하게 됩니다.

 

또한 타팀과의 업무 협조도 원할하지 않게 됩니다.

 

출근시간도 들쭉날쭉하고 출근 직후에 회의를 갖는것도 아닌데다가 

 

다른 일들도 많아서 일정 조차 잡기 어렵습니다.

 



이렇게 팀 간에도 대화가 부족하고 팀원들 사이에도 대화가 부족하다 보니 

 

사소한 실수가 발견되지 않고 넘어가게 됩니다.

 



이 사소한 실수가 조금씩 쌓이면서 점점 복잡해지는 프로젝트를 좀먹게 됩니다.

 

처음에는 버그 하나 해소하는데 1시간이면 되던것이 나중에는 1주일이 걸려도 해소가 되지 않습니다.

 

처음에는 현상만 봐도 아 이게 문제구나 하고 바로 바로 원인이 유추 되던것이 

 

나중에는 로그를 다 뒤져봐도 원인을 못찾아서 헤메게 됩니다.

 



결국 치명타가 발생합니다.

 



테스트 중 서버가 멈춥니다.

 

원인 찾느라 분주합니다.

 

프로젝트 올 스톱입니다.

 

회사내의 분위기가 아주 험악해 집니다.

 

알아서 야근 합니다.

 

물론 다음날 지각합니다.

 

계속 이러한 현상이 반복됩니다.

 



못버티고 퇴사하는 사람들이 한마디씩 합니다.

 

그게 소문이 되서 회사내에 돌아다닙니다.

 

원래도 개인주의가 강한 성향의 개발자들이 점차 점차 더 소극적이고 더 개인적이 되어 갑니다.

 

협업 개념이 거의 실종되어 갑니다.

 

일정은 무조건 딴팀때문에 늦어지는 겁니다.

 



마침내 키맨 중 일부가 지칩니다.

 



아주 아주 중요한 사람이라고 생각되던 사람이 그만두면서 프로젝트가 흔들립니다.

 

어떻게 어떻게 비슷한 실력자 델고 옵니다.

 

당연히 전임자가 무엇을 잘못했는지를 지적하고 그걸 고치자고 합니다.

 

순식간에 전임자는 나쁜놈 됩니다.

 



여지껏 진행된 과정을 정확히 모르는 상태에서 맘에 안 드는 것을 뒤집으려 합니다.

 

당연히 시간이 부족해지고 그래서 야근은 그냥 일상화 되어 버립니다.

 



또 다른 키맨이 지칩니다.

 

그런데 이사람은 안 그만두고 그냥 회사에서 놉니다.

 

가끔 정말 중요할 때에는 눈부신 활약을 하면서도 그 외에는 그냥 놉니다.

 

경영진은 아주 가끔씩 그 눈부신 활약을 보이는 것 때문에 뭐라고 말을 못합니다.

 



새로온 키맨과 태업하는 키맨이 충돌합니다.

 

드디어 배가 산으로 가기 시작합니다.

 



이 모든 과정의 원인이 야근 때문이라고 한다면 당연히 말도 안되죠.

 



정확히 말하면 개발 프로세스가 정립되지 않았기에 생기는 현상이고 

 

개발 프로세스가 잘 정립되었는지 알수 있는 방법이 바로 야근입니다.

 

개발 프로세스가 제대로라면 야근을 하는것은 개인의 선택이 되지만 

 

그렇지 않다면 회사의 강압이 되기 때문입니다.

 



어떤분이 댓글에 쓰셨던데 폭포수 이론을 누구나 알고 있습니다만 

 

어떻게 적용해야 하는지는 다들 잘 모릅니다.

 

그래서 다 같이 고민하고 노력해야 하는 겁니다.

 

누구 한명이 잘나서 고칠 수 있는 문제가 아니라 

 

문제라고 인식되면 충분한 설명을 통해서 그걸 문제라고 직원 전체가 동감해야 하는겁니다.

 



우리 회사는 지각이 문제라고 다들 이야기 했고 지각의 원인은 야근이라고 다들 동감했습니다.

 

사장님은 지각을 먼저 고쳐보고자 했으나 실패했었고 그럼 야근을 없애보자고 해서 성공했습니다.

 

그래서 이젠 지각과 야근이 거의 없어졌습니다.

 



아침에 정시 출근하면 사무실의 절반이 비어있던 시절이 우리 회사도 있었습니다.

 

저녁 7시 반쯤 저녁 시켜먹자고 하면 절반 정도가 메뉴 고르던 시절이였죠.

 

지금은 둘다 사라져가고 있습니다.

Post

출처: 네이버 까페 '맥부기' |  카일 Kyle 님의 글

원문: http://cafe.naver.com/mcbugi/193273



이런 얼굴가리고 부정클릭 유도하는 훼이크 광고 때문입니다. 

화면가리는 광고를 넣고 클로즈버튼을 두개 만들어 UX를 기만하는 가짜닫기를 위치시켰네요.

저 광고를 보겠습니까? 새창열리는거 보고 짜증내며 닫아버리죠. 그냥 클릭수만 늘리는거죠.

이러니까 광고주로 부터 신뢰성을 잃게 되고 웹광고가 효과가 없어지는 것이죠.

z무슨무슨무슨디net들어가지기 싫어집니다. 방문자수/페이지뷰가 생명인 웹광고에서 독자도 잃게 되죠.

거기다가 각종 신문사 사이트들이 채택중인 마우스 따라다니는 광고부터

 글중간에 자주뜨는 팝업광고로 기사를 못 읽게합니다.

기사를 읽지 못하는 신문사를 방문할 이유가 없습니다.


모바일 앱광고에서도 이런 행태가 자주 보입니다. 

화면을 탭하는 터치화면의 장점을 광고옆에 버튼 작게 딱 붙이기 이런 부정클릭 유도하는 게 바로 그런 것이죠.

앱이 훌륭한 컨텐츠로 인기를 끌면 광고주로 부터 직접 연락이 오거나, 광고주에게로 영업활동을 펼칠 수도 있는데

제가 광고주면 그런앱에 절대 광고 안넣습니다. 

광고주로 부터 신뢰성을 잃어 우리 스스로의 시장을 망치는 짓을 하지 말았으면 좋겠습니다.


우리나라 뉴스사이트에는 이런게 너무 많아요. 

광고도 너무 많고 질이 떨어집니다. 임플란드, 탈모 이런광고는 굳이 다른 이미지 써도 되는데 밥맛떨어지는 사진 붙여놓고

도대체 좋은 광고도 못 만드는 이들은 뭘까요. 그런 사진을 클릭하길 바라고 있는게 신기하네요.

사람은 실제의 자신보다 잘나온 스스로의 사진을 원하듯 컴플렉스가 클 수록 이상에 대한 동경이 큽니다.

이미 알고있는 초라한 현실을 굳이 상기시켜주는걸 원하지 않죠. 

즉, 머리빠진사진의 탈모광고보다 풍성한 머리칼의 탈모광고나 

이빨빠진 임플란트,썩은이빨보다 하얗고 빛나는 사진이 그런 이상이란 거죠.



웹사이트 운영입장에서 저런 화려하기만 하고 실속없고 얼굴가리는 광고 넣어봐야 좋을게 없다는건

많은 사례와 환경이 말해주고 있습니다.


첫째로 시대는 바야흐로 스마트폰의 시대가 이미 왔고 전성기를 향하지만 저들에게는 그림의 떡입니다.

데스크탑환경보다 열악한 통신속도, 작은 화면의 스마트폰에는 넣을 수 없는 얼굴가리는 광고,

모바일 환경에 전혀 어울리지 않기에 자신들의 광고영역을 넓히지 못합니다.


둘째로 페이스북의 부흥과 마이스페이스의 몰락사례입니다.

마이스페이스가 원조로 들었고 그 시작은 좋았습니다. 다른 회사에게 인수된 후로 광고를 넣기 시작했죠. 

주로 성인광고가 많았고 홈부터 시작해서 가입하면서도 눈살이 찌푸려집니다.

반면 페이스북은 광고라는걸 찾아보기 힘들 정도였죠. 페이스북은 광고도 합니다.

 하지만 자신들의 컨텐츠를 망치지 않는 선에서 유지했죠. 

비주얼광고는 줄이고 다른 수익화방법을 모색함으로써 페이지의 덩치를 줄였고 

빠른 웹페이지 로딩으로 모바일 환경에도 잘 어울렸습니다. 기술력도 좋았고요.

그결과 페이스북을 빼놓고 SNS를 논할 수 없게 되었습니다.


셋째로 네이버의 홈화면 광고의 가치입니다.

신문사들은 광고만 일단 많이 넣고 부정클릭이던 뭐던 일단 광고 많이 받습니다.

광고주로부터 광고페이지를 차지하기 위한 경쟁의 매력이 없죠.

네이버의 경우 컨텐츠가 풍부합니다. 많은 무료서비스로 소비자들을 끌어냈죠.

지식인, 네이버키즈 등등 그 결과 명실상부한 1위의 자리를 했고

신문사웹페이지 같은 홈화면에 얼굴가리고 이런광고를 넣지 않아도 되게 되었습니다.

광고가격이 비싸서 잔챙이광고주는 받지 않아도 됩니다. 아니 엄두도 못 내는게 맞겠죠.

네이버의 홈화면 광고는 '경매'를 통해 이루어지기도 해서 그 가격이 어마어마 하기도 합니다.


사용자 배려에 대한 구글의 성공 사례도 있습니다.

구글홈에는 광고가 없다는거 다들 아실겁니다. 검색광고로 엄청 벌죠.

그 것을 위해서 사용자우선의 컨텐츠 제공이 앞서있습니다. 수많은 서비스를 개인에게 무료로 제공해서

사용자를 많이 확보하고, 텍스트위주의 광고로 빠른 웹페이지의 소모가 그것이죠.

웹페이지 속도가 빠르니 페이지뷰도 많고 광고소비도 빠릅니다. 검색맞춤광고도 한몫하죠.


그리고 소비속도의 중요성이라고 해야하나 치약회사의 사례가 있습니다.

구글이 빠른브라우저 크롬을 만들게 된것과 같은 맥락인데요.

우리나라의 럭키치약이었는지는 기억이 잘 안나지만

60년대? 70년대? 이때 까지만해도 치약뚜껑을 열면 오라메디 처럼 알류미늄으로 막혀있고

 사용자가 이걸 구멍을 뚫어 치약을 쓰는 형태였다고 합니다.

그당시 럭키치약은 시장의 70% 점유율을 기록했다고 합니다.(수치는 맞는지 모릅니다.)

시장의 대부분을 장악하자 더이상 매출상승률은 없었습니다. 비슷한 수치의 소비자가 비슷한 치약소비를 했죠.

그래서 고민한게 사용자는 이미 최고치를 확보했고 어떻게 하면 치약을 더 빨리 쓰게 할까 해서 나온게

뚜껑의 알류미늄막을 없애는 거였죠. 사실 바늘구멍크기로 뚫어서 조금만 써도 양치질에 문제가 없는데

출고때부터 구멍을 크게 만들어 버리고 광고에서도 칫솔모 전체를 덮어버리는 치약광고를 통해서

원하던 빠른소비를 실현해 매출이 상승했습니다.


요지는, 컨텐츠와 사용자배려가 우선이라는 것을 알고 , 

오히려 돈 몇푼에 스스로의 컨텐츠와 시장을  망치지 말았으면 합니다.


▲ top