저자는 1990년대 복잡하고 난해한 코드로 남이 이해 못하면 실력이 좋다고 한다.
그리고 7년차에 '숙련된 개발자'가 아닌 '소프트웨어 아키텍트'로 커리어가 전환이 되면서 겪는 이야기를 한다.
아키텍처 팀은 개발자들이 따라야만 하는 디자인 패턴 북을 만드는 막강한 권한이 있다 (생략)
아키텍트는 비즈니스 분석가와 대화하며 요구사항의 기능적/비기능적 요소들을 이해하고 (생략)
요구사항과 고객 환경이 어떻게 바뀔지 무당이 점치듯 추측해야 한다. 예측하는 것은 거의 불가능했다. (생략)
시스템이 커지더라도 부작용이 적을지 고민해야 했다. 이에 대한 대응책이 추상화를 하고, 요소마다 디자인 패턴을 적용하는 것이다.
오늘날에는 그런 방식을 오버 엔지니어링이라고 한다.
어리석지만 그 당시에는 아키텍트의 혜안이라고 했다.
하지만 저자는 다음과 같은 이유로 커리어를 변경했다.
정리하면 커리어 패스를 정할 때는 내가 열정이 있는 것,
진정 즐겁게 할 수 있는 것을 따라야 한다
높은 연봉, 직위, 복지, 혜택 등, 선망하던 자리를 포기하는 건
누구라도 쉽게 선택할 수 없는 결정이다. 지금 시대라면 더더욱 쉽지않다.
이 문단은 읽으면서 처음 코딩을 시작한 날을 생각했다.
너무 생소했지만 신기하기도 했으며, 내가 원하는 대로 만든다는 재미가 있었다.
국비학원에서 매일 재미있게 코딩을 배웠고 개발자로 시작하면 매일 재미있게 코딩할 수 있는 줄 알았다.
그 뒤로는... TMI
계속해서 저자는 시대의 변화가 빠른 21세기의 개발자들이 직면한 현실과
고참 개발자를 이야기한다.
고참 개발자
어떤 개발자가 고참인지의 여부는 그가 얼마나 많은 지식을 가졌느냐가 아니라
그 업계에 얼마나 오랫동안 몸 담아 왔느냐로 판단되고 있다.
업종에 상관없이 경력이 높으면 고참이라고 누구나 생각할 수 있다.
현재도 앞으로도 이 의미는 많은 사람들에게 통용되는 의미라 생각한다.
해가 가면서 '고참'이라는 것이 '일시적'이고 '상대적'임을 알게 되었다.
기술이 발전함에 따라 고객이 기존과 다른 형태의 시스템과 기술을 요구할 수 있기 때문이다. (생략)
고참 개발자, 신참 개발자라는 것은 없다.
큰 규모의 기업 시스템용 자바 애플리케이션 개발에 경험이 많더라도 자바 스크립트로 게임을 만드는데 생초보일 수 있다.
의문을 던지는 내용이다.
현재 시장에는 Java, C++, Go, Kotlin 등 다양한 언어와 다양한 프레임워크가 존재한다.
경력이 많은 개발자라고 해서 이 다양한 것들을 모두 사용할까?
대부분 개발자는 회사가 사용하는 언어와 프레임워크를 주력으로 사용할 것이다.
이직한다해도 전혀 다른 언어, 프레임워크가 아닌 익숙한 기술로 이동할 것이다.
그럼 고참 개발자가 아니면 무엇일까? 해당 언어와 프레임워크에 '능숙한 개발자' 의미일까?
(더 나아가 흔히 말하는 시니어와 주니어의 차이는 무엇일까?)
새로운 현실
코딩은 개발자가 해야 하는 많은 일들 중에 하나일 뿐이다.
코딩을 잘 하거나 특정 언어나 프레임워크에 매우 익숙하다고해서 고참 개발자가 되는 것은 아니다.
고참 개발자에 대한 의문을 해소하는 내용이 나왔다.
언어와 프레임워크에 '능숙한 개발자' 이면서 다음과 같은 것을 할 수 있어야 한다.
고객과 대화하기
테스트/배포 자동화하기
전체 비즈니스에 영향을 미칠 기술 선정하기
(생략...)
더 나은 업무 방식 찾기
고객에게 가치 있는 상품이 전달되고 있는지 고민하기
고객과의 소통을 중점으로 개발자는 비즈니스도 알아야한다고 주장한다.
과거에는 애플리케이션 사용자가 회사 내부인이거나 업무적으로 관계된 사람이 대다수 였지만
오늘날에는 전세계 수백만 명의 일반인들이 애플리케이션을 사용하고 있다.
우리나라도 90년대 후반에 컴퓨터가 보급되고 인터넷망 구축으로
기업만 사용하던 애플리케이션을 누구나 손쉽게 사용하기 시작했다.
소프트웨어 업계는 소프트웨어 개발 방식이 프로페셔널하게 바뀌도록 압력을 받고 있다.
기업들은 이제 시키는 일만 하는 값싼 코더가 아니라 프로페셔널 개발자를 원하고 있는 것이 요즘의 현실이다.
이런 시대의 변화에 따라 단순히 시키는 일만 하는 개발자보다
능동적이고 적극적이면서, 비즈니스를 이해하는 개발자를 추구하기 시작한다.
많은 기업들이 개발 역량이 부족하여 어려움을 겪고 있다. 느린 시장 대응, 높은 유지보수 비용, 버그 투성이의 저품질 제품,
역량 있는 개발자 부족에 시달리고 있다.
예전부터 개발자가 없다고 한다.
메이저 회사도 공고를 올려도 인력 충원을 못한다.
경쟁하다보니 개발자 몸값이 오르고, 뉴스에도 자주 언급되니
개발자가 되고 싶어 학원에 몰리는 현상이 나타나고 있다.
하지만 이미 예전부터 학원에서 많은 개발자가 배출되고 있었지만 많은 기업들이 개발자가 없다고 아우성치고 있다.
무엇이 이런 괴리감을 만들게 되었을까.
아직도 학원에서는 코더용 개발자를 양성하고 있기 때문이 아닐까?
(SI 취업이 쉽고, 취업률이 학원의 성과지표)
마지막에 저자는 이런 글귀를 남긴다.
소프트웨어 장인정신이 왜 필요할까?
소프트웨어 장인정신이란 무엇일까?
우리는 프로페셔널 소프트웨어 개발자일까?
왜 애자일만으로는 부족할까?
여러 의문을 남기는 글귀다.
'서적 > 소프트웨어 장인' 카테고리의 다른 글
[CHAPTER 5] 영웅, 선의 그리고 프로페셔널리즘 (0) | 2021.05.05 |
---|---|
[CHAPTER 4] 소프트웨어 장인의 태도 (0) | 2021.05.05 |
[CHAPTER 3] 소프트웨어 장인정신 (0) | 2021.05.04 |
[CHAPTER 2] 애자일 (0) | 2021.04.27 |
소프트웨어 장인을 시작하면서... (2) | 2021.04.23 |