Clojure가 팀과 제품을 형성하는 방법

Clojure가 팀과 제품을 형성하는 방법

우리의 여행에 대한 4 개의 에피소드가 실제 클로 조이 이야기를 탐구하는 4 개의 에피소드, Quuppa, Codescene, Catermonkey 및 Griffin의 리더들과의 대화에서 매혹적인 패턴이 나타났습니다. 각 회사의 도메인은 실내 포지셔닝 기술과 은행 인프라에 이르기까지 뚜렷하지만, 그들의 경험은 Clojure가 코드뿐만 아니라 전체 조직에 어떤 영향을 미치는지에 대한 설득력있는 통찰력을 보여줍니다.

팀과 프로젝트를 구축합니다

Clojure를 채택하는 여정은 종종 실질적인 도전으로 시작됩니다. Quuppa에서는 엔터프라이즈 시스템에서 데이터 직렬화를 처리하는 더 나은 방법이 필요했습니다. Catermonkey의 Marten Sytema는 이미 Java로 작동하는 제품을 구축했지만 Clojure와의 더 빠른 반복 가능성을 보았습니다.

Griffin은 Clojure의 불변의 지휘 적 특성이 Banking의 고유 한 요구 사항과 어떻게 일치하는지 인식했습니다. 각 팀의 길은 달랐지만 모두 Clojure 팀을 구축하고 성장시키는 것에 대해 비슷한 질문에 직면했습니다.

고용 현실

종종 한계로 여겨지는 작은 Clojure Talent Pool은 예상치 못한 이점으로 입증되었습니다. 그리핀의 제임스 트렁크가 말한 것처럼

“더 큰 물고기가있는 작은 연못에서 낚시의 장점은 더 큰 물고기를 잡는 것이 더 쉽다는 것입니다.”

– 제임스 트렁크, 그리핀

Clojure 경험이 필요하지 않고 성공적인 팀은 기능적 프로그래밍 배경을 가진 개발자 또는 더 중요한 것은 올바른 사고 방식을 찾습니다. Haskell, Erlang, Ocaml 또는 Scala에 대한 경험은 종종 Clojure의 접근 방식을 이해할 개발자를 나타냅니다.

위치도 제약 일 필요는 없습니다. 네덜란드의 시골 지역에 본사를 둔 Catermonkey가 팀을 성장시켜야 할 때 원격 작업이 지리적 제한을 제거한다는 것을 발견했습니다. 더 중요한 것은 Clojure가 자연스러운 필터로 작동하여 기능 프로그래밍 원칙에 대해 깊이 이해하고 흥분하는 개발자를 유치하는 것을 발견했습니다.

학습 곡선 신화

Clojure의 학습 곡선에 대한 우려에도 불구하고, 팀은 새로운 개발자의 온 보드에서 지속적으로 성공을보고합니다. Clojure의 학습 곡선 평판은 현실보다 오해에 더 근거한 것 같습니다.

첫째, 모든 유능한 개발자는 핵심 개념이 간단하기 때문에 Clojure를 빠르게 배울 수 있습니다. 대부분 기능과 데이터입니다. 도전은 기술적 인 복잡성이 아니지만 다른 사고 방식으로 조정합니다. 그리핀이 발견 한 것처럼, 기능적 프로그래밍 배경을 가진 개발자들은 이미 이러한 정신적 변화를 만들어 냈습니다.

둘째, 전통적인 기업 패턴에 익숙하지 않으면 실제로 이점이 될 수 있습니다. Quuppa가 신선한 졸업생을 데려 왔을 때, 그들은 자연스럽게 Clojure를 집어 들었습니다. 그들은 시스템을 구축 해야하는 방법에 대한 선입견이 없었습니다. 그들은 복잡한 상속 계층 또는 복잡한 디자인 패턴을 뒷받침 할 필요가 없었습니다.

이것은 Catermonkey에서 Marten이 관찰 한 내용과 일치합니다. Clojure의 접근 방식을 수용하는 개발자는 신속하게 생산적입니다. 학습 곡선은 다르기만큼 가파르지 않습니다. 개발자는 프레임 워크와 패턴을 암기하는 대신 간단한 도구를 효과적으로 작성하는 법을 배웁니다.

