소프트웨어 하우스 재구성: 기술 프로필을 변경하고 IT 시장에서 전문화를 선택하는 방법은 무엇입니까?
게시 됨: 2023-03-06모든 소프트웨어 회사에는 고유한 기술 프로필이 있습니다. 기술자에게는 회사의 도메인 프로필보다 이것이 더 중요한 경우가 많습니다. 이것은 IT 개발자가 자신이 일하는 기술의 프리즘을 통해 자신을 보기 때문입니다. 예를 들어 저는 C#으로 구축된 시스템의 프로그래머입니다. 그러나 교육을 다루는 회사를 위해 프로젝트를 수행하는지 또는 상자를 생산하는지 여부는 두 번째로 중요합니다. 물론 도메인 지식은 프로그래머에게 항상 유용하지만 기술적 차원을 통해 자신에 대한 인식을 바꾸지는 않습니다. FINGO의 공동 창립자이자 CTO인 Robert Marek은 말합니다.
FINGO 는 20년 이상 프로그래밍 서비스를 제공해 온 폴란드 소프트웨어 회사입니다. 2022년에 조직은 성공적으로 기술 프로필을 변경했습니다. Java 및 .NET 기술로 제공되는 프로그래밍 서비스 외에도 Node.js를 추가하고 지금까지 생성된 모든 프로젝트를 PHP로 완료했습니다.
왜 이런 조치를 취했습니까? 자기 조직화 과정은 어떤 모습입니까? 결과는 어땠습니까? Robert Marek과의 인터뷰를 읽고 알아보세요.
기술 프로필 자체를 변경하는 프로세스에 대해 이야기하기 전에 조직 개편 이전의 회사 모습을 말씀해 주시겠습니까?
FINGO의 20년 포트폴리오를 따르면 금융, 부동산, 자동차, 전자 상거래 및 서로 다소 관련이 있는 기타 여러 부문에 대한 프로젝트를 찾을 수 있습니다. 그것은 약간의 우연의 일치입니다. 수년에 걸쳐 그러한 프로젝트가 나타났고 우리는 우리 팀을 발전시켜 왔습니다. 그러나 이러한 상황은 우리가 추가 주문을 찾고 있던 우리의 기술적 프로필(Java, .NET, PHP)에 크게 영향을 받았습니다.
그러나 나는 그것이 우리 사업에 좋지 않다고 느꼈다. 큰 기술 확산은 일반적으로 FINGO 규모의 소프트웨어 하우스에 적합하지 않습니다. 프로젝트를 찾는 것이 더 쉬울 수 있지만 사람들의 교환 가능성을 보장하는 것은 더 어렵습니다. 예를 들어 보겠습니다. 프로젝트에 5명의 개발자가 필요하다고 가정합니다. 벤치에는 6명이 앉아 있지만 프로젝트에 필요한 기술을 아는 사람은 2명뿐입니다. 이 상황은 귀하가 작업을 제공해야 하는 4명의 고임금 전문가가 여전히 실직 상태임을 의미합니다. 또한 프로젝트에 인력을 배치하려면 필요한 기술에 친숙한 3명의 사람을 만들어야 합니다.
그럼에도 불구하고 잘 운영되는 비즈니스를 갖고 있다는 편안함 때문에 변경 사항을 구현하지 못했습니다. 우리에게는 프로젝트, 정기적인 장기 고객, 경험 많은 프로그래머가 있었습니다. 그러한 환경에서는 변화를 시작하겠다는 결정을 내리기가 어렵습니다.
그렇다면 FINGO에서 기술 프로필을 변경하기로 결정한 이유는 무엇입니까?
대유행이 시작될 때 시장은 얼어붙었습니다. 다음에 무슨 일이 일어날지 모르는 기업들은 현재 프로젝트를 계속하거나 새로운 프로젝트를 시작하는 것을 자제했습니다. 프로그래머조차 실직을 두려워하던 시절이었다. 우리는 무엇을 해야할지 궁금했습니다. 우리는 사람들을 해고하고 싶지 않았지만 다른 한편으로는 군중들로부터 우리를 돋보이게 할 무언가가 필요했습니다.
2020년 5월경 회사 오너로서 과감한 결정을 내리지 않으면 상황이 악화될 수 있음을 알게 되었습니다. 우리는 금융 부문에서 가장 많은 프로젝트와 경험을 가지고 있었습니다. 또한 은행 부문에서 의무 보고를 구현할 수 있는 소프트웨어를 제공하는 제품 부품이 있었습니다. 금융 부문은 우리에게 자연스러운 선택이었습니다.
그 당시에는 FinTech와 금융 부문이 그들의 프로젝트에서 PHP를 사용하지 않을 것 같았습니다. 그래서 저는 이 분야에 집중하면 PHP에서 벗어나 Java와 .NET만 남을 것이라고 생각했습니다. 이 정보를 가지고 우리는 회사 총회에서 팀으로 나갔습니다.
FINGO의 기술적 프로필을 변경하기로 결정한 것이 팬데믹의 발발이었나요?
예, 아니오. 전문 분야에 대한 정보를 공유한 후 비즈니스에 대한 감각이 있는 경험 많은 프로그래머 몇 명으로 구성된 작업 팀을 구성했습니다. 그것의 임무는 금융 부문과 관련하여 개별 국가에서 트렌드, 기술 및 대중적인 솔루션이 무엇인지 확인하는 것이 었습니다. 그들의 분석은 PHP가 금융 프로젝트에서 드물다는 나의 초기 가정을 확인했습니다. 동시에 그들은 스타트업 세계에서도 가치 있는 Node.js의 역량 개발을 권장했습니다.
우리 회사에서 우리는 청록색 관리의 개념을 소중히 여기며 무엇보다도 전체 팀과 함께 조직에 중요한 프로젝트를 공개적으로 컨설팅합니다. 덕분에 사람들은 회사 발전에 미치는 영향을 느끼지만 의사 결정에 대한 공동 책임도 느낍니다.
따라서 상향식으로 시작된 Node.js로의 전환 이니셔티브는 여전히 나머지 FINGO 팀의 승인을 받아야 했습니다. 그러나 곧 이러한 방향으로 발전하려는 강한 열망이 있음이 밝혀졌습니다. 아마도 우리 모두가 다양한 차원(경제적, 건강적 측면 등)에서 미래를 두려워했던 특별한 시간이었을 것입니다. 역설적이게도 이것은 도전을 받아들이기로 한 결정에 대한 수용을 증가시켰습니다.
얼마나 많은 사람들이 새로운 기술 역량을 획득해야 했습니까?
전체적으로 변경에는 15 명이 참여했습니다. 그들은 프런트엔드 개발자로 개발할지 아니면 백엔드 개발자로 남아 Java, .NET 또는 Node.js로 솔루션을 만들 것인지 결정해야 했습니다.
이 사람들 중 한 명은 이미 자신을 프론트엔드 개발자라고 선언한 풀스택 개발자였기 때문에 그의 경우 결정은 쉬웠습니다. 결과적으로 2명이 Java를 선택했고 나머지 10명은 Node.js를 선택했습니다.
두 명의 테스터도 개편에 참여했고 그들도 새로운 기술을 배워야 했습니다. 우리 회사의 정책은 제조된 제품과 동일한 기술로 테스트를 작성하는 것입니다. 테스터를 일시적으로 사용할 수 없을 때 이 접근 방식은 우리에게 보안 감각을 제공합니다. 작성 테스트는 프로그래머가 일시적으로 수행할 수 있습니다.
출발도 있었지만 이것은 개별 결정이었습니다. 한 사람은 FINGO에서 꽤 빨리 사임했는데, 그 이유는 그가 Wroclaw에서 PHP 커뮤니티를 개발하고 있었기 때문입니다. 협력에 대한 우리의 기대가 달라지기 시작한 것은 당연했습니다. 그 과정에서 여러 가지 이유로 2명이 더 회사를 떠났다.
결정을 내리는 것은 여정의 시작일 뿐입니다.회사는 프로그래머가 새로운 역량을 습득하도록 어떻게든 도움을 주었습니까?
상업 프로젝트에서 가능한 가장 빠른 서비스 제공을 준비하는 개발자를 지원하기 위해 전략적 프로젝트가 만들어졌습니다. 처음에는 두 가지 시나리오를 가정하여 외부 클라이언트를 위해 자신 있게 작업을 수행할 수 있도록 필요한 지식을 습득하는 데 필요한 시간을 주관적으로 결정하도록 요청했습니다. 첫 번째는 더 경험이 많은 동료의 지원을 받았고 두 번째는 그러한 지원이 없었습니다. 이에 대한 응답으로 다양한 추정치를 얻었습니다.
일부는 숙련된 Node.js 개발자의 지원으로 한 달 만에 상용 프로젝트에 참여할 수 있다고 주장했고 다른 일부는 몇 달 만에 참여할 수 있다고 말했습니다. 그것은 모두 이전(개인 또는 전문) 경험과 자신에게 얼마나 용기가 있었는지에 달려 있습니다. FINGO에서도 이러한 환경에 대한 경험이 있다는 점도 주목할 가치가 있습니다. 그래서 우리는 기초가 있었습니다.
그러나 우리는 그들에게 지식을 습득하는 방법을 강요하지 않았습니다. 이 사람들은 모두 끊임없이 배우고 싶어하는 숙련된 프로그래머입니다. 그들은 자신이 선호하는 학습 스타일이 있습니다. 일반적으로 지식의 지속적인 습득은 신기술 산업에 어느 정도 각인되어 있습니다. 따라서 우리는 가장 합리적인 해결책은 단순히 학습할 수 있는 리소스와 시간을 제공하는 것이라고 결정했습니다.
우리는 또한 회사를 개편했습니다. 주어진 기술에서 일하지만 반드시 같은 프로젝트에 있지는 않은 사람들이 습득한 지식을 교환하는 자기 조직화 길드가 만들어졌습니다. Node 길드의 일원으로 새로 얻은 지식을 테스트할 수 있는 내부 프로젝트도 만들어졌습니다. 자원 봉사자를 위한 외부 과정이 조직되었습니다.
하지만 가장 많이 준 것은 빠르게 프로젝트에 참여할 수 있는 기회였습니다. 이것의 가장 좋은 예는 우리가 작업하고 있는 주문 중 하나였으며 가능한 모든 인력이 필요했습니다. 고객의 동의를 얻은 후 Node.js 자체에 대한 경험이 없는 숙련된 PHP 개발자가 프로젝트에 참여했으며 JavaScript도 작업했습니다. 그러나 동료를 지원하고 코드의 품질을 보장할 수 있는 숙련된 프로그래머가 프로젝트에 이미 있었습니다.
고객에 대해 조금 더 이야기해 봅시다.PHP에서 벗어나기로 한 당신의 결정에 그들은 어떻게 반응했습니까?
우리가 가진 가장 큰 내부 저항과 슬픔은 10년 동안의 클라이언트를 위해 만든 프로젝트였습니다. 우리 프로그래머 중 한 명이 처음부터 작업을 했기 때문에 매우 재미있습니다. 당연히 그는 그 회사의 많은 관리자보다 시스템에 대해 더 많이 알고 있었습니다. 그들에게 우리의 결정을 설명하기가 어려웠습니다. 한 달 전에 통지를 받았지만 이 고객을 잘 돌보고 싶었습니다. 우리는 그들에게 6개월 더 일할 수 있도록 동의했습니다. 흥미롭게도 3개월 후 회사 내부 개편으로 인해 고객이 직접 협력을 종료했습니다. 이것은 또한 당신이 사물에 너무 오래 머물러서는 안 된다는 것을 보여주었습니다. 그들은 완료되어야하고 그게 다야.
다른 프로젝트에서는 더 쉬웠습니다. 다른 사건과 마찬가지로 아주 자연스럽게 일어났습니다. 예를 들어 Node.js에서 시스템의 일부를 개발하는 클라이언트가 있었습니다. 우리는 이전에 PHP 기술로 프로젝트를 지원했던 우리 프로그래머가 처음 몇 달 동안 더 낮은 요금으로 서비스를 제공하는 데 동의했습니다. 어떻게 보면 최근에 기술을 변경한 팀의 낮은 효율성에 대한 보상이었습니다.
개발자들이 지금 이 변화를 어떻게 보고 있다고 생각하십니까?
나는 그들이 행복하다고 생각합니다. 이 업계의 사람들은 배우기를 좋아합니다. 당시 그들은 공부할 시간과 돈이 있었습니다. 그들은 풀타임으로 공부하고 전액 급여를 받았으며 연구 보조금의 혜택을 받을 수 있었습니다. 이것은 확실히 그들의 감정에 긍정적인 영향을 미쳤습니다.
Node.js가 PHP보다 나은가요? 이것은 물론 논쟁의 여지가 있습니다. 확실히 이 기술은 현재 대중화되어 있으므로 상승 추세에 접어들었습니다.
어떤 사람들은 장기 PHP 프로젝트를 떠난 것에 대해 처음에 후회했습니다. 그러나 얼마 지나지 않아 그들은 일종의 침체에서 벗어났다고 인정했습니다. 그리고 새로운 도전의 신바람을 느꼈습니다. 전반적으로 잘 갔다고 생각합니다.
변화가 얼마나 오래 지속되었습니까?
전체 프로세스는 시간이 지남에 따라 계속되었습니다. 시장 검증에는 꽤 오랜 시간이 걸렸습니다. 회사를 재정비하고 고객과 회사를 이별하는 작업도 많은 시간이 걸렸다. Jira에서 작업이 생성되고 종료된 후 총 2년이 지났습니다.
그러나 개발자가 PHP 프로젝트에서 Node.js로 전환하는 데 걸리는 가장 긴 간격은 불과 3개월이었습니다. 이것은 경험이 더 많은 동료들과 함께 프로젝트에 참여해야 한다고 느꼈던 시간을 선언한 것과 관련이 있습니다.
가장 어려웠던 점은 무엇이었나요?
나는 무언가를 바꿀 때라는 결정에 도달했다고 생각합니다. 하지만 지금 바꾸지 않으면 1~2년 뒤에는 바꿀 것이 없다는 인식이 더 빨리 결정을 내리는 데 큰 도움이 됐다.
대안이 명확하게 보이지 않고 경제 상황이 안정적이지 않은 상황에서 고객과 헤어지는 것도 어려웠습니다.
이 과정에서 우리는 장기 고객들이 차분하게 대안을 찾게 하는 것뿐만 아니라 우리 자신도 돌보고 싶었습니다. 프로그래머의 준비와 신기술 주문을 신속하게 받을 준비가 되어 있는지 확인하십시오.
다른 회사의 CTO가 당신에게 와서 회사의 기술 프로필을 변경하는 것에 대해서도 생각하고 있다고 말한다면 어떤 조언을 해줄 3가지가 있습니까?
비전을 가지세요. 당신이 왜 그것을 하고 싶은지 알고 당신이 가고 있는 곳과 그 이유를 당신의 팀에게 분명히 하십시오.
팀과 협력하십시오. 사람들과 대화하고, 듣는 것에 따라 행동을 조정하고, 그들의 능력을 고려하십시오. 사람들과 모든 것을하십시오.
망설이는 순간에도 불구하고 모든 것을 일관되게 수행하십시오.