“나는 개발자로서 잘하고 있을까?” 우리는 왜 | 커리어리

“나는 개발자로서 잘하고 있을까?” 우리는 왜 애플의 디자인을 아름답다고 느끼는 걸까요? 애플의 디자인이 가진 단순성(Simplicity)은 군더더기 없으면서도 애플이라는 브랜드에 대한 본질을 잘 나타내기 때문이라고 생각합니다. 단순해지기까지는 필요 없는 것을 덜어내고 또 덜어내야 하기 때문에 본질이 무엇인지 생각해야 하고 어떻게 해야 깔끔하게 표현할 수 있을까 고민해야 합니다. 따라서 단순성의 결과물은 복잡성보다 간단해 보이지만 단순함이 나오기까지의 과정은 복잡성보다 더 많은 사고력을 요구합니다. 코드의 단순성을 유지하는 것도 이와 마찬가지입니다. 문제가 생겼을 때 편법으로 덕테이핑한 코드는 임시방편으로 빠르게 문제를 해결할 수 있지만 기존 코드의 복잡성을 증가시키고 가독성을 떨어뜨리고 유지보수를 어렵게 만듭니다. 반대로 단순한 코드를 짜기 위해서는 초반에 시간은 걸리지만 소프트웨어의 가독성, 안정성, 유지보수성을 높입니다. 그렇다면 코드의 단순성을 유지하기 위해서는 어떻게 해야할까요? 오늘 소개해 드릴 책은 ‘심플 소프트웨어`라는 책입니다. 소프트웨어 엔지니어로서의 자세, 능력자 프로그래머의 특징, 심플한 소프트웨어를 설계하기 위해 해야 할 고민, 디버깅, 테스트, 엔지니어 팀에서 일하는 방법 등 좋은 개발자가 되기 위한 바른길을 제시해줍니다. 심플한 소프트웨어는 심플한 디자인만큼이나 깔끔하면서도 제 기능을 확실히 해냅니다. 코드의 가독성, 단순성을 유지하면서 안정성, 유지보수성을 높입니다. 하지만 쉽지 않죠. 책을 읽다 보면 나는 개발자가 아니라 스파게티 요리사였구나 라는 생각이 듭니다. 혼자서 일하거나, 주변의 피드백을 받기 어려운 상황에서 ‘나는 개발자로서 잘하고 있을까?’, ‘내가 좋은 코드를 작성하고 있는 걸까?’라는 의구심이 들 때 읽어보면 좋은 책입니다. ‘역시 나는 잘하고 있어!’가 아닌 ‘아 역시 나는 멀었구나`라는 생각이 들게 하면서 자신을 더욱 채찍질, 아니 동기 부여할 수 있습니다. 아주 자세한 설명은 없지만 좋은 프로그래머가 되기 위한 마음가짐과 사고방식, 프로그래밍 방법론에 대해 배울 수 있습니다. 각 챕터마다 내용도 짧아서 자투리 시간에 짬짬이 읽기 좋습니다.

심플 소프트웨어

Ridibooks

2022년 2월 10일 오전 3:51

댓글 0

함께 보면 더 좋은

