1.
지금 소프트웨어회사를 하고 있다고 할 수 없습니다. IT와 관련한 회사이긴 하지만 비지니스개발 및 서비스업체라고 함이 정확할 듯 합니다. 제가 하고 있는 일입니다. 그렇지만 여전히 소프트웨어에 대한 애정을 가지고 있고 좋은 글에는 눈이 갑니다. 개인적으로 본 적은 없지만 글을 보면서 멋진 분이라는 생각을 했던 전규현씨가 ZDnet Korea에 기고한 글입니다.
얼마 전 실리콘밸리의 한 개발자 B씨를 만나서 소프트웨어 개발에 대해 많은 얘기를 나눴다. 과거에 같이 일했던 친구인데 미국에서 태어난 중국인으로 미국 대학을 나와 실리콘밸리에서 20여년간 개발자로 일을 했으며 10여년간은 몇몇 회사에서 CTO로 있었던 친구다.
B씨는 최근에 한국 소프트웨어 회사(가칭 A사)와 많은 교류를 한 모양이다. 한국 회사에 자사 기술을 전수하기 위해서 실리콘밸리와 한국을 오가며 수개월간 한국 개발자들과 같이 개발을 해왔다고 한다. 그 과정에서 A사에 대해서 느낀 점을 필자에게 얘기를 해줬는데 A사 뿐만 아니라 우리나라 여러 회사에 공통적으로 해당하는 내용이 있어 소개할까 한다.
B씨는 일단 처음에 A사가 어떻게 돌아가는지 파악했다. 그런데 이상한 생각이 들었다고 한다. 규모가 꽤 큰 서비스인데 시스템에 버그가 너무 많고 문제가 자주 발생한 것이다.
직원들의 야근도 너무 잦았다. 또 스크럼을 도입해 개발한다고 하는데 제대로 효과를 보는 것 같지는 않아 보였다. 그런만큼 B씨는 A사가 스크럼이든 설계든 개발 절차에 담긴 진의를 파악하지 못하고 형식만 흉내를 내는 것이 아닌가 생각이 들었다고 한다.
이에 나는 B씨에게 “설계에서 제일 중요한 것이 무엇인가?”라고 질문했다. B씨는 “설계에서 제일 중요한 것은 콤포넌트를 잘 나누는 것”이라는 당연한 얘기를 했다.
나도 동감을 했다. 개발자가 알아서 할 부분까지 설계를 할 필요는 없다. 겉보기에는 A사의 설계서가 실리콘밸리의 한 개발자가 칠판에 끄적거린 설계서보다 멋져 보이고 전문적인 것 같지만 실전에선 훨씬 비효율적이다.
설계를 어떻게 해야 하는지는 소프트웨어 성격에 따라 다르지만 설계 원리와 진의를 모르고 많은 다이어그램과 상세한 설계서는 식제 개발을 할때는 별로 도움이 되지 않는다. 많은 회사들이 UML 등을 이용해 완벽한 설계서를 만들려고 하는 경우가 많은데 그런 시도가 성공적이었는지 생각해볼 필요가 있다.
B씨가 A사에 대해 또 이상하게 생각한 것은 애자일(Agile)을 적용한 방식이다. 실리콘밸리 스타트업은 거의 대부분 애자일 개발 방법론을 적용하고 있다고 보면 된다. 애자일은 특별한 것이 아니다. 과거부터 해오던 방식과 비슷하다. XP를 도입한 회사도 있고 스크럼을 쓰는 회사도 있는데 회사마다 필요한 것을 활용하고 있다. B씨 회사는 XP의 페어 프로그래밍(Pair programming)과 TDD를 사용중이다.
과거 프로젝트에서는SRS를 썼는데 지금은 TDD로 바꿨다. 테스트는 거의 자동화 되어 있고 별도 테스터가 없어도 시스템에 버그는 거의 없다. A사의 경우 컨설팅을 받아 애자일을 적용했는데 들어보면 별로 애자일스럽지 않아 보인다. 마케팅적으로 요구사항이 신속히 바뀔 뿐인 것 같다.
시스템이 복잡하여 야근도 잦은 것 같다. 또 개발자의 자유도도 낮아 보인다. 쓸데없는 문서도 많이 만들어야 하고 테스트도 오래 걸린다. 그러다 보니 시스템에는 항상 버그가 잔뜩 있다.
이상한 점은 또 있다. 비싼 툴을 너무 많이 쓴다는 것이다. 그 친구는 실리콘밸리에서 주로 스타트업 에 많이 다녔는데, 한국 회사처럼 툴을 그렇게 많이 사용하지는 않았다고 한다. 지금 다니는 회사는 서브버전(Subversion)과 트랙(Trac)만 쓰고 있는데 회사를 지금 시작했다면 Git를 선택했을 것이라고 한다. 그렇다고 굳이 지금 서브버전을 Git로 바꿀 생각은 없다.
나머지 필요한 툴은 간단한 스크립트로 만들어서 쓰고 있다. 그에 비해 A사를 비롯해서 많은 한국 회사들은 일단 툴을 많이 사용한다. 비싼 툴을 사는 경우도 상당히 많다. 회사 역량에 비해서 툴을 과도하게 사용하는 것은 그렇게 효율적이지 않다. 툴은 하나를 쓰더라도 제대로 사용해야 한다.
그리고 A사는 직원들에게 노트북을 지급했다고 하는데 직원들이 노트북을 집에 가져가서 일을 하지 않는 점이 이상하다. 실리콘밸리에서 스타트업에 다니는 개발자들은 거의 노트북을 집에 가져가서 장소를 구분하지 않고 일을 한다. 개발자마다 다르지만 그 친구는 늦게 출근하고 일찍 퇴근하지만 노트북을 가지고 다니면서 장소에 구애 받지 않고 하루에 10시간 이상 일을 한다고 한다.
A사는 야근도 꽤 많이 하지만 집에 가서는 일을 하지 않는 것이 이상해 보였다. 한국의 모든 개발자가 그런 것은 아니지만 재택근무가 일상화된 실리콘밸리와 한국은 좀 다른 것 같다.
물론 한 개인이 한 회사를 보고 느낀 점을 얘기한 것이기 때문에 우리나라의 모든 회사가 그렇다는 것은 아니다. 그렇지만 B씨와 나눈 얘기들에서 생각해 볼 요소는 많다. 국내 여러 기업이 실리콘밸리의 개발문화와 개발방식을 적용하려고 노력하고 있지만 대부분 원리와 의미는 파악하지 못하고 수박 겉핧기 식으로 형식만 흉내를 내고 있다.
설계는 하지만 설계를 왜 하는지를 잘 모르고 애자일을 적용하면서 그 원리를 모르고 남들은 어떻게 하는지 보고 흉내를 내는 것이다. 원리는 같지만 회사마다 적용하는 방식이 다르기 때문에 남들을 보고 흉내 내거나 인터넷이나 책을 보고 적용하면 이런 현상이 벌어진다.
실리콘밸리 개발자 눈에 비친 한국 SW회사중에서
글에 비친 한국 소프트웨어회사는 형식과 절차를 중요하게 생각합니다. 그래야 책임 소재를 가립니다. 갑을관계로 소프트웨어 개발을 해온 전통(?)때문입니다. 갑을관계가 아닌 방식으로 소프트웨어 개발을 하더라도 갑을관계를 만듭니다. 경영자나 상급자가 갑입니다.
2006년 회사를 기울기 시작할 때 회사내 개발자들이 자발적으로 익스트림 프로그래밍을 도입하기 위한 학습을 하더군요. 지금 생각해보면 소프트웨어 개발을 이해하는 철학적 눈이 바뀌는 시기였다는 생각이 듭니다. 우리에게 자리잡힌 소프트웨어 개발은 ‘시방서에 따라 인력과 자재를 동원하여 공기에 맞춰 끝내는 일’입니다. 이 때 인력은 기계와 같은 생산적인 요소입니다. 그렇지만 실제로 경험하는 소프트웨어 개발을 다릅니다. 목표는 유동체입니다. 인재가 아닌 사람이 일을 합니다. 개발은 곧 관계입니다. 깊은 공부가 없지만 익스트림이니 애자일 같은 개념은 이러한 소프트웨어라는 특성을 맞춘 방법론이라는 생각을 합니다. 그렇지만 관계는 하루아침에 바뀌지 않습니다. 관계의 변화가 있어야 방법의 변화가 있을 수 있습니다.
2.
페이스북에 올라온 글입니다. glassdoor라는 서비스입니다. 구인구직을 위한 서비스입니다. 다만 국내 서비스와 다른 점은 회사에 대한 평판을 가감없이 쓸 수 있도록 한 것입니다. 삼성전자와 관련한 댓글입니다.
Pros – Competitive salary and bonuses (joining and annual)
Cons – I was a project leader for almost two years and i strongly recommend people to stay away from Samsung Research America, specially researchers due to the following reasons.
1. There is no independence and everything needs to be approved by HQ in South Korea. Upper management in South Korea thinks in terms of hardware and they do not understand software. They are old people with poor understanding of technology and all decisions are taken based on what other US companies are publicly doing
2. People from HQ steal many project ideas as they need to approve them. They will say “please do not work on this item idea because we are already working on it at HQ”. Then, they will ran back to HQ and create a project based on your idea or team idea. HQ stole to big projects from my team in just two years.
3. Similarly HQ will also steal the patents generated by you or your team and i have known some instances in which patents submitted from usa to south korea for approval come back with different author names.
4. Finally, since all funding comes from HQ your managers at Samsung research america (usa) will be powerless after all the abuses you suffer.
In summary, Samsung is a follower company, following the work of leading companies such as apple and this is so embedded in their culture that they even follow and steal ideas from each other within the company.
Stay away please if you are an independent and innovative researcher. Join n american company or startup in the bay area better. You will regret joining and you will remember my advise.
Advice to Senior Management – Gain independence from HQ approvals and behave in n ethical manner
No, I would not recommend this company to a friend
Samsung Group Reviews in San Jose, CA중에서
이 분이 하고자 한 핵심은 ‘독립성(Independence)’입니다. 명령만 있고 권한은 없는 조직이 소프트웨어 개발을 압박합니다. 한국의 갑을문화가 미국으로 건너가서도 힘을 발휘합니다. 무엇으로? 바로 경쟁력 있는 급여입니다. 아래 칼럼이 지적하는 것이 밑바탕에 있겠죠?
경영자에게 불도저 같은 추진력을 요구하는 회사에서 소프트웨어 전문가인 경영자들은 추진력이 부족한 것처럼 보여 많이 밀려 났고 이제는 소프트웨어 조직도 전혀 다른 분야 출신의 불도저 같은 사람이 맡는 경우도 많다.그런 경영자들이 추진하는 정책이라고는 고작 끊임없는 야근이다. 단기적인 성과는 날 수 있지만 아키텍처는 엉망이고 개발자들은 지치고 개발 문화는 엉망이 되었다. 소프트웨어는 소프트웨어 전문가가 맡아야 한다.
기적적인 하드웨어에서의 성공을 회상하며 소프트웨어도 거기에 끼워 맞추려고 하면 큰 착오다. 하드웨어에서 성공했다고 그 방식으로 소프트웨어를 조금만 더 잘하면 될 것 같은 착각에 빠지기도 한다. 소프트웨어는 스타트업을 제외하고는 한두명의 천재가 밤을 세워서 잘 할 수 있는 분야가 아니다. 소프트웨어가 하드웨어의 부속이라는 생각에서 벗어나야 한다. 오히려 소프트웨어가 중심이 되는 시대가 오고 있다.
그나마 그 동안 이룩했던 우위를 잃지 않으려면 소프트웨어가 ‘을’의 자리에서 벗어나 하드웨어와 동등한 관계가 만들어져야 한다.
SW를 ‘을’로 취급하는 하드웨어의 무지중에서
3.
이런 트윗을 쓴 적이 있습니다. 미국 실리콘밸리에서 오래 있었던 임정욱씨가 한겨레신문에 쓴 칼럼을 읽고 난 소감이었습니다.
임정욱 칼럼 '평등한 토론에서 나오는 혁신' http://t.co/pxQHF0Cqkq 평등에서 다양성이 나오고 다양성에서 혁신이 나오고 다시 혁신이 창조를 이끕니다. 창조경제를 외치는 불통정권에서 혁신이 가능할지.
— smith Kim (@smallake) February 10, 2014
칼럼의 결론은 이렇습니다.
창의적인 아이디어는 다양한 의견에서 나온다. 회의석상에서 윗사람이 권위로 아랫사람을 짓눌러서는 좋은 아이디어가 나오기도, 나온 아이디어가 발전하기도 어렵다. 여러 사람이 모인 ‘팀’의 힘을 증폭시키기 위해서는 모든 사람이 평등하게 이야기할 수 있어야 하는 것이 아닐까. 창조경제를 성공시키기 위해서는 회의실에서 권위주의를 몰아내고 모두가 평등하게 말할 수 있는 문화를 북돋우는 것이 필요하다는 생각을 해봤다.
강남의 귤이 회수를 건너면 강북의 탱자가 된다(南橘北枳)”고 합니다. 한국 소프트웨어가 발전하려면 반드시 필요한 것이 알게 모르게 남아 있는 우리 안의 ‘갑을문화’입니다.