-
왜 개발자들이 짤리는걸까?기술 2009. 9. 22. 11:14
http://itmanagement.earthweb.com/features/article.php/3839981/Why-Developers-Get-Fired.htmWhy Developers Get Fired
September 20, 2009“You’re fired!”
ByEric Spiegel
“당신 해고야!”어떤 개발자도 ,특히 느낌표와 함께, 듣고 싶지않은 말이다. 아마도 당신에겐 절대로 일어나지 않을거라 생각할 것이다.
정말?
언젠가 짤릴수 있다고 생각할 때 머리 속을 가로지르는 안도감이 있는가??
“난 여기있는 다른 누구보다 똑똑해.”
“모두가 날 너무 좋아해.”
“난 이 시스템에서 유일한 전문가지.”
“난 옛날 좋았던 시절부터 우리 사장의 비리 사진을 가지고 있지.”
글쎄, 마지막 건 통할지도 모르겠지만, 협박죄로 감방에 가지 않을때 이야기다. 결국 해고다.
난 몇년간 강하게 배워왔는데, 당신이 얼마나 똑똑하다고 생각하던, 팀원 모두가 당신을 얼마나 좋아하건 전혀 관계없다. 사실은 당신의 소중한 머리에 도끼가 내려찍히는 잠재적인 환경은 언제나 있다.
때때로 이런 종말과 같은 일을 당신이 통제할 수도 있다. 때때로 그건 버스 땜에 옆이 안 보이는 것과 같은 상황이고.
그래서 왜 개발자들이 짤리는가?내 경험으로 부터 말하겠다. 난 개발자를 잘라본 적도 있고 잘려본 적도 있다 (비록 조직 개편의 희생양이긴 했지만)
양 쪽 다 더러왔다.
관리자로써 다른 사람을 자르는 것은 끔직한 경험이다. 눈물이 앞을 가린다고 생각하는거 안다. 모든 이야기엔 쌍방이 있음을 기억하라.
관리자가 모든 옵션을 다 써먹었다고 느꼈더라도 그건 참 신경쓰이는 일이다. 그 사람이 어떻게 반응할지도 모른다. 그의 가족들도 생각난다. 이렇게 되지 않도록 관리자로써 할 다른일이 있는게 아닐까 생각도 든다.
짤리는 측의 테이블에서는, 당신의 기분은 그 대상이 당신인지 아닌지에 달려있다. 그걸 당한 사람은 얼굴이 돌처럼 굳거나 썩소를 짓는다 (이 경우엔 반대편의 끔찍한 기분을 좀 덜어준다).
당하지 않은 사람의 입장에서는 - 음..안 좋은걸 봤군. 그 사람의 삶에 어떤일이 벌어질지에 따라, 해고에 따른 스트레스 증가는 멍하게 하거나, 분노를 폭발하거나, 울거나, 심지어는 웃게한다 (웃는게 가장 무서운 반응인데, 왜냐면 공포와 아픔을 누르는게 언젠거 터질수 있음을 알기때문이다). 하지만 진실은, 만약 관리자가 내보내기 전에 경고를 주는 일반적인 방식을 취했다면 아무도 놀라지 않을 것이다. 하지만 어떤 사람들은 진짜로 자기 머리를 땅(또는 자기 코드)에 쳐박고만 있다.
그들은 그런 일이 절대로 자기에게는 일어나지 않을거라 믿는다 - 특히 그런 걸 보지도 못한 젊은 개발자들이 그렇다.
짤리는 걸 막는 법 (세가지 이유)이제 세가지 이유와 안 짤리기 위해 할수 있는 것을 살펴보자.
아주 노골적으로 시작해보자. 만약 당신의 일이 계속해서 좋아지지 않는다면, 당신은 결국엔 희생된다. 단지 몇번의 납기 미준수 만으로도 관리자는 선택의 여지가 없다. 왜냐하면 '당신도 알잖아'가 당연하다. 관리자가 할 수 있는건 수많은 고객 불만과 위로부터의 질책을 흡수해 주는것 뿐이다.
왜 이리 될줄 몰랐나? 납기 미준수가 당신 잘못이 아니라고 생각할 수도 있겠지. 당신은 '설계가 나빳어요' 라던지 '납기가 비현실적었어요; 또는 '난 .net 전문가 인데 나한테 java를 시킨거잖아요'와 같이 변명할 수도 있다.
뭘 기대하나? 변명이 문제가 아니라 결과가 문제일 뿐이다.
당신의 납기가 항상 늦다면 관리자와 같이 앉아서 해결책을 찾을 필요가 있다. 상황이 저절로 좋아지리라 짐작하지 마라. 에이전트를 바꿔야 할 뿐 아니라, 잘못된 조건을 개선하기 위해 한 모든 행위를 문서화할 필요가 있다.
CYA(cover your ...당신의 똥꼬를 덮어줄)라고 이름붙인 이메일 폴더를 만들기를 권한다. 이 폴더가 당신이 C-YA(Can Your ...당신의 똥꼬를 막는) 상황으로부터 구할 수도 있다.
모든걸 저장하라 - 하드디스크 는 싸다.
개발자들이 문으로 나가야 하는 두번째 이유는 자신의 업무에 따른 엄청난 결과를 남과 나누지 않는거다. 당신의 안전한 자리에서 수천 줄의 코드를 만들어내면 자기 자리가 보전되리라 생각한다면, 생각을 바꿔라. 당신이 한 일을 띄워라.
그래, 자랑하란 소리다.
당신이 해낸 것을 팀의 다른 사람이나 관리직과 나누는데 항상 관리자에게 기댈 수는 없다. 그 방정식에서 관리자를 빼고 팀 멤버들이 '이 달의 코드' 상을 줄때의 추천 과정을 직접 시작 해라.
다른 사람에게 닭살 돋는 소리도 하고, 수상자와 그 업적을 회사 게시판이나 이메일 배포처에 올려라.
관리직의 다른 사람이나 고객과 당신이 해왔던 걸 은근히 이야기 해도 된다. 당신이 잘 해왔다면 소프트웨어가 개선되었을때 그 영예를 당신이 받을 수도 있다.
개선책이 성공적이지 않다면? 이 경우도 당신이 다른 사람 앞에서 누군가를 헐뜯지는 않았기 때문에 별 문제가 안된다.
한가지 조언을 하자면, 다음번에 더 나아질 수 있는 것들과 그 문제의 해결을 위해 얼마나 팀과 함께 하고 싶은지를 공개적으로 이야기해라. 하지만 계속 이렇게 유지하는 데 실패한다면 위에 내가 제시한 첫번째 이유에서 나온 행동에 따르라.
마지막으로 세번째 이유. 이게 관리자를 미치게 하는 거다. 이행되지 않은 잠재력의 경우다.
세계 최고의 재능을 지닌 개발자가 있지만, 기대에 부응할 동기 부여나 추진력이 모자라다. 관리자로써 나는 팀멤버들을 돈, 경력 발전, 멋진 프로젝트, 심지어는 업무 일정에 자율성을 주는 것과 같은 무형적인 것이라도 주어서 동기 부여를 하고싶다.
하지만 때때로, 이 댓가가 전혀 동기 부여가 안된다.
그 결과란게 믿지 못할 개발자다. 그들은 지속적으로 늦게오거나 회의에 지각한다. 그들은 표준에 맞추지 않는다. 그들은 단순히 자기 만족만 할 뿐이다.종종 진짜 똑똑한 개발자는 얼마 동안은 그렇지 않을 수도 있다. 그들은 다른 사람이 걸리는 시간의 몇 분의 일 정도의 시간 만에 코드를 짠다. 하지만 관리자는 언제나 평균적인 개발자들이 동일한 코드를 짜는데 걸리는 시간을 기준으로 부여하게 된다.
개발자는 너무 게을러지거나 자만하게 되며, 결국 그들이 결과물을 맨 마지막에 내놓거나 지연하는 때가 되면 문제가 된다. 아니면, 다른 개발자들이 그들과 이야기 해야할 때 주위에 없는 것이다. 결국 도끼는 그들에게 내려찍히게 되는 것이다. 왜냐면 관리자는 무엇이 팀과 조직의 장기적인 성공에 최선인지를 봐야 하기 때문이다.
개발자가 짤리는 이유가 더 많이 있음을 잘 알것이다. 그러니 이어폰를 빼고, 20개가 넘는 메신저 리스트도 잠시 닫고, 이런 일이 일어나지 않으려면 무얼 할 수 있는지 생각하는 시간을 매일 가져라.
그렇지 않다면, "너 해고야!' 란 말을 듣더라도 놀란척 하지 말던가.
Eric Spiegel is CEO and co-founder of XTS, which provides software for planning, managing and auditing Citrix and other virtualization platforms.
Those are words that no developer wants to hear, especially with an exclamation point. Perhaps you are thinking it could never happen to you.
Really?
Do the following comforting thoughts cross your mind when you think about the possibility of getting fired someday?
“I’m smarter than everyone else here.”
“Everyone likes me too much.”
“I’m the only expert on the system.”
“I have incriminating pictures of my boss from that last happy hour.”
Well, maybe that last one would work, except you might end up incarcerated for extortion – you’re fired anyway.
I have learned the hard way over the years that it doesn’t matter how clever you think you are or how much everyone loves you on your team. The fact is, there are always potential circumstances that can come to a head, resulting in the ax coming down on your valuable head.
Sometimes these doomsday series of events are in your control. Sometimes it’s like being blindsided by a bus.
So why do developers get fired?
Let me first state that I speak from experience. I have fired developers and been fired (although it was spun as a reorganization casualty).
It sucks on both ends.
As a manager, having to fire someone is an awful experience. I know, you are thinking “cry me a river.” Keep in mind there are two sides to every story.
Even if a manager feels all options have been exhausted, it still is a nerve racking experience. You don’t know how the person will react. You think about their family. You think, is there something else I could have done better as a manager so we didn’t reach this point?
From the being fired side of the table, your feelings depend if you see it coming or not. Those who see it coming usually take it stone faced or with a smirk (which helps reduce the awful feelings on the other side of the table).
For those who don’t see it coming – well I have seen train wrecks. Depending on what else is going on in that person’s life, the magnification of stress caused by a firing can be overwhelming, resulting in outburst, tears or even laughter. (The laughter is the scariest reaction because you know the suppression of fear and hurt can explode anytime.) The truth is, if management follows the typical rules of providing warnings before letting someone go, then no one should be surprised. However, some people truly have their heads buried in the sand (or their code).
They believe it just won’t happen to them – especially younger developers who haven’t been around the block.
How to Avoid Being Let Go (The Three Reasons)
Let’s review three reasons and what you can do to avoid being let go.
We might as well start with the obvious. If your job consistently isn’t getting done, then you will eventually be toast. All it takes is a few missed deadlines and your manager will have no choice because “you know what” rolls downhill. A manager can only absorb so many blows from unhappy end users or their own boss.
Why wouldn’t you see this one coming? Well, you might be thinking the missed deadlines are not your fault. Your excuses may include “the design was bad” or “the deadlines are not realistic” or “they are making me code in Java and I am a .NET expert.”
Guess what? Excuses don’t matter. Results matter.
If your deliverables are always late, then you need to sit down with your manager and look for solutions. Don’t assume conditions will change on their own. You have to not only be a change agent, but you have to document every action you take to improve adverse conditions.
I recommend having an email folder called CYA (Cover Your …). This folder might save you from having to face C-YA (Can Your …) before you’re ready to go. Save everything – disk space is cheap.
A second reason developers are shown the door is that they aren’t communicating the great results of their work. If you think cranking out tons of code from the safe confines of your cubicle will ensure your job security, think again. You have to promote your work.
Yes, I mean brag.
You cannot always rely on your manager to communicate your successes with others on your team and in management. Take management out of the equation and start a peer award process where the team members vote on “coder of the month” award.
Provide some goofy trophy and post the winner (and what they did) on the company wiki or via email distribution list.
You can also subtly mention what it is you’re working on with others in management or end users. If you are doing good work, then you’ll receive kudos when the software is implemented.
And if the implementation is not a success? This is tricky because you don’t want to play the blame game in public.
One suggestion is to talk openly about things that can be done differently next time and how you are eager to work with the team to correct the problems. However, if failures keep happening then follow the actions from my first reason above.
Finally, a third reason. This is the one that drives managers crazy. It’s the case of unfulfilled potential.
The developer who has all the talent in the world, but lacks either motivation or drive to perform up to expectations. As a manager, I expect to be able to motivate team members with money, career advancement, cool projects or even intangibles such as increased work schedule flexibility.
But sometimes, the rewards just don’t motivate.
The result is a developer who isn’t accountable. They consistently are late to work and meetings. They don’t adhere to standards. They’re simply complacent.
Sometimes really smart developers can get away with this for a period of time. They can write code in a fraction of the time it takes others. Yet the manager allows for the same time an average developer would take to complete the same code.
The problem is when the developer gets too lazy or too cocky and starts pushing their deliverables to the last minute, causing delays. Or they just aren’t around when other developers need to talk to them. Eventually the ax will come down on them as well – the manager must look out for what is best for the team and long term success of the organization.
You can be sure that there are plenty of other reasons developers get fired. So take off the ear buds, close down your 20 Skype threads and take some time each day to think about what you can do to prevent this from happening to you.
Otherwise, don’t feign surprise when you also hear the words “You’re fired!”
Eric Spiegel is CEO and co-founder of XTS, which provides software for planning, managing and auditing Citrix and other virtualization platforms.