본문 바로가기

플밍 is 뭔들/관련글&리뷰

개발자가 갖추어야할 9가지 기술

해당 개발자가 게임 개발자 이므로 게임쪽으로 초점이 맞춰저 있을 수 있음.


Hard Skils

  1. Basic Knowledge (언어, OS)
  2. Understanding for product (제품에 대한 이해)
  3. Development Cycle (개발 사이클)

  • 1~5 years of development (초급개발자)
          - Associate Software Engineer
          - Software Engineer
  • 혼자 스스로 공부하는 것

※ Basic Knowledge 
     - 수학, 물리
     - 프로그래밍 언어
     - 알고리즘, 자료구조, 디자인 패턴
     - 데이터 베이스, 네트워크
     - OS
     - Tools (Visual Studio 등등)
     - 최신기술

※ Understanding for product
     상품에 대한 이해
     개발자들이 그냥 개발만한다. 개발만 하지 사용자 입장에서 어떻게하면 더 편리하게 쓸 수 있을지 고민하지 않는다.
     개발만 할게 아니라 항상 사용자 입장에서 생각해봐야 된다.

※ Development Cycle
  1. 요구사항 분석
  2. 디자인 & 모델링
  3. 개발
  4. 테스트/출시
  5. 피드백/업데이트

  • 최소한 각각의 싸이클이 1:1의 기간을 가져야 된다[ex)개발이 1달이면 나머지 싸이클을 모두 한달씩은 해야된다.] 
  • 개발의 큰 흐름을 보면서 프로세스를 항상 잘 생각하고 내가 하고 있는 부분이 어느부분인지 항상 확인해보면서 개발해야 된다.
  • 싸이클을 빨리돌리는게 정답이지 이 싸이클을 무시하면 안된다.
  • 앉아서 열심히 코딩만 하는것은 굉장히 위험한 일!


Soft Skils

  1. Project Management
  2. Team Management
  3. Process(Agile,Zero-bug)

  • 6~10 years of development (중급, 고급개발자)
          - Software Engineer
          - Senior Software Engineer
  • 회사에서 일하면서 경험하는 것.

※ Project Management
     제품을 만드는 과정을 관리한다
     - Why, What, How (왜만드나, 무엇을 만드나, 어떻게 만드나)
     - Triple Constraints (3가지 제약)    
  1. Cost(Resources)
  2. Time(Schedule)
  3. Scope(Quality)
     Time과 Cost를 관리를 잘해야 Scope(품질)을 잘 뽑아낼 수 있다.
    
※ Team Management
     사람관리     
     사람마다 각자의 역할을 정확히 알고 협력을 할 때 좋은 제품이 나올 수 있기 때문에 사람 관리가 중요하다.
     사람은 관리하는게 아니라 사람이 잘 할 수 있도록 이끄는 것이다. 앞에서 이끌고 옆에서 도와주는게 중요하다.

※ Process(Agile, Zero-bug)
     개발방법론
     전체 시스템을 보호해 주고 팀원의 실패에도 프로젝트를 보호해 줄 수 있다. 그러므로 개발방법론이 중요하다.  -> 안전성을 높혀준다.


Business Skills

  1. HR System (인사시스템)
  2. Business Management (사업관리)
  3. Vision/Goals/Culture (회사철학)

  • 10+@ years of development 
          - Lead Software Engineer
          - Technical Director, VP of Technology, CTO, CEO
  • 이부분은 먼미래의 이야기 같지만 관심을 꾸준히 두고 조금씩 알아두자, 개발과 팀 말고 회사를 생각할 수 있는 단계가 오면 관심이 없던 사람과 조금이라고 관심을 가지고 있던 사람과의 차이는 크다.
  • 주변사람에게 배우거나 책을 보고 배우거나 등등 꾸준한 관심이 필요하다.

※ HR System
     인사시스템에 관심을 두자
     팀원을 어떻게 관리할지, 인재들이 어떻게 찾아오게 할지
     직원 평가방법, 직원 교육방법, 인사 채용, 보상방법등을 고민해보는것이 중요하다.

※ Business Management 
     사업관리 시스템에 관심을 두자
     회사관리, 매출관리 등등

※ Vision/Goals/Culture
     비전 : 최종 목표
     골 : 비전을 이루기 위한 중간중간의 세부목표
     문화 : 회사의 문화 [ex) 재밌게 일하자, 글로벌하게 생각하자, 항상 발전하는 사람이 되자 등등] 

     비전과 골을 생각해보고 비전을 이루기 위한 골을 정하자.
     그리고 회사의 문화를 생각해보고 그 집단의 정체성을 확고히 하자.


끝마치며....

- 세상에 대한 호기심을 가져야 된다. 엔지니어는 손이 굳고 머리가 굳어서 끝나는게 아니라 호기심이 죽을때 끝난다. 계속해서 오픈마인드로 새로운 사람도 만나고 새로운 것을 시도해보면서 자신을 갈고 닦아야 된다. 그래야 계속 성장한다.

- 재능과 노력이 중요하다. 새는 나무가지가 부러질지 안부러질지 고민하지 않고 가지에 올라간다. 왜나하면 부러지면 다시 날라가면 되니까. 소프트웨어 엔지니어 또한 마찬가지 이다. 내가 실력이 있다면 프로젝트가 망하던가 회사가 망해도 다른 회사로 갈 수 있다. 즉 실력이 날개와 같기 때문에 실력이 있어야 어디든 날아갈 수 있다.

- 엔지니어는 개발 기술 외에도 많은 스킬이 필요하다. 커뮤니케이션스킬이나 인사관리 등이다. 인정받는 개발자가 되려면 개발 기술 외에도 관심을 두고 자신을 꾸준히 발전시켜 나가자

- 내가 사장이라면? 이라는 생각을 항상 해보자. 상관없어 보이지만 항상 생각해보면서 비지니스 스킬에 대한 감을 키우자, 미래를 위해
 
- 세상은 배운자와 배우지 않는자로 나눠진다. 배우는 사람은 조금씩 조금씩 이뤄낸다. 하지만 배우지 않는 사람은 아무것도 이뤄니지 못한다.
지속적으로 배워나가자! 지속적으로 발전해나가자!