“전쟁사에서 찾아본 기업 경영” 세계사 강의를 듣던 중 중 2차 세계대전 편을 듣다가 문득 이런 생각이 들었다. 독일은 1차 대전 패전국이었는데 어떻게 해서 전력의 열세에도 불구하고 프랑스, 소련 등 강대국들을 상대로 선전할 수 있었을까? 그러다 ‘2차 대전 당시 독일군이 오늘의 기업들에게 주는 시사점’ 이라는 글을 읽었다. 이 글은 2차 대전 당시 독일군이 전투력이 높았던 이유, 그리고 패하게 된 이유를 살펴보면서 기업의 경영 전략 수립 및 실행 시 고려해야할 시사점을 살펴본다. [전력 열세의 극복 가능성] 선도기업들은 고객 및 투자자의 선호, 우수인재 확보, 비용 경쟁 등을 무기로 시장지위를 견고히 하고 있다. 하지만 노키아, 코닥, 서킷시티, 소니, 모토로라 등의 사례에서 알 수 있듯이 선도 기업들이 환경 변화와 후발기업들의 공세를 이기지 못하기도 한다. 전력이 열세인 기업들도 어떻게 하느냐에 따라 선도기업을 앞지르는 것이 가능하다. [어떻게 강한 전투력을 보유했을까 - 현장에서의 자기주도성] 19세기 초 나폴레옹에게 패한 프로이센은 패배 원인을 ‘사고의 경직성', ‘피동적 지휘'로 보고 ‘임무형 지휘체계'라는 새로운 원칙을 수립했다. 임무형 지휘체계는 하급 지휘관들에게 주어진 임무를 수행하기 위해 필요한 행동의 자유를 최대한 보장한다. 미국 식료품 업체 웨그먼스 푸드는 ‘단 한 명의 고객도 불만족해서는 안된다'는 모토 아래 직원들은 그에 부합하는 일이라면 매니저를 거치지 않고 어떤 일이든 결정하고 실행할 수 있다. 구성원을 신뢰할 수 있는 이유 중 하나는 회사가 구성원 역량 개발을 위해 교육, 훈련에 투자하여 그들을 전문가로 만들었기 때문이기도 하다. 디즈니의 CEO 밥 아이거가 쓴 ‘디즈니만이 하는 것'이라는 책을 읽어보면 디즈니는 ‘전략기획팀’이라는 최고 부서 중심으로 경직된 체계를 갖고 있었다. 무엇을 하든 전략기획팀의 검증, 승인 과정을 거쳐야 했다. 이에 아이거는 각 부서에 의사결정권을 주면서 분산 체계로 나누었고 각 부서에 활력을 넣어주었다. [독일이 패한 이유] 2차 대전 초반 연승을 거두던 히틀러는 자신의 능력을 과신하며 모든 일을 독단적으로 결정했다. 한 군사전략가는 만슈타인, 구데리안, 롬멜 등 독일 장군들의 조언을 무시하고 자신의 판단을 고집했기 때문에 패배했다고 지적한다. 히틀러는 단지 오스트리아에서 미술을 공부하던 학생이었고 연설, 상대의 약점을 이용하는 능력으로 총통까지 올라갔다. 자신은 군사전략가가 아니라는 사실을 인정하고, 자신의 능력에 대해 정확히 인지하지 못했다. 마찬가지로 대표든지, 팀장이든지 어떤 조직을 이끌고 있는 리더라면 자신이 모든 일을 할 수 없다는 한계를 인정하고 구성원에게 자율성을 부여하는 일이 중요하다. 또한 믿고 맡길 수 있도록 구성원의 역량을 끌어올리는 것 또한 필요하다. 스티브 잡스는 새로운 부사장(Vice President)들이 임명될 때마다 ‘맡겨진 책임에 대해 주도성을 가지고 일하고, 어떤 이유든 간에 발생한 결과에 대해서는 자신들이 책임져야 한다’는 점을 분명히 전달하기 위해 다음과 같이 말했다고 한다. “당신이 단순 잡역부(Janitor)라면 이유가 중요하다. 하지만 CEO와 단순 잡역부 사이 어디엔가부터 이유는 더 이상 중요하지 않게 된다. 당신이 부사장이 됨으로써 이제 그 ‘루비콘 강’을 건넌 것이다(주사위는 던져졌다).”

2차 대전 당시 독일군이 오늘의 기업들에게 주는 시사점

Lgbr

추천 프로필

현직자에게 업계 주요 소식을 받아보세요.

현직자들의 '진짜 인사이트'가 담긴 업계 주요 소식을 받아보세요.

커리어리 | 일잘러들의 커리어 SNS