본문 바로가기

스타트업140

소프트웨어 개발자의 딜레마 시장을 돌아다니면서 자주 보게 되는 현상이다. 현상을 기록하기 위해 정리한다. "개발자의 딜레마" Dilemma of Software Developer 법칙 : "대부분의 개발자는 의사결정권자에게 시스템의 문제를 이해시키는 데 실패한다." * 의사결정권자 Stakeholder = CEO, 담당이사 등 대부분의 개발자는 자신이 처한 문제를 보고하기 위해, 그 문제가 회사의 큰 부담이 될거라고 예상하기 때문에, 또는 미래에 새로운 문제가 될 거라고 믿기 때문에 경영진에게 매우 심각하다고 보고하려한다. 그러나 그 심각성에도 불구하고, 보고는 매우 자주 실패하고 만다. 오히려 상황이 악화되기도 한다. 그래서, 개발자는 문제가 생겼을 때 보고할 것인가 말것인가를 놓고 고민하게 된다. 관찰되는 현상 개발자는 의견을.. 2020. 2. 25.
개발자들이 맥북을 쓰는 이유 개발자들은 왜 맥북을 쓸까? 예뻐서.... 그 이유는 빼고. 1. 서버개발자 윈도우는 Unix 서버 개발을 하기에 완전 빵점이다. 환경변수, 커맨드라인의 명령어, 모든 게 다르다. 미리 연습해 볼 수가 없다. 별거 아닌 것 같은데, 복잡한 서버 작업을 많이 하다보면, 이런 사소한 작업이 크리티컬한 장애로 이어진다. 경험상 99% 확률로 발생한다. 그래서 돈많은 기업은 상용장비랑 똑같은 예비환경을 만든다. 1~2억짜리 Staging 장비환경을 구축한다. 그냥 Unix 노트북 사주면 될 일을... 쩝. 물론 완벽히 해결되진 않는다. 환경이 다르기 때문에 서버 반영 전후에 꼭 점검작업을 해야 한다. 그런데 Unix 기반 PC가 있을까? 있다. 그게 MacOS 다. 엇, 그럼 Linux 는? Linux 는 mi.. 2020. 2. 10.
소프트웨어 프로젝트, 코드네임 정하는 법 Yosemite, Vienna, Threshold, Namoroka... 어렵다. 이게 뭘까? "코드네임"이다. 개발자들이 붙이는 소스코드에 붙이는 일종의 "프로젝트명"이다. SI 시장에서 붙이는 "차세대금융시스템" 이런 건 아니다. "레드스톤" 같은 거다. 바로 윈도우 10의 코드네임이다. "코드네임", 왜 붙일까? 그런데 코드네임은 왜 붙일까? 당연한 이야기이겠지만, 첫째로는 프로젝트의 정체성을 숨기기 위해서다. "Yosemite 말야?" "응, 그게 이상하게 작동하고 있어." 프로젝트명이 숨겨지면, 범위나 역할, 제품의 모습이 모두 숨겨진다. 전화기에다 대고 크게 떠들어도 듣는 사람이 쉽게 이해할 수 없다. 둘째로는, 생명감을 불어넣기 위해서다. "Vienna ~ 나랑 같이 놀자." 개발자는 매일 .. 2020. 2. 7.
왜 이걸 하는가, 그게 중요하다. 후회 "살면서 후회하지 말자. 후회할 일은 하지말고, 한 일은 후회하지 말자." 이렇게 생각하면서 살았다. 그런데 나이가 들수록 후회되는게 있다. "자유의지"를 잊어버리고 살았다는거다. 자유의지? 내가 자유롭지 않았던 적이 있었던가? 그런 이야기가 아니다. 자유의지란, 그냥 내버려두어도 알아서 움직이는 "에너지"를 말한다. 누구의 요청도 아니고, 누구의 지시도 아니고, 다른 사람의 의지가 아닌, 그냥 내 의지에 의해 나를 움직이는 "동기요인" 말이다. 사실 이런걸로 넘치는 사람이 많지만, 나는 그런 타입은 아니었다. 자유의지 나 : 어떤 앱을 만들어 볼까? 친 : 환율까지 조회되는 계산기앱 어때? 지금 몇개 있긴 한데, 아직 세상을 제패한 앱은 없어. 이게 통하면, 사용자 패턴을 읽어 빅데이터를 쌓는거야.. 2019. 12. 16.
스타트업 팀개발, 협업능력의 중요성 프로젝트를 수습하러 들어간다. 초보자는 남의 소스코드 까기에 여념이 없다. "나는 잘못을 많이 알아." "나는 그 문제를 풀만큼 훌륭한 사람이야." 이 두가지를 어필하고 싶어한다. 팀장이나 고용주에게 말이다. 프로는 그렇지 않다. 거지꼴이 된 소스를 보고 깊은 생각에 잠긴다. "이놈이 바보가 아니라면 해답을 이렇게 쓰진 않았겠지." "이런 답을 만든 범인은 아직 이 안에 있겠지?" 이렇게 생각한다. '아, 나는 여기에 있을건가 말것인가?' 쓰레기 개발자가 없는 건 아니다. 피치 못하게 그 역할을 하는 사람도 있다. 그런 사람들이 쓰레기 소스를 만들기도 한다. 하지만 오늘주제는 아니니까 여기선 제껴두자. 존중, 왜 하는가? "왜 다른 사람을 존중해야 하는가?" 몸에 베여있는 사람에게 던지는 질문은 아니다... 2019. 11. 13.
인터넷서비스, 판타지가 없으면 안될까? 질문 "(나는) 무엇을 만들어야 할까?" "(나는) 무엇을 만들고 싶은가?" "(나는) 무엇을 좋아할까?" "(사람들은) 왜 그것을 사용하는가?" "(사람들은) 왜 끊임없이 그것을 이용하는가?" "(사람들은) 왜 흥미가 떨어지면 버리고 마는가?" "(사람들은) 왜 계속해서 새로운 곳으로 이동하는가?" "그래서, 지금 난 무엇을 만들어야 하는가?" 무엇을 만들기 위해서 이런 질문을 던졌다. 인스타그램도 이런 질문을 던졌을거다. "우선 니가 좋아하는 걸 만들어봐." 맞는 이야기이긴 한데, 틀린 이야기다. 그냥 아무거나 만들라는 뜻이 아니다. 막연히 좋아하는 걸 만들어도 사업이 안된다는 것, 큰 돈이 되지 않는다는 것은 여러번 겪어봐서 안다. 운이 좋고, 능력 좋은 분들은 별개다. 그런 분은 뭘해도 성공한다... 2019. 11. 5.
앱 서비스의 장단점. 어떻게 만들어야 할까? 기술 이야기는 많다. 정보도 꽤 잘 나와 있다. 그게 궁금하면 그분들 것 보자. 하지만 어떻게 만들어야 하는지, 만들면 무슨 일이 일어나는지, 고객입장에서 정리된 게 없다. 사실 해본 사람이면 다 아는 내용이다. 이건 안해본 사람, 초보자 대상이다. 정리해본다. 앱 하나 만들면 "앱 하나 만들어줘요." 정말 많이 듣는 말이다. 앱 하나 만들면, 사업이 시작될 것처럼 말한다. 앱 하나 만들면, 당장 돈이 될 것처럼 말한다. 미안하다. 앱을 만들어도, 사업이 시작되진 않는다. 사장 : "스톡옵션 줄께요." 개발자 : "죄송해요. 연봉으로 주세요." 개발자가 이렇게 말하는 건 사업이 안될거라는 뜻이다. 당신을 못 믿어서 그런게 아니다. 뻔히 미래가 보이니까 그런거다. 3년전에 실패한 그대로 답습하니까 그런거다.. 2019. 9. 30.
실패하는 앱은 사실 이미 정해져 있다. "넌 아마 안될거야." "될 앱들은 이미 타고 나는거야." 이런 "운명적 선택론"을 말하려는 게 아니다. 성공할 앱들은 개발하기 전, 기획단계에서 대부분 윤곽이 다 잡혀버린다는 말이다. 그만큼 사업계획, 서비스기획이 중요하다는 말이다. 이 앱 안될 것 같아. 실패하는 앱은 사실 기획 단계에서부터 안다. 개발 설계 단계에서부터 안다. 개발하는 사람이, 기획하는 사람이 사업과 서비스에 공감하지 못한다면, 그 앱은 실패다. 사용자를 납득시킬 수 없다. 이론적으로는 그렇지 않다. 성공는 하늘의 일이라 단정할 수 없다. 언제나 예외는 일어난다. 나도 그 예외 속에 포함될 수 있다. 하지만, 실패는 사람의 일이라 단정할 수 있다. 예외적으로 실패하진 않는다. 실패하지 않는 건 사람이 버텨주기 때문이다. "버티기를 .. 2019. 9. 16.
서버개발 기본기, "데이터 다루기" :: 알고 넘어가자. 데이터분석 이야기를 하기전에, 데이터엔지니어링 이야기를 좀 하고 넘어가자. 데이터분석이 숨은 뜻을 찾아내는 거라면, 데이터엔지니어링이란, 데이터를 보관, 이동, 정리, 변형하는 기술을 말한다. Hadoop, Oracle 등은 데이터소프트웨어들이지, 엔지니어링 그 자체는 아니다. SI를 하면 대형데이터 다룰 일이 별로 없다. 새로 만드는 시스템은 데이터가 없고, 추가시스템이라면 접근권한이 없기 때문이다. "초기데이터 구축"도 중요하지만, "상용데이터"를 다루는 건 완전히 다르다. 그래서, 3년이나 지나도 "데이터 다루기의 기본"을 모르는 경우가 많다. 정리해보자. 지울까 말까 데이터 생성의 주체는 두 개 밖에 없다. "사람"이거나 "기계"이거나. 여기서 "사람"이란 사용자를 지칭한다. "사용자 데이터" 내.. 2019. 9. 11.
반응형