너무 좋은 글이어서 요약과 함께 공유.
20년동안 소프트웨어로 근무한 가민사의 스탭 엔지니어분이 자신의 경험을 적었다. 100% 공감..(아 나는 왜 이런 글을 못적는것인가...) 하지만 내가 만날때마다 동료들에게 하던 이야기들이 정리되어 있어 한편으로는 흐뭇하다. 나만 그렇게 생각하는게 아니었어..
 
1. 더 많은 소프트웨어 엔지니어링 관련 문서 읽기 - 뉴미디어 말고 차분히 정제된 좋은 책 읽기.
2. 문학이나 다른 비 기술서적 많이 읽기 - 사람에 대해 이해하기
3. 맥락이 왕 - 케바케
4. 모든 것이 절충: 트레이드오프를 인식하고 프로젝트 목표에 가장 잘 맞는 최상의 솔루션 제공. 용기의 미덕은 비겁함과 무모함 사이의 중간
5. 소프트웨어 공학은 실용 인식론 - 기계가 이해하는 코드 작성이 아닌, 인간이 이해하는 코드 작성. 체계적이고 의미있는 방식으로 지식을 조직화하기
6. 소프트웨어 공학은 프로그래밍이 아님: 지식에 기반한 결정, 구조화된 접근 방식, 경험적 방법, 반복을 통한 지식 향상 . 실제 문제를 인식. 고객이 진정으로 원하는 것과 고객이 원한다고 가정하는 것을 구현하는 것의 차이
7. 일상 업무에 지식과 추론을 사용: 정보에 입각한 결정/추론
8. 설계 의도파악 - 모든 결정은 어떤 일련의 의미를 가지며, 결정할때 이런 의미를 잘 이해하자.
9. 결정 문서화 - 결정이 내려진 맥락, 고려된 대안, 다양한 대안 간의 절충 분석 및 결정의 영향을 문서화
10. 신입에게 기술 세부사항을 설명할 방법 찾기 - 중요하지 않은 세부사항은 추상화하고 중요한 측면에 집중하기
11. 다른 사람이 이해할 수 있는 시스템 설계 - 우리는 팀으로 일한다.
12. 테스트는 필수 - 우리의 가설이 틀렸다고 가정하고, 가설을 테스트하려는 노력을 기울여야 한다.
13. 코드 작성보다 문제해결에 집중하자 -
14. 알고리즘과 자료구조 학습: 충분한 사전 지식을 갖춰야 더 의사소통을 잘 할 수 있음
15. 작은 것부터 혁신하자 - 작은 프로세스 개선부터 더 큰 혁신을 끌어가자. 문화 바꾸기도 동일
16.지행일치, 행지 일치 - 엔지니어링이란 경험적인 것. 배운 것을 적용하고, 적용하면서 배우고.. 좋은 학습 방법 개발 및 건전한 경험 프로세스 적용.
17. 실수로 부터 제대로하는 법을 배우기: 실수는 발전의 열쇠. 실수의 영향력을 통제해야 함. 완전히 피할 수 없음. 주요 위험을 평가하고 추적해야 함. 실수를 통해 우리는 더 빨리 배우는 경향이 있음. 가설의 오류 가능성을 통해 새로운 것을 배워 가설 모델과 현상에 대한 이해도를 향상시킴
18. 나 자신을 포함한 모든 것에 의심을 품자. - 모든 명제가 거짓일 수 있다고 가정.
19. 자신의 편견도 관리해야 하는 문제 - 자신이 가진 편향성을 인정하자.
20. 끝없는 도전 - 배우고, 실험하고, 우리 자신을 향상시킨다.
 
 
 

Lessons Learned After 20 Years of Software Engineering

It’s good to sit back and reflect from time to time. Lucian Radu Teodorescu does just that and reports back. 15th of August 2002 – the date I started working as a professional software developer. I was still 18 at that time. I have been in this profess

accu.org

 

반응형

'2. 개발 > 2.0 개발 잡설' 카테고리의 다른 글

내가 사용하는 텍스트 에디터  (0) 2022.10.15
벌레를 어떻게 잡을 것인가?  (0) 2022.08.08
하이럼(hyrum)의 법칙  (0) 2022.07.04
WSL 정리 #1  (0) 2022.04.05
드림헤븐 JD  (0) 2022.03.05

개발자들이 귀한 시대를 살고 있다. 소프트웨어가 모든 것을 먹어치우는 세상에서 핵심 역량은 개발자인데, 특히 코드를 이용하여 제품/서비스를 만드는 개발자는 정말 소중한 자산이다.

 

마사장님이 이끌고 있는 조직중 하나인 DreamHaven에서 플랫폼 개발자를 뽑는데... JD를 보면서 약간의 전율을 새삼 느끼게 되었다. 우리도 비슷한 목표를 가지고 있는지라 참고해야 할 항목이 많다.

 

먼저 두개의 파트로 소개하는데, What We Need에서는 조직에서 바라는 기술 스택을 중점적으로 다룬다. Who you are는 조직에서 바라는 인재상을 소개한다. 기술 스택에서는 특정 언어보다는 (미국 기업 대부분이 그러하지만) 일반적인 내용과  필요한 경험을 기술한다. 이를 통해 지원자는 어떤 기술을 이용하는 조직인지, 어떤 기술 역할을 맡게 될 것인지를 알 수 있다.

인재상에서는 해당 조직이 어떤 식으로 움직이는지에 대한 힌트를 제공한다.

 

채용이란 상대적으로 기업이 약간 유리한 위치에서 지원자를 선택하는 과정이긴 하지만, 궁극적으로 지원자와 조직의 (기술적, 문화적) 합이 잘 맞을지 서로 맞춰보는 맞선자리가 되어야 한다. 그래야지만 가족들보다 더 많은 시간을 보내게 되는 회사에서 개인도, 조직도 원하는 목적으로 맞춰진 행동을 통해 원하는 바를 이룰 수 있을테니까 말이다.

나중에 우리 부서의 JD도 이렇게 적어봐야 겠다.

 

https://www.dreamhaven.com/job-opportunities/senior-platform-engineer-publishing-platform

 

Platform Engineer, Publishing Platform at Dreamhaven - Join us!

Full-time role in Irvine, CA

www.dreamhaven.com

 

What we need

  • Experience working with a variety of Amazon Web Services; Google Cloud Platform experience a plus
  • Experience working with backends (e.g. Playfab, Epic Online Services, etc.)
  • Experience providing a software service, SDK, or API to internal or external teams
  • Understanding of Platform as a Service (PaaS) and general product management ideas
  • Experience integrating multiple software solutions into a cohesive offering
  • Experience in general game client/server development  
  • Experience with C++; Go and/or C# a plus
  • Python, JavaScript/Node.js or equivalent scripting language preferred
  • Generalist in application systems (authentication, authorization, commerce, accounts, profiles, matchmaking, etc.)
  • Knowledge in large scale application architecture a plus
  • Knowledge integrating with Steam, Xbox Live, PlayStation Network; iOS and Android a plus
  • Unreal and/or Unity experience a plus
  • Cloud security and governance experience a plus

Who you are

  • Customer-focused (game studios, other internal stakeholders, and our players)
  • Open to new challenges and resourceful in finding solutions collaboratively
  • Possesses a passion for working on platforms supporting multiple game teams
  • Willingness to dive into unknowns and do lots of research
  • Comfortable working with not well defined problems and work to define and resolve methodically
  • You play some games on some platforms (mobile phones, PC or consoles)

Other Information

  • Remote work will be considered on a case-by-case basis as on-site work is preferred
반응형

+ Recent posts