이상한 소프트웨어 공학 상관 관계가 있다는 것을 주목했나요?
저는 장기적 관점에서 소프트웨어 공학의 그랜드 게임에서 혁신을 추구하는 사람으로서 일 끝나는 시점에 항상 해결되지 않는 한 가지 문제가 남아있어서 키보드를 뒤로 밀고 뒤로 기대어 머리를 양손으로 꼭 쥐어 울 수밖에 없다는 점에서 홀로 이런 경험을 하는 것은 아니라고 자신 있게 말할 수 있습니다.
우리는 모두 하이(끝)로 하루를 끝내는 것을 좋아합니다. 때로는 말 그대로 (그러나 닷컴 붕괴 이후 변화한 이후에는 이러한 일이 거의 발생하지 않지만 더 진보적인 스타트업에서 재빨리 현금을 얻기 위해 블록체인에서 "AI"로 전환한 것처럼) 편람같은 프로젝트 매니저의 패션 충고를 듣는 것만큼 짜증납니다. 컴파일되지 않는 코드 줄, 로드되지 않는 암호화 인증서, 또는 오르지 않거나 유지되지 않는 쿠버네티스 파드 등 해결되지 않는 문제가 있을 때 말이죠.
그리고 우리가 하루를 긍정적인 마음가짐으로 마무리하지 못하면 좀 슬퍼하는 경향이 있다는 것이죠. 이는 저녁시간을 망치고 만다는 거니까요. 저녁시간에는 일에 대해 생각하지 않고 스스로의 것을 프로그래밍하거나 온라인 FPS 게임을 즐기며 다른 플레이어를 "제거"하거나 소프트웨어 엔지니어링 산업에 대한 끝없는 냉소적인 Medium 기사를 쓰면서 정신을 추스르는 활동을 하곤 해요.
그래서 우리는 하루 중 가장 어려운 문제들에 일찍 도전해보려고 합니다. 그렇게 하면 업무 마치는 시간 전에 그 문제들이 해결되어 끝났을 텐데 하는 희망이 있거든요.
하지만 불행히도, 우주는 실은 우리에게 관심이 없답니다. 사실을 말하자면, 그것은 어떤 소프트웨어 엔지니어에게도 적극적으로 적대적입니다. 몇 년 동안 지켜본 결과, 업무일 중 성공과 시간 간에 매우 불안한 상관관계를 발견했어요.
아침 10시입니다. 프로덕션 데이터베이스가 다운됐고, 어떤 무식한 사람(아마도 프로젝트 매니저일 거에요)이 AWS에 로그인해서 주요 RDS 보안 그룹의 모든 항목을 삭제했어요.
걱정 마세요. 그냥 clickety-click⁴
을 클릭하면 됩니다. AWS의 미로와 같은 계층 구조를 탐험하며 무한히 새로 고침되는 페이지를 견뎌야 하는 롤러코스터를 타고 있을 때, 몇 분 내에 모든 것이 다시 복구됩니다.
IT 부서에 빠른 이메일을 보내서 그들을 깨웁시다. PM이 무엇을 했는지 추적하는 감사 트레일의 사본을 첨부해서 소프트웨어 공학 부사장(골프 코스에 있는 동안 항상 핸드폰을 쥐고 다니는 분들)을 참조합니다. 그러면 PM이 나가고 여러분은 몇 가지 단계를 올렸으며 사람들은 온라인 포털을 통해 회사의 제품을 계속 구매할 수 있습니다.
오후 1시쯤, 저녁 무렵으로 회사의 백엔드 웹사이트에서 암호화 인증서가 만료된 것으로 나타나면 (누구나 알 수 있는 것처럼) 프로젝트 매니저가 렛츠 인크립트로부터의 모든 경고를 무시하고 "예산이 없다"고 해석 및 자동 갱신 스크립트를 설정할 누군가를 고용하는 데 예산이 없었습니다.
하지만 걱정하지 마세요. "풀스택"이라 불리는 사람 중 한 명이 아마 처리할 수 있을 것입니다. (컴퓨터 과학보다는 소프트웨어 공학이건만, 아마도 이에 관한 Udemy 강좌를 시청하고 그에 대한 자격증이 있다는 것을 증명할 수 있는 것이므로)
그래서, 당신이 그들을 회사 주방에서 찾아가면, 그들은 새로운 커피 머신과 원두 분쇄기를 작동시키면서 실시간 블로깅을 하고 있고, 동시에 또 다른 "풀 스택 비밀!" TikTok을 녹화하고 있는데요. 그들에게 무슨 일이 일어나고 있는지 설명해 주세요.
몇 개의 인스타그램 게시물 뒤에, 그들은 어떤 이유 때문에 DNS 레코드의 일부 설정을 변경해야 한다는 것을 깨닫게 됩니다. 그래서 당신은 그들과 함께 앉아서, 암호가 실제로 어떻게 작동하는지 설명해 주고, 올바른 계정에 로그인하도록 도와주어야 합니다. (그들은 자신들이 디자인한 웹사이트만 사용해오다 보니 파이썬 및 장고로만 제작된 웹사이트를 사용한 적이 있습니다.)
시간이 흘러갑니다.
그들이 그 안에 들어간 후 어느 순간 깨닫게 되고, DNS가 무엇을 의미하는지 모르고 DMS⁵로 오해했던 것이라는 사실을 깨닫게 됩니다. 실제로 레츠 암호화 자격 증명이 저장된 곳은 DMS가 아니라 DMS⁵입니다.
그럼, 그 특정 저장소에 접근 권한이 있는 사람이 제품 관리자뿐이라는 것을 발견하게 됩니다. 프로젝트 관리자도 아니라고요.
그래서 그들을 찾아가야 합니다. 그들에게 자신의 자격 증명을 어디에 적어 놓았는지 (궁금하다면 키보드 아래면이죠) 기억시켜주고, 로그인하게 하고, 설정을 변경하고, "풀 스택" 사용자가 키보드의 'Return' 버튼을 찾는 법을 보여주며 ("마우스만 사용"하고 "CLI는 사용하지 않습니다") 모든 것이 결국 괜찮아진다는 것을 이해시켜주어야 합니다.
5시에 조금씩 다가오는 일상적인 로그오프 및 퇴근 시간에, 가장 많은 요구가 생기는 것은 확실합니다.
어디서나 24GB의 예외 보고서가 자동으로 생성되어 터미널로 넘어오며, 18세기에 만들어진 자바 거대 몬스터가 어떻게든 부활해서 주요 애플리케이션 서버의 저장 공간을 모두 소비해버리고, 인사 담당자가 꽤나 심한 재귀 이메일 초대 연쇄 덕분에 "올 핸즈" 미팅 요청의 1,000 개 사본을 보내기 시작합니다.
공원 가장 머나먼 코너에서 흥분한 소리가 들리더니 프로젝트 매니저가 걸려 넘어졌다면 어떨까요. 과연 그 땐 제일 가까운 창 손잡이에 닿아 창이 격렬하게 열리더니, 컬러지며 종이조각들이 방 안 곳곳으로 뿌려지면서 마치 다채로운 숨겨진 눈보라처럼 보일 것입니다.
오후 4시 45분, 매니저가 절망에 빠져 “티켓을 찾으러 가세요!” 라고 모두에게 물어봤어요. 여러 명의 개발자가 해끈과 나무 막대로 다시 일으키려고 Java 상자를 찾아가고, 제가 문제를 일으키고 있는 파이썬 미크로 서비스 중 어떤 것인지 찾을 수가 없어요. 서로가 서로를 계속 생성하며 지옥 같은 웃음소리를 내며 무한 정보 없는 예외 보고서를 끊임없이 채우고, 점점 더 많은 메모리를 사용하며 기계의 속도를 느리게 만드는 양질의 미소 서클을 이루고 있거든요.
더 추가해야 할 것이 있다면, 지난 주에 설정된 쓰레기통 파이프라인이 분노하며 에러 로그를 개발자 메일링 리스트 전체에 토해내었습니다. 기업의 백엔드 웹 서비스가 바탕으로 하는 몇 기가바이트 형태 없는 스파게티 자바스크립트 카드의 집을 처리하려고 설치된 파이프라인 말이지요.
노트: 그래서 나는 JavaScript와 일하지 않는 이유다.
칭구여러분, 핵심은 아침에 문제들을 해결하면 좀 수월할 거니까 빠르고 쉬운 승리에 기쁨을 느끼세요. 혹은 엘로이들이 그들을 부르는 "낮은 열매"로 말이지.
그러나 오후에 문제가 발생하면 그것을 해결하기가 어려울 것이고, 그 중요도는 훨씬 더 높을 것이며, 긴급성은 그만큼 극도로 불안할 것이며, 그 규모는 그만큼 더욱 크게 될 것이다.
적어도 가정에서 일한다면 애자일 선언이 도래했을 때 오프라인인 척할 수 있고, 관리자들이 무리해서 뒤죽박죽이 뛰어다니게 내버려두고 밤새 근무하지 않아도 되고, 아침에 5분 만에 쉽게 해결하고 진정한 천재로 보일 수 있다는 것을 기억하세요.
호기심이 많은 분
-
현재 비즈니스 용어로는 "EOD", "close of play" 같은 거예요. 나는 기껏해야 여기까지임금을 받는 부분이라서, 다음 날에 올 때까지 관두는 편이야. 초과 근무 수당이 없으면, 대체 휴가를 받는 것도 아니고, 행성 방어 시스템을 개발 중이고, 큰 속치령이 쳐올려 오고 있을 때가 아니면 말이지.
-
"CrashLoopBackOff"이라는 에러 메시지가 정말 유익하고 직관적으로 잘 나와 있어. 파이썬이나 자바 같은 언어에서 얻는 "예외로 인한 스택 추적처럼 큰 문장 2000자짜리"보다 훨씬 낫지.
-
그렇긴 한데, 그냥 내 생각 뿐일 것 같아. 맞지?
-
나의 히어로.
-
아마도 "문서 관리 시스템".
-
이전에 많이 사용했던 온라인 소스 코드 저장소를 잘못 입력한 것 같아.