paint-brush
인기 없는 의견: 좋은 소프트웨어 엔지니어가 되는 것은 그 어느 때보다 어렵습니다~에 의해@jurajmalenica
8,605 판독값
8,605 판독값

인기 없는 의견: 좋은 소프트웨어 엔지니어가 되는 것은 그 어느 때보다 어렵습니다

~에 의해 Juraj Malenica5m2023/10/15
Read on Terminal Reader

너무 오래; 읽다

기술의 빠른 길에서 살아남기: 변화하는 세상에서 진정으로 중요한 것이 무엇인지에 집중하는 엔지니어, 과대 광고 이야기
featured image - 인기 없는 의견: 좋은 소프트웨어 엔지니어가 되는 것은 그 어느 때보다 어렵습니다
Juraj Malenica HackerNoon profile picture
0-item

거의 10년 동안 스타트업 환경에서 일하면서 저는 빠르게 변화하는 혁신, 탐색, 빠른 실패 접근 방식의 문화에 접근할 수 있는 특권을 얻었습니다. 나는 인턴, 주니어, 미드, 시니어의 표준 진행 사다리를 따랐고 결국 엔지니어링 관리 트랙으로 이동했습니다. 시간이 지나면서 나와 함께 성장한 많은 사람들은 나중에 다른 회사로 옮겨가 그곳에서 매우 존경받는 기여자가 되었습니다. 그들은 좋은 엔지니어라고 말하는 것이 공평할 것입니다.


동료, 멘티, 그리고 내 자신의 여정을 되돌아보면, 좋은 엔지니어가 되는 것이 그 어느 때보다 어려운 것 같습니다.

좋은 엔지니어를 정의하다

엔지니어가 된다는 것은 무엇을 의미하나요? 소프트웨어 엔지니어로서 우리는 다음과 같습니다.

  • 복잡한 문제를 효율적이고 확장 가능한 솔루션으로 변환하는 역할을 담당합니다.
  • 사용자 요구 사항 분석, 소프트웨어 아키텍처 설계, 코드 작성, 소프트웨어 테스트 및 디버깅을 담당합니다.
  • 트렌드를 선도하고 새로운 비즈니스 기회를 모색하며 기존 제품을 개선할 것으로 예상됩니다.

따라서 아니요. 엔지니어링은 프로그래밍과 동일하지 않습니다. 때로는 그것이 가장 작은 부분일 때도 있습니다. 아래 그림과 같이 경험치를 많이 얻을수록 확실히 나타나는 것 같습니다.

역할별 업무분배

좋은 엔지니어가 된다는 것은 무엇을 의미하는가? 수많은 인터뷰와 멘티의 발전을 지원하면서 저는 다양한 수준의 전문 지식을 가진 사람들이 서로 다른 대답을 할 수 있다는 것을 깨달았습니다.


이제 막 시작하는 사람은 개발자가 알고 있는 언어와 프레임워크의 수라고 생각할 수도 있습니다. 경험이 많은 엔지니어는 자신이 사용하는 언어에 관심조차 두지 않고 코드 품질을 강조할 수 있습니다. 즉, 모든 코딩 원칙을 준수하고 신속하게 진행하면서 QA를 수행하는 것입니다 .


경험이 풍부한 엔지니어들은 가치 창출에 중점을 두고 있습니다. 때때로 우리는 가설을 증명하기 위해 모든 규칙을 깨는 일회용 코드를 빠르게 작성합니다. 때때로 우리는 몇 줄의 미션 크리티컬 코드를 작성하는 데 며칠을 소비할 것입니다. 하지만 대부분의 경우 우리는 아키텍처 결정을 내리고, 미션 크리티컬 문제를 논의하고, 프로세스를 개선하는 등의 작업을 하고 있습니다. 왜일까요? 왜냐하면 그것이 가장 큰 가치를 가져오는 경우가 많기 때문입니다.


규칙에는 항상 예외가 있지만, 좋은 엔지니어는 목표 달성에 있어 최대 가치를 창출하기 위해 효율적으로 노력을 집중하는 사람이라고 말할 수 있습니다.

성장하는 시장과 경쟁

기술 시장은 끊임없이 진화하고 있습니다. 우리 모두는 WhatsApp에서 Uber, Airbnb, TikTok에 이르기까지 수년 동안 엄청난 성공을 거두었습니다. 이는 예외일 수 있지만 이러한 사례는 사람들이 노력해야 하는 북극성을 설정하는 경우가 많습니다. 이러한 사고방식은 엔지니어에게 추가적인 부담을 줍니다. 그들은 내부에서는 자신이 뭔가 잘못하고 있다고 생각하면서 스트레스를 받고, 외부에서는 사람들이 자신의 회사를 많은 경쟁사와 비교하면서 스트레스를 받습니다.

총 기술 시가총액

이러한 환경에서 성공하려면 기업은 페이스북의 유명한 모토처럼 "빠르게 움직여서 일을 깨뜨려야" 합니다. 오늘날 이는 그 어느 때보다 명백합니다. 거의 모든 회사가 " AI 회사 "가 되어가고 있습니다. 모두가 실제 이유나 가치 창출 방법에 대한 전략 없이 ChatGPT를 통합하는 경우가 많습니다.


고객에게 어떻게 더 많은 가치를 제공할 수 있는 가라는 핵심 원칙에서 벗어나 과장된 경쟁에서 승리하는 방향으로 나아가 면 엔지니어들이 실패할 운명의 기능을 구축하게 됩니다.

세상은 혼란스러운 곳입니다.

