ソフトウェア ハウスの再編成: 技術プロファイルを変更し、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 人を用意する必要があります。

それにもかかわらず、うまく機能しているビジネスを持つことの快適さは、私たちが変更を実装することを妨げました. プロジェクト、定期的な長期クライアント、経験豊富なプログラマーがいました。 このような環境では、何かを変え始めるという決断を下すことは困難です。

フィンゴの技術プロファイルを変更することを決めた理由は何ですか?

パンデミックの初めに、市場は凍結しました。 次に何が起こるかわからない企業は、現在のプロジェクトを継続したり、新しいプロジェクトを開始したりすることを控えました。 プログラマーでさえ職を失うことを恐れていた時代でした。 どうしようかと思いました。 従業員を解雇したくはありませんでしたが、その一方で、他の人より目立つ何かが必要でした。

2020 年 5 月頃、会社のオーナーである私たちは、大胆な決断をしないと状況が悪化する可能性があることに気付きました。 私たちは金融部門で最も多くのプロジェクトを抱えていたため、経験が豊富でした。 さらに、銀行部門での義務的な報告の実装を可能にするソフトウェアを提供する製品部分がありました。 金融部門は私たちにとって自然な選択でした。

当時、FinTech と金融部門がプロジェクトで PHP を使用する可能性は低いように思われました。 したがって、この分野に焦点を当てることで、PHP から離れ、Java と .NET だけにとどまるだろうと考えました。 この情報で、私たちは会社の総会でチームに出かけました。

フィンゴの技術的プロファイルを変更することを決定したのは、パンデミックの発生でしたか?

はいといいえ。 スペシャライゼーションに関する情報を共有した後、ビジネスの才能を持つ経験豊富な数人のプログラマーで構成される作業チームを任命しました。 そのタスクは、金融セクターに関して、各国のトレンド、テクノロジー、および一般的なソリューションを確認することでした。 彼らの分析は、PHP は金融プロジェクトでは珍しいものであるという私の以前の仮定を裏付けるものでした。 同時に、彼らはスタートアップの世界でも評価される Node.js の能力を開発することを推奨しました。

私たちの会社では、ターコイズ マネジメントの概念を大切にしています。特に、組織にとって重要なプロジェクトについては、チーム全体で率直に相談します。 このおかげで、人々は会社の発展への影響を感じるだけでなく、下された決定に対する共同責任を感じます.

そのため、ボトムアップで行われた Node.js への切り替えのイニシアチブは、FINGO チームの残りの部分によって承認される必要がありました。 しかし、この方向に発展させたいという強い願望があることがすぐに判明しました。 おそらく、私たち全員がさまざまな側面(経済的および健康的側面など)で将来を恐れていた特別な時期でした. 逆説的ですが、これにより、挑戦するという決定が受け入れられるようになりました。

何人の人が新しい技術的能力を獲得しなければなりませんでしたか?

合計で、変更には 15 人が関与しました。 彼らは、フロントエンド開発者として開発するか、バックエンド開発者のままで Java、.NET、または Node.js でソリューションを作成するかを決定する必要がありました。

そのうちの 1 人はフルスタックの開発者で、すでにフロントエンド開発者であると宣言していたので、彼の場合、決定は簡単でした。 その結果、2 人が Java を選択し、残りの 10 人が Node.js を選択しました。

再編成には 2 人のテスターも参加し、彼らも新しい技術を学ばなければなりませんでした。 当社のポリシーは、製造された製品と同じ技術でテストを作成することです。 テスターが一時的に利用できない場合、このアプローチにより安心感が得られます。 テストの作成は、プログラマーが一時的に引き継ぐことができます。

出発もありましたが、これらは個人的な決定でした。 1 人は FINGO をすぐに辞めましたが、それは彼がヴロツワフで PHP コミュニティを開発していたという事実によるものでした。 協力に対する私たちの期待が分かれ始めたのは当然のことでした。 進行中のプロセス中に、さまざまな理由で、さらに 2 人が会社を去りました。

決断を下すことは、道の始まりに過ぎません。会社は、プログラマーが新しい能力を獲得するのを何らかの方法で支援しましたか?

開発者が商用プロジェクトで可能な限り迅速にサービスを提供できるように準備するための戦略的プロジェクトが作成されました。 最初に、2つのシナリオを想定して、自信を持って外部クライアントの仕事を請け負うことができるように、必要な知識を習得するのにどれくらいの時間が必要かを主観的に判断してもらいました。 1 つ目は経験豊富な同僚のサポートがあったもので、2 つ目はそのようなサポートがなかったものです。 それに応じて、さまざまな見積もりを取得しました。

経験豊富な Node.js 開発者のサポートがあれば、わずか 1 か月で商用プロジェクトに参加できると宣言した人もいれば、数か月後にのみ商用プロジェクトに参加できると宣言した人もいました。 それはすべて、以前の(プライベートまたはプロの)経験と、自分自身にどれだけの勇気があったかにかかっています. また、FINGOでもこの環境を経験したことは注目に値します。 だから私たちは基礎を持っていました。

しかし、私たちは彼らに知識を習得する方法を課しませんでした。 これらの人々はすべて、常に学びたい経験豊富なプログラマーです。 彼らには、自分の好みの学習スタイルがあります。 一般に、知識の継続的な獲得は、新技術産業に何らかの形で刻まれています。 したがって、最も合理的な解決策は、彼らに学ぶためのリソースと時間を提供することであると判断しました。

また、会社を再編しました。 自己組織化ギルドが作成され、特定のテクノロジで作業しているが、必ずしも同じプロジェクトに取り組んでいるとは限らない人々が、獲得した知識を交換します。 Node ギルドの一部として、新たに獲得した知識をテストできる内部プロジェクトも作成されました。 ボランティア向けの外部コースが開催されました。

しかし、最も大きかったのは、プロジェクトにすぐに参加できる機会でした。 これの最も良い例は、私たちが取り組んでいたオーダーの 1 つで、可能な限りのハンドが必要でした。 クライアントの同意を得た後、Node.js 自体の経験のない経験豊富な PHP 開発者がプロ​​ジェクトに参加しました。 しかし、プロジェクトには、同僚をサポートしてコードの品質を保証できる経験豊富なプログラマーがすでにいました。

クライアントについてもう少しお話しましょう。PHP から離れるというあなたの決定に対して、彼らはどのような反応を示しましたか?

私たちが持っていた最大の内部抵抗と悲しみは、10 年のクライアントのために作成されたプロジェクトでした。 私たちのプログラマーの 1 人が最初からそれに取り組んでいたので、それは非常に面白いです。 当然のことながら、彼はその会社の多くのマネージャーよりもシステムについてよく知っていました。 私たちの決定を彼らに説明するのは困難でした。 1 か月前の通知がありましたが、このクライアントを大切に扱いたいと考えていました。 私たちは、彼らがさらに 6 か月間利用できることに同意しました。 興味深いことに、3 か月後、クライアントは、会社の内部再編のために協力を終了しました。 これは、物事に長時間留まるべきではないことも示しています。 それらは行われるべきであり、それだけです。

他のプロジェクトの方が簡単です。 他のイベントと同様に、それはごく自然に起こりました。 たとえば、Node.js でシステムの一部を開発しているクライアントがいました。 以前に PHP テクノロジでプロジェクトをサポートしていたプログラマーが、最初の数か月間は低料金でサービスを提供することに同意しました。 ある意味では、これは、最近テクノロジを変更したチームの想定される効率の低下に対する補償でした。

開発者は現在、この変更をどのように見ていると思いますか?

彼らは幸せだと思います。 この業界の人々は学ぶのが好きです。 当時、彼らには勉強する時間とお金がありました。 彼らはフルタイムで勉強し、十分な給料を受け取り、研究助成金の恩恵を受けることができました. これは確かに彼らの気持ちに良い影響を与えました。

Node.js は PHP より優れていますか? これはもちろん議論の余地があります。 確かに今はこの技術が流行っているので、上昇トレンドの時期に入っています。

長期にわたる PHP プロジェクトを離れることを後悔している人もいます。 しかし、しばらくして、彼らはある種の停滞から抜け出したことを認めました。 そして、彼らは新しい挑戦の刺激的な風を感じました。 全体的にはうまくいったと思います。

変化はどのくらい続きましたか?

プロセス全体が時間の経過とともに引きずり込まれました。 市場検証にはかなりの時間がかかりました。 また、会社の再編やお客様との会社分割の作業にも多くの時間を要しました。 Jira でのタスクの作成と終了から、合計でほぼ 2 年が経過しました。

ただし、開発者が PHP プロジェクトから Node.js に移行するまでの最長のギャップはわずか 3 か月であったことは注目に値します。 これは、経験豊富な同僚と一緒にプロジェクトに参加する必要があると彼が感じた時間の宣言に関連していました。

最も難しかった点は何ですか?

何かを変える時が来たという決断に至ったと思います。 しかし、今変わらなければ、あと1、2年で何も変わらないという認識が、意思決定の迅速化に大きく貢献しました。

また、地平線上に明確な代替案がなく、経済状況が安定していないときは、クライアントと別れることも困難でした。

このプロセス全体を通して、私たちは長期的なクライアントの世話をし、彼らが落ち着いて代替案を見つけられるようにしたかっただけでなく、自分自身の世話もしたいと考えました. プログラマーの準備と、新しいテクノロジーで迅速に注文を受ける準備ができていることを確認してください。

別の会社の CTO があなたのところに来て、彼も会社の技術プロファイルを変更することを考えていると言ったら、彼にどのような 3 つのアドバイスをしますか?

ビジョンを持ってください。 なぜそれをしたいのかを理解し、どこへ行くのか、そしてその理由をチームに明確に伝えてください。

チームと協力してください。 人々と話し、聞いたことに合わせて行動し、彼らの能力を考慮に入れます。 人と一緒にすべてを行います。

ためらう瞬間があっても、すべてを一貫して行います。