리더보드(728x90)


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




Hard skills

1-5 years of development 업계에 막 들어온 개발자들
- Associate Software Engineer 초급 개발자급
- Software Engineer 중급 개발자급


1. Basic Knowledge
- 수학, 물리
- 프로그래밍 언어 (C++, C#, Python)
- 알고리즘, 자료 구조, 디자인 패턴
- 그래픽, 데이터베이스, 네트워킹, Ai
- 게임 엔진 (Unity)
- OS (Windows, Mac, iOS, Android)
- Tools (Source control, Visual Studio)

학교에서 공부하는 것, 직장에서 공부하는 것
결론은 혼자서 공부하는 것, 내가 공부해야 하는 것
끈임없이 나오는 기술을 배우며 발전


2. Understanding for product 제품에 대한 이해

Product Analysis
쓸만한 소프트웨어가 많지 않다. (UX User Experience를 고려하지 않은 제품들)
제품에 대한 분석력이 뛰어나야 훌륭한 제품을 만들수 있다.
훌륭한 사용자가 훌륭한 개발자가 되는 것

Power of Blizzard
- Everyone loves game
블리자드는 모든 이들이 좋아하는 게임이 나올때까지 개발
제품에 대한 이해이자 사랑

Three types of restaurants
- Going for profit (돈을 벌기위한 식당)
- Try to make customer happy (고객을 행복하게 하기위한 식당)
- Love cooking (요리를 좋아해서 하는 식당)
3가지 요소가 적절하게 있어야 함
고객과 제품을 생각하는 자세가 있어야 함


3. Development Cycle 개발 싸이클

Requirements & Analysis
Design & Modeling
Implementation
Test/Release
Feedback/Update

5단개의 개발 싸이클
1:1:1:1:1 비율로
단계를 무시하지 말고 속도를 빨리 진행할 수 있도록
QA Testing에 대한 철학이 있어야 함

-------------------------------------------------------

Soft Skills

6-10 years of development
- Software Engineer 중급 개발자
- Senior Software Engineer 고급 개발자
팀장급 이상으로 가기위한
개발과정의 디버깅


4. Project Management
Why, What, How 왜, 무엇을 만드는가,
Project Management How 일을 누가 언제까지
Technical Management How 무슨 기술을 쓰고 어떤 시스템에서
팀원이 다 설명할 수 있어야 한다. (모두가 동의한 사항)

Triple Constraints
- Cost (resources) 얼마나 많은 사람이
- Time (schedule) 얼마나 많은 시간이
- Scope (quality) 얼마나 많은 일을
잘못된 비용 절감은 퀄리티의 상실


5. Team Management
Forming, Storming,
Norming, Performing
- Trust & Knowledge

Roles around the Team
- Product owner
- Producer, Artists, Designers, Engineers
- Engineering Team Lead

Clear role definition. Proper delegation.


6. Process (Agile, Zero-Bug)

Better way to do it, Optimal way
- Detect failure, Prevent failure

Project Managerment Process
- Waterfall, Agile/Scrum

Development Procsee
- Development Cycles, Code Review
- The Joel Test: 12 Steps

Your Own Evolving Process

Project Management Maturity Model
1. Initial = Common Language 용어의 통일
2. Repeatable = Common Process 방식의 통일
3. Defined = Singular Methodology 같은 방법론으로
4. Managed = Benchmarking 측정
5. Optimized = Continuous Improvement 측정을 기반으로 계속 발전

-------------------------------------------------------

Business Skills

10+ years of development
- Lead Software Engineer
- Technical Director, VP of Technology, CTO, CEO


7. HR System 인사 시스템
Hiring 고용
Performance Reviews 평가
Titles (Engineering) 승진
Rewards 보상
Education 교육
Benefits 복지
매력적인 회사를 만들수 있도록 - 사원의 발전 (사내 교육) - Engage

Example: Software Engineer
- Productivity 생상성은 있는가
- Professionalism (Reliability) 안정성은 있는가
- Teamwork (Communucation) 사람들과 일을 잘 하는가
- Knowledge 지식은 얼마나 많은가
- Functionality (No Defect) 만든게 잘 돌아가는가
- Implementation (Good Code) 코드는 잘 만드는가
- Design & Architecture 디자인 설계는 잘 하는가

Example: Learning & Development


8. Business Management 비지니스
Leading People, Manage Business 사람은 관리하는게 아니다. 이끄는 것.

Making money 돈을 번다.
a certain way
doing things you are comfortable doing 내가 편한 방식으로
and contributing to society 사회에 공헌하면서

ROI (Return over Investment)

Capability, Strategy, Tactics, Finance, Economics,
Marketing, Sales, CS, Operations, Change

Balanced Scorecard
- Financial Perspective
- Customer Perspective
- Internal Procass Perspective
- Learning and Growth Perspective

Cusromer
- The company's customers
- The leadership
- The employees


9. Vision/Goals/Culture 비전, 목표, 회사의 철학

Vision and Goals for the company
Vision and Goals for the team
Vision and Goals for you

Example: Blizzard Mission Statement
"Dedicated to creating the most epic entertainment experiences... ever."

Example: Blizzard Core Values
- Gameplay first
- Commit to quality
- Play nice; play fair
- Embrace your inner geek
- Every voice matters
- Think globally
- Lead responsibly
- Learn & grow