나 같은 열정적인 사람이 더 나은 엔지니어가 되려면 어떻게 해야 할까요? 깔끔한 코드와 아키텍처 철학을 개선하여 코딩 기술을 완성한다는 당연한 선택 외에도 요즘에는 많은 유혹이 숨어 있습니다. TypeScript와 모든 것을 바꾸는 최신 프레임워크를 배우고, 블록체인과 암호화폐의 세계로 뛰어들고, 수많은 AI 제품을 실험해 보세요. 옵션은 끝이 없습니다.

모든 자바스크립트 라이브러리

솔직히 말해서 업계에서 오랜 세월을 보낸 후에도 ChatGPT, GitHub Copilot 및 기타 신흥 기술이 가져오는 새로운 변화의 물결에 여전히 위협을 느꼈습니다. 내 두뇌는 내가 너무 많은 것들과 접촉하지 못하는 시나리오를 상상하기 시작했습니다. 나는 가치를 창출하기 위해 올바른 일에 집중하고 있습니까? 나는 나의 잠재력을 최대한 활용하고 있는가?


얼마 후, 우리가 과대광고에 빠져 있다는 것이 분명해졌습니다. 그것 역시 통과될 것이며, 장기적인 가치를 창출하는 AI 기업들만 남게 될 것입니다. 지난 5년 동안 미국에서 AI 회사의 수는 두 배로 늘어났으며, 많은 스타트업이 새로 출시된 GPT-3에 기능을 추가했습니다. 나중에 ChatGPT 또는 GPT-4가 출시되면서 사라질 것입니다. 이는 동일한 작업을 수행할 수 있지만 더 나은 기능을 제공합니다. 그러나 이것이 트위터와 다른 플랫폼의 과대 광고 군대가 새로운 세계 질서를 선포하는 것을 막지는 못합니다.


기술 분야에서 수년 동안 일했음에도 불구하고 저는 과대광고에 빠져들었습니다. 초보 실수!


프로그래밍 언어와 새로운 프레임워크의 지속적인 출시도 혼란을 가중시킵니다. Tailwind, TypeScript, Haskell, Rust는 모두 훌륭합니다. 그들은 각각 그들에게 이점을 주는 각도를 가지고 있습니다. 그러나 사람들은 종종 그것들을 배우는 것이 자신에게 유리할 것이라고 착각합니다. 그렇지 않을 것이다. 적어도 그렇게 되어서는 안 된다. 그것들은 알아두면 좋은 도구일 뿐이지만 경험을 대체할 수는 없습니다. 그렇기 때문에 우리는 직무 설명에 언어/프레임워크 요구 사항을 절대 넣지 않습니다. TypeScript, 신속한 엔지니어링 또는 마이크로서비스를 모르기 때문에 재능 있는 엔지니어를 놓치는 것은 어리석은 일입니다.


내 조언은 - 새로운 트렌드에 사로잡혀 가치 창출에 집중하지 못할 정도로 과대광고하지 말라는 것입니다.

빠른 속도와 높은 기대감

새로운 도전을 모색할 때 부정적인 스트레스를 피하면서 긍정적인 스트레스를 얻으려고 노력하는 것이 어려울 수 있습니다. 긍정적 스트레스는 스트레스가 많은 상황을 좋은 결과로 이어지는 기회로 인식하는 반면, 부정적인 스트레스는 아래 이미지에서 볼 수 있듯이 신체적, 정신적 건강에 해로운 영향을 미칠 수 있는 스트레스입니다. 빡빡한 일정에 맞춰 지속적으로 결과를 제공하는 것은 스트레스가 많으며, 잘못된 이유로 기능을 구축하면 후자로 기울게 됩니다.

긍정적인 스트레스 대 부정적인 스트레스

멘토이자 열심히 일하는 사람으로서 저는 스트레스가 탈진으로 이어지는 것을 보았습니다. 예외 없이 누군가가 번아웃을 겪게 하면 작업량을 줄이고 휴식을 취하고 장기적으로 최적화하는 것보다 생산량이 줄어듭니다. 그렇기 때문에 우리는 정기적인 팀 업데이트, 일대일 및 육성 문화를 통해 항상 위험 신호를 최대한 간단하게 제기하려고 노력합니다.


그래도 상황이 잘못될 것입니다. 그렇게 되면 범위를 줄이고 도움을 줄 수 있는 사람들을 참여시키거나 고객과 소통하여 출시를 연기합니다.


내부와 외부 모두에서 압력이 그 어느 때보다 높아졌습니다. 집중력을 유지하고 장기적으로 최적화할 수 있는 지원 팀과 함께하세요.

어떻게 하면 더 잘할 수 있을까요?

우리 모두는 부족한 엔지니어, 멘토 또는 동료처럼 느껴지는 우울한 순간을 갖고 있습니다. 모든 일은 결코 완벽하거나 쉬울 수 없으며, 그래서도 안 됩니다. 실수와 어려움을 겪지 않고서는 배울 수 없습니다. 하지만 효율성을 높일 수 있는 몇 가지 방법이 있습니다.

영향력 수준

개인적으로 정말 중요한 것에 충실하십시오. 기술은 왔다가 사라지지만, 세상에 제공하는 가치가 중요합니다. 노력과 경험을 가짜로 만드는 것은 어렵습니다.


회사로서 의사결정을 내릴 때 '왜' 부터 시작하세요. 이는 가치를 가져올 기능을 제공하는 가장 좋은 방법입니다. 또한 직원들이 그 이유를 알고 있는지 확인하십시오. 내 경험에 따르면 그들은 더 나은 결정을 내리고, 귀중한 피드백을 주며, 더 행복해질 것입니다.


문화적으로 직원을 지원하고 장기적으로 최적화할 수 있는 프로세스를 확립하십시오. 동료들과 함께 신뢰, 지지, 배려의 문화를 조성하십시오. 그렇게 하면 여러분 모두가 서로의 장점을 최대한 활용할 수 있을 것입니다.