CI/CD는 효율성에 관한 것이 아닙니다.

DevOps 원칙, 특히 CI/CD는 일반적으로 소프트웨어 개발 조직을 보다 효율적으로 운영하는 방법으로 제시됩니다. 수동으로 코드를 테스트하고 배포하는 것보다 CI/CD가 더 효율적이고 효과적이라는 믿음을 가지고 있지만 자주 언급하지 않는 것에 대해 이야기하고 싶습니다.

간단히 말해서 CI/CD는 우리를 행복하게 합니다.

개발자의 행복이 중요하다



CI/CD의 실질적인 이점을 보여주는 훌륭한 리소스가 있습니다. 더 적은 버그, 더 빠른 기능, 더 빡빡한 릴리스 일정 등. 해당 데이터에 관심이 있는 경우 "Accelerate"라는 책을 추천하지만 모든 것을 잠시 잊어버리자.

기술 회사는 직원을 행복하게 유지하기 위해 많은 돈을 씁니다. 예산이 충분하다면 그들은 탁구대를 설치하고 탄산음료 기계를 구입하고 모임을 주최하고 바리스타를 고용합니다. 이러한 모든 특전은 훌륭하지만 새 코드를 풀다운하고 백엔드를 수동으로 다시 시작하기 위해 매일 여러 번 서버에 ssh'ing하는 경우 나는 행복한 캠퍼가 아닙니다.

좋은 엔지니어는 지루한 일을 자동화하고 싶어합니다.

사람들은 나쁜 직장을 그만두는 것이 아니라 나쁜 개발자 경험을 그만두는 것입니다.



다음과 같은 말이 있습니다.

People don't quit bad jobs, they quit bad bosses



물론 거기에는 진실이 있지만, 저는 좋은 상사가 있더라도 개발자 경험이 정말 싫다면 직장을 그만둘 것입니다. 이제 나는 또한 그만두기 전에 개발자 경험을 업그레이드하기 위해 많은 시간을 할애하는 사람이지만 때로는 장애물이 너무 많습니다.

저는 쉽게 자동화할 수 있는 수동 작업을 정말 좋아하지 않습니다. 코드 배포가 마음에 들지 않습니다. 나는 PR을 병합하는 것을 좋아합니다. 나는 달릴 수 있도록 동료의 4줄 PR을 당기는 것을 좋아하지 않습니다go test . 테스트가 PR에서 통과된 것을 보는 것이 좋습니다.

자동화를 설정하는 것이 가치가 있습니까?



자동화에 관한 제가 가장 좋아하는 만화 중 하나는 이 고전XKCD입니다.



그러나 일부 사람들이 자동화와 관련하여 문제가 있는 가정을 합니다. 나는 이것이 올바른 방정식이라고 생각하지 않습니다.

should_automate = time_to_automate < time_for_task * num_tasks


방정식은 너무 실용적입니다. 인간은 감정의 동물입니다. 일반적으로 수동 작업을 반복해서 수행하는 것보다 자동화를 작성하는 것이 더 즐겁다는 사실을 설명할 수 있는 여유가 더 필요하다고 생각합니다.

완전히 이기적인 이유로 일부 데이터를 데이터베이스로 이동하는 스크립트를 작성하는 데 6시간을 수동으로 복사하여 붙여넣는 데 보내는 것보다 8시간을 보내는 것이 더 낫습니다. 작업 중 하나는 영혼을 빨아들이고 손가락을 마비시키는 고통스럽고 지루한 작업입니다. 다른 하나는 아마 약간 재미있을 것입니다.

아마도 좋은 비유는 "100달러를 벌기 위해 돌을 삽질하는 데 4시간을 할애할 것인가, 아니면 비디오 게임을 하며 6시간을 할 것인가?"일 것입니다.

나머지 수작업이 더 즐거워집니다.



버그가 보고되었고 문제가 무엇인지 정확히 알고 있다고 상상해 보십시오. 멋진 자동화 파이프라인을 설정한 경우 사용자의 문제를 수정하는 것은 단순히 코드를 변경하는 것만큼 쉽습니다.

그러나 자동화 기능이 없다면 골치아픈 일입니다. 코드를 변경하는 데는 여전히 30초밖에 걸리지 않지만 이제 프로덕션 환경에서 새 코드를 실행하는 데 수동으로 15분이 소요됩니다. "어쩌면 이 배포는 우리가 어쨌든 배포하려고 했던 날이 끝날 때까지 기다릴 수 있을지도 모릅니다."라고 생각합니다.

내가 말하는 것은 내가 유난히 게으르다는 것이고, 나는 그것을 알고 있다. 나는 내 직업을 가능한 한 많이 좋아하도록 함으로써 동기부여와 효율성을 유지합니다. 자동화는 절대적인 의미에서 더 효과적이기만 한 것이 아닙니다. 그것도 그렇지만. 자동화는 또한 내 일을 더 즐겁게 만들어서 일을 더 의욕적으로 함으로써 더 효율적이 되는 것과 관련이 있습니다.

너의 요점이 뭐야?



나는 모든 것을 자동화하지 않을 것입니다. 효율성을 포기하지 않았습니다. 그러나 나는 기계가 아니고 인간이고 그것을 즐기기 때문에 자동화에 편향되어 있습니다.

좋은 웹페이지 즐겨찾기