툴링 불만은 종종 장벽으로 인용 된 것으로 보입니다. Calva를 사용한 VS 코드와 같은 현대식 편집자는 원활한 온 보딩 경험을 제공합니다. 개발자가 이점을 경험하면 REPL은 빠르게 개발 워크 플로우의 자연스러운 부분이됩니다.

이 팀이 발견 한 것은 Clojure가 배우기가 쉽지는 않지만 배우는 것은 가치가 있습니다. 투자는 생산성과 역량 증가로 지불됩니다.

Clojure가 개발을 형성하는 방법

Clojure의 개발에 대한 영향은 기술적 이점을 넘어서서 팀이 달성 할 수있는 것과 함께 일하는 방식을 근본적으로 변화시킵니다.

생산성 승수

이 팀은 소규모를 유지하기로 선택하지 않습니다. Clojure는 대규모 팀이 필요없이 복잡한 문제를 처리 할 수있게합니다. Griffin은 유사한 프로젝트에 일반적으로 수백 가지가 필요한 40 명의 엔지니어가있는 Service 플랫폼을 구축했습니다. 이러한 증가 된 생산성은 결정이 내리는 방식에서 문제 해결 방법에 이르기까지 모든 것을 형성합니다.

그들의 기술적 의사 결정 과정은 이러한 역학의 직접적인 결과입니다. 팀은 당연히 더 집중되어 있기 때문에 그리핀은 기술적 결정에 대한 익명 투표와 같은 사려 깊은 프로세스를 제공 할 수 있습니다. 팀이 전체 시스템을 이해할만큼 충분히 작을 때 계층 적 의사 결정보다는 진정한 기술 담론을 가질 수 있습니다.

간단한 도구, 복잡한 문제

생산성 이점은 Clojure의 단순성에 대한 강조에서 비롯됩니다. 이것은 복잡성을 피하는 것이 아닙니다. 효율적으로 해결할 수있는 올바른 도구를 갖는 것입니다.

“10 줄과 같은 함수로 할 수 있다면, 그렇게 할 수 있다면 라이브러리를 당기지 않고 그렇게하려고 노력합니다.”

-Marten Sytema, Catemonkey

그리핀의 경험은 이것이 어떻게 심각한 엔터프라이즈 시스템으로 해석되는지 보여줍니다. 은행 플랫폼을 구축하려면 거래, 규정 준수 및 규모에 대한 복잡한 요구 사항을 처리해야합니다. 그러나 그들은 Clojure가 “당신의 길을 벗어나서 당신에게 알았습니다. 여기 데이터, 여기에 해당 데이터에 대한 기능이 있습니다. 여기 파이프 라인이 있습니다.” 언어의 데이터 변환 및 간단하고 종합 가능한 기능에 중점을두면 일반적으로 더 큰 팀의 필요성을 유발하는 우발적 인 복잡성없이 정교한 시스템을 구축 할 수 있습니다.

이러한 단순성과 전력의 조합은 팀이 복잡성을 관리하기보다는 실제 비즈니스 문제에 초점을 맞출 수 있음을 의미합니다. 그들은 추상화 계층, 정교한 프레임 워크 또는 다른 시스템 부품을 조정하는 대규모 팀이 필요하지 않습니다. 간단한 도구를 효과적으로 사용하여 소규모 중심의 팀으로 강력한 솔루션을 구축 할 수 있습니다.

장기적인 영향

가장 설득력있는 통찰력은 이러한 선택이 시간이 지남에 따라 어떻게 진행되는지 관찰함으로써 발생합니다. Codescene은 솔로 프로젝트에서 15 명의 팀으로 성장하면서 혁신 능력을 유지했습니다. 그리핀은 강력한 뱅킹 플랫폼을 구축하면서 7에서 40 개 이상의 엔지니어를 확장했습니다. Catermonkey는 여러 국가에서 15 명의 고객에서 200 명 이상의 고객에게 서비스를 제공했습니다.

프로그래밍 언어를 선택하는 것이 단순한 기술적 결정이 아니라는 것은 분명합니다. 팀이 함께 일하고 성장하며 문제에 접근하는 방식을 형성하는 선택입니다. 그 관점에서, 이러한 초기 대화는 Clojure의 실제 가치가 기술적 인 장점뿐만 아니라 소프트웨어 시스템을 구축하고 유지 관리하는 전체 실습에 어떤 영향을 미치는지에있을 수 있음을 시사합니다.

출처 참조

Post Comment

당신은 놓쳤을 수도 있습니다