개발자가 갖추어야 할 9가지 기술
https://www.youtube.com/watch?v=fHyTA-UIcqs
개발자가 갖추어야 할 9가지 기술
1. Hard Skill
- Basic Knowledge (C++, OS) / 기초 지식들
- Understanding for product / 제품에 대한 이해
- Development Cycle / 개발 싸이클
1-5 years of development
- Associate Software Engineer / 초급 개발자
- Software Engineer / 중급 개발자
1.1. Basic Knowledge (C++, OS)
- Learn from school, workplace, by yourself / 학교, 직장에서 스스로 배워라.
- Mathematics, Physics / 수학, 물리
- Programming Language (C++, C#, Python) / 프로그래밍 언어
- Algorithm, Data Structure, Design Patterns / 알고리즘, 자료 구조, 디자인 패턴
- Graphics, Database, Networking, AI / 그래픽, 데이터베이스, 네트워크, 인공지능
- Game Engines (Unity) / 게임 엔진
- OS (Windows, Mac, iOS, Android) / 운영체제
- Tools (Source control, Visual Studio) / 도구들
1.2. Understanding for product
- Product Anaylysis / 제품 분석
- Power of Blizzard / 블리자드의 힘
- Everyone loves game / 모두가 게임을 사랑한다.
- Three types of restaurants / 3가지 식당
- Going for porfit / 돈을 벌기 위해
- Try to make customer happy / 고객을 행복하게 하기 위해
- Love cooking / 음색 만드는 것이 좋아서
1.3. Development Cycle
- Requirements & Analysis / 요구사항 분석
- Design & Modeling / 디자인 & 모델링
- Implementation / 구현
- Test/Release / 테스트, 배포
- Feedback/Update / 피드백, 업데이트
2. Soft Skills
- Project Management / 프로젝트 관리
- Team Management / 팀 관리
- Process (Agile, Zero-Bug) / 프로세스
6-10 years of development
- Software Engineer / 중급 개발자
- Senior Software Engineer / 고급 개발자
2.1. Project Management
- Why, What, How / 왜, 무엇을, 어떻게
- Triple Constrains / 3가지 제약사항
- Cost (Resources) / 비용 (자원)
- Time (Schedule) / 시간 (일정)
- Scope (Quality) / 범위 (질)
2.2. Team Management
- Froming, Storming, Norming, Performing
- Roles around the Team
- Product owner
- Producer, Artists, Designers, Engineers
- Engineering Team Lead
- Project lead, Technical lead, People Manager
- Clear role definition. Proper delegation
2.3. Process
- Better way to do it, Optimal way / 더 잘하는 방식, 최고의 방식
- Detect failure, Prevent failure / 실패 탐지, 실패 방지
- Project Management Process
- Waterfall, Agile/Scrum
- Development Process
- Developement Cycles, Code Review
- The Joel Test: 12 Steps
- Your Own Evolving Process / 나만의 프로세스 발전시키기
2.4. Process - PMMM
- Project Management Maturity Model
- Initial = Common Language
- Repeatable = Common Process
- Defined = Singular Methodology
- Managed = Benchmarking
- Optimized = Continuous Improvement
3. Business Skills
- HR System / 인사 시스템
- Business Management / 사업 관리
- Vision/Goals/Culture / 비전/목표/문화
10+ years of development
- Lead Software Engineer
- Techinical Director, VP of Technology, CTO, CEO
3.1. HR System
- Hiring / 채용
- Performance Reviews / 평가
- Titles (Engineering) / 승진
- Rewards / 보상
- Education / 교육
- Benefits / 복지
Attract → Develop → Engage
(결합)
3.1.1. HR System - Performance Review
- Example : Software Engineer
- Productivity / 생산성
- Professionalism (Reliability) / 책임감
- Teamwork (Communication) / 협업
- Knowledge / 지식
- Functionality (No Defect) / 결함은 없는가
- Implementation (Good Code) / 코드는 깨끗한가
- Design & Architecture / 디자인 & 구조
롤 모델을 찾아서 비교한다.
3.1.2. HR System - Education
- Example : Learning & Development
- Books, Conferences / 책, 컨퍼런스
- Internal seminars, EDGs / 세미나
- College Programs, Tuition
- Side Projects, Mentoring
- Individual Development Plan
- Studio Summit, Lunch Groups
- Internal mobility (Hiring cross-teams) / 내부 인사 이동
3.2. 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, Tatics, Finance, Economics, Marketing, Sales, CS, Operations, Change
Balanced Scorecard
- Financial Perspective
- Customer Perspective
- Internal Process Perspective
- Learning and Growth Perspective
- Customer
- The company's customers
- The leadership
- The employees
3.3. Vision, Goals, and Culture
- Vision and Goals for the company
- Vision and Goals for the team
vision and Goals for you
Exampel: Blizzard Mission Statement
"Dedicated to creating the most epci 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
4. Software Development
- Hard Skill: Learn by Studying
- Basic Knowledge (C++, OS) / 기초 지식들
- Understanding for product / 제품에 대한 이해
- Development Cycle / 개발 싸이클
- Soft Skill: Learn by Experience
- Project Management / 프로젝트 관리
- Team Management / 팀 관리
- Process (Agile, Zero-Bug) / 프로세스
- Business Skill: Learn from People
- HR System / 인사 시스템
- Business Management / 사업 관리
- Vision/Goals/Culture / 비전/목표/문화
5. Q&A
- Hard Skills
- What to study: Everything
- Growth: Performance review, Endless curiosity / 조금이라도 발전, 끊임없는 호기심
- Soft Skills
- Successfult DeveloperL Talent, Practive, Chance
- How is it working in Blizzard: Experts & Collaborations
- Good Developer: Three stages(A, A+, B) / 시키는 일을 한다. 신뢰를 쌓는다.
- Business Skils
- How to learn business: Simulation & Communication
- Attitude to become CEO: Responsible for everything
- Base Skills
- Smart, Diligent, Good Will
- Communication Skill: Listen more, Win less
I don't divide the world into the weak and the strong, or the successes and the failures, those who make it or those who don't. I divide the world into learners and non-learners.
- Benjamin R. Barber
성장하고 있는 것이 중요하다.