개발단계

스타트업, 외주개발을 알고 선택하자

앱팀장 2019. 10. 29. 10:50

"이런 거 만들어 보려는데, 얼마예요?"

 

잘못된 질문은 아니다.

스타트업 입장에서는 외주개발이 그 만큼 가치가 낮은 거다.

 

개발자의 입장도 마찬가지다.

어렵게 만들어놓은 소스가 돈을 벌어다 주는 것도 아니고 쌓이는 지식을 누가 알아 주지도 않는다.

 

그래서 적당히 시키고 적당히 만든다

돈만 보면 그렇게 된다.

그런데 외주개발에는 돈만 있은게 아니다

 

스타트업은 대부분 새로운 걸 만들려고 한다.

새로운 것을 만들기 전에,

외주개발을 선택하기 전에

알았으면 하는 것들을 정리해본다.

 

새로운 것

 

세상에는 이미 많은 것들이 존재한다.

그래도 새로운 것들은 계속 태어난다.

이전에 있던걸 더 쓸모있게 만들어지는 것도 

새로운 것에 포함되기 때문이다.

 

적당히 쓸모가 추가되는 것도 새로운 것이긴 하다.

그러나 동시에 아무것도 아닌 것이기도 하다.

아무도 사용하려 들지 않을 것이기 때문이다.

사람들이 경험하고 "다르네"라는 반응해야

진짜 새로운 것이 된다는 뜻이다.

 

그런 반응을 하게 하려면

이전 경험보다 나은 걸 제공할수 있어야 한다.

그래서 사용자의 지금까지의 경험을 연구해야한다.

연구를 통해 본질을 파악해서

중요한 개선점을 찾아 내는 것이다.

 

적당히 보는게 아니라 하나하나 탐구해야한다.

그래야만 다른 사람이 못보는 숨은 10%를 찾아 낼수 있다.

그걸 찾아서 제품에 담아내서

사용자와 투자자에게 가져갈 수 있어야만

겨우 평가받을 자격이 생기는 거다.

 

만들기

 

나만 쓸걸 만들때는 대충 만들어도 된다.

불만할 사람이 없기 때문이다.

하지만 다른 사람들이 쓰는 것은

좀 더 제대로 된 걸 만들어 줘야 한다.

조금이라도 불만이 생기면 버려버리기 때문이다.

 

그런걸 만들려면 좋은 감각이 있어야 한다.

타고 나야한다는 말은 아니다.

뚝딱거려서 만들어 놓은걸

보고 만지면서 훈련시켜서 만들어 낼 수 있다.

 

훈련에는 실패가 따르기 마련이다..

만든 결과물이 아니다 싶을땐 과감히 버려야 한다.

그리고 다음에 만들때는 반드시 아닌걸 개선해야한다.

적당히까지만 하면 적당한 쓰레기가 된다.

완벽하지는 않아도 쓸만해질때까지는 개선해 나가야한다.

 

근데 잘 훈련되고 있는지 알수 있냐고?

처음 만들었던 걸 확인 해보면 알수 있다,

부끄러움이 느껴진다면 잘 훈련되고 있는 거다.

 

좋은 감각이 있어야 좋은 제품이 탄생하는 거다.

실패는 여기에 따라야 할 대가에 불과하다.

이 과정을 통해 쌓은 경험은 좋은 경쟁력이 될 수 있다.

따라 만든 사람들은 모르는 것이니까.

 

다른 사람과 일하기

 

혼자 일하면 다양한 일을 하게되는데

그만큼 배우는 것도 많아진다.

대신 일의 속도는 느려지게 된다.

일의 속도를 내려면 한번에 많은 일을 진행해야 하는데

그려려면 팀을 구축해서 일해야 한다.

 

팀원을 뽑아서 데려다 놓고

"일단 해주세요"라고 하는건

"우당탕탕 일하게 될 거에요"라는 말을 

적당한 표현으로 말 한 것이 된다.

 

팀이 세련되게 일하게 하려면

팀의 목표를 정해서 

팀원들의 할일을 정해주고

팀원이 만들어낼 결과를 팀의 결과에 반영시키는 방법도 고민해야한다.

 

개인을 통제해서 일의 흐름을 만들어 내는 거다.

그래야만 팀의 일이 효율적으로 돌아가기 때문이다.

 

외부와 일하기

 

외부에 일을 맡긴다는 건

또 다른 내부와 일한다는 의미가 된다.

또 다른 내부에서는 나는 외부다.

서로 통제하지 못하는 존재가 된다는 거다.

 

중간에 마음에 들지 않는게 생겨도

이래라 저래라 할 수가 없다.

그래서 규칙을 정해놓고 일해야 한다.

"이렇게 합시다"가 아니라.

안했을때 받을 불이익을 정하는 거다.

 

외부와 일할때는 이런 리스크가 있다.

그래서 외부를 선택할 때는 

그만큼의 전문성을 갖춘 곳을 선택해야한다.

외부가 원하는 성과를 내주면

불만도 사라지게되기 때문이다.

 

전문성을 확보할 수 있을 만한 사람을 못찾으면

책임 있게 일을 해줄만한 사람이라도 선택해야한다.

대신 느낌오면 정리해야만 한다.

 

개발은 정보의 유통과정이다.

 

기획자는 머리속에 있는 걸 말과 문서로 설명한다.

개발자는 이걸 읽고 이해해서 머리속에 넣는다.

개발자의 머리속에 정리된걸 기계에게 번역해서 알려준다.

기계는 번역된 내용에 따라 수행한다.

 

소프트웨어는 기획자의 머리속의 정보를 

기계에게 전달하는 유통과정을 거쳐 만들어지게된다.

기획자가 잘 못 전달하면 다른 결과가 수행된다.

그래서, 기획자가 직접 소프웨어를 만들게 되면 사고가 없다.

 

좋은 개발자를 구하면 배달품질을 올릴 수 있다.

좋은 개발자는 기획자의 말을 듣고

유추를 통해 정확히 머리속에 그려낼 수 있기 때문이다.

즉, 어느 정도의 오차는 스스로 수정하는 사람들이다.

 

그러나 모든 개발자가 좋은 개발자는 아니다.

기획자는 오류를 감안해서 결과물을 통해서만 확인해야한다.

말만 듣고 확인해서는 안된다는 거다.

기계에서만 정확하게 확인해야한다.

그래야 배송사고를 확인하여 개선할 수 있다.

 

기계는 거짓말을 하지 않는다.

지시를 받으면 받은 만큼만 수행해내는 존재다.

유통과정에 있는 기획자도 개발자도 오류를 만들어낸다.

이걸 생각해서 보내야한다.

 

마무리

 

뭔가 만들때 보는 설명서의 내용은 간단하다.

그래서 거기에 담긴 지식과 경험이 보이지 않는다.

 

하지만 설명서를 만들려면 많은 지식과 경험을 필요로 한다.

외주개발은 설명서를 만드는 방식중 하나로 생각되어야 한다.

 

그리고 누군가 이 방식을 선택한다면

지식과 경험을 쌓을 기회를 잃는 것이다.

 

가격, 중요하다

그 누구도 중요하지 않은 거라고 생각하지 않는다.

더 중요한게 있는지 한번만 더 생각해보고

제대로 선택하자.