プログラミングへの情熱。 第18章作業の自動化

画像



翻訳について



これは、 The Passionate Programmer:Software Developmentの顕著なキャリアの作成の第18章の翻訳です 著者のChad Fowlerは、才能のあるRuby開発者であり、RubyおよびIT全般に関するカンファレンスで有名な講演者です。 元サックス奏者、現在はCTO 6Wunderkinder。





本のクラウドソーシング翻訳はgithubで実行されます、参加します。



第18章作業の自動化



私のキャリアを通して、一方では、最も安い(オフショアの)企業をプロジェクトに引き付けたいというマネージャーの欲求と、他方では、開発者の低コストが常に予算の節約につながらないという私の確固たる信念との間に対立がありました。 私はテクニカルディレクターや副社長にさえ連絡し、低賃金のコーダーの大勢ではなく、本当にクールな教祖を雇うことを強く主張しました。



少なくとも最後までやり遂げることがめったになかったことに言及する価値はありますか? 私の状況の問題は、私が間違っているということではありません(それでも!)。しかし、私が正しいことを証明する簡単な方法はありません。 また、予算の面では、入手できる唯一のデータから、時間単価を低くすると会社にとって有益であるという結論に至ります。



真空中の一種の球状プロジェクトを想像してください。 そのようなソフトウェアを3か月で書くのに何人の開発者が必要でしょうか? 5、あなたは言う? 六? さて、2か月はどうですか? 期間をどのように短縮しますか?



マネージャーの標準的な答えは、プログラマーを追加することです。 (まるで9人の女性が1か月で赤ちゃんを産むことができるかのように!)これは間違っていますが、これは彼らが信じていることです。 そして、突然、開発者の数を増やした後、個々のプロジェクトをより速く完了することができた場合、管理者は、より多くの人がいるほど生産性が高くなることを100%確信します。



しかし、結局のところ、タスクは常にいくつかの方法で解決できます。 目標が開発全体を改善することである場合、次のことができます。





開発の生産性を実際に測定する方法がわからない場合、ある人が別の人よりも速いことを証明するのは困難です。 したがって、お金を数える人は時給でしか動作できません。



これにより、一定の期間内に次のように仮定すると、単純な(やや素朴な)数式が得られます。



実際のところ、開発への投資から実際の結果を計算することが依然として可能な場合があります。 しかし、ほとんどの場合、プロジェクトの数や要件など、それらをカウントする信頼できる方法なしで、先取りされた要素が使用されます。



したがって、「より速い」プログラマーの選択肢は証明するのが難しすぎるため、安価な労働力にふけることは望みません。 自動化のみが可能です。



80年代の米国でのカットをめぐるパニックを覚えています。 それから私たちは、テクノロジーや特にコンピューター以外の多くの国を非難しませんでした。 巨大なロボットマニピュレーターが工場に設置されました。 彼らはスピードと正確さで人々をはるかに上回っていたので、比較する意味はありませんでした。 当然、これらのロボットの製造業者を除き、すべてが抑制されました。



あなたが中小企業向けのウェブサイトをデザインする会社を所有していると想像してください。 連絡先、投票、バスケット、空室セクションなど、2滴の水と同じように、その構造の原理は似ています。 ウェブサイトを書いたり、長くて面倒なことをする安価なコーダーを集めたり、コードを生成するシステムを作成したりする、本当に速いプログラマーを雇うことができます。



上記の式に(かなり任意の)数を代入すると、図に示す式が得られます。 1。



自動化は業界の基盤です。 しかし、何らかの理由で、これまでのところソフトウェア開発者としてのタスクを自動化しようとはしていません。 オフショアの競合他社よりも速くて安価な、証明可能な優れたソフトウェアを作成する方法は? ロボットを構築します。 作業を自動化します。





図 1



行動する!


  1. 繰り返し作業を行い、そのためのコードジェネレーターを作成します。 シンプルに始めましょう。 再利用について考えないでください。 ジェネレーターで時間を節約できることを確認してください。 生成するものの抽象化レベルをどのように高めることができるかを検討してください。
  2. モデル駆動型アーキテクチャ(MDA)について学びます。 利用可能なツールを試してください。 アプローチ全体ではないにしても、あなたの仕事にMDAのアイデアをどのように適用できるかを探してください。 使い慣れたツールのみを使用してMDAの概念を使用することを検討してください。








All Articles