工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 自動制御システム

ソフトウェア開発の自動化とイノベーションのスピードアップ

従来のソフトウェア開発は遅いです。それはただ再考するためのものです。

ほぼ3年前、MicrosoftのSatya Nadellaは、「すべてのビジネスはソフトウェアビジネスになる」と有名に造語しました。今日、5,000億ドルの世界的なソフトウェア市場は、2030年までに2倍の1兆ドルに達する見通しです。

J.P. Morganは、最新のファイリングで40,000人のソフトウェアエンジニア(Alphabet以上)を抱えていると記録されています。すべての大手企業は、競争を勝ち抜くためにエンジニアを雇うために競争しています。大きな問題は、従来のソフトウェア開発が遅く、断片化され、無駄になっていることです。

たとえば、平均的なソフトウェアエンジニアは、毎週、テストの完了を4時間、ビルドを3.5時間、環境管理に3時間費やします。これは、週の4分の1以上が、実際には価値のあるものを生み出していません。エンジニアが組織内で最も給与の高い人であることが多いことを考えると、それは明らかに大きな問題です。しかし、状況は変化しています。

主要な開発プラットフォームの1つであるCircleCIは、AIと自動化がソフトウェアの革新をスピードアップし、エンジニアが重要な作業を行えるようにするための鍵になると確信しました。昨年、同社は多くの自動化と機械学習の機能強化を導入し、エンジニアが待機する時間を50%短縮しました。これは、Facebook、Spotify、GoPro、InstaCartなどの30万人以上の開発者がCircleCIを利用してより速く移動するようになった多くの理由の1つです。

会社を率いるのはジム・ローズです。これは、Google Ventures、Foundation Capital、およびMarcAndreessenからの過去の投資を受けた6回の創設者です。 4年ちょっと前にCircleCIに参加して以来、Roseは収益を450%以上増やし、会社を真にエキサイティングな存在に成長させました。

ソフトウェア開発の自動化とイノベーションのスピードアップについて詳しく知りたいと考えたInformationAgeは、この件についてRoseに話しました。

ソフトウェア市場の現状はどうなっていますか?

現時点では、さまざまなプロセスを手動で行っている企業や個人がまだたくさんいます。デジタルトランスフォーメーションのプロセスについて考えるとき、それは本当にソフトウェア開発チームを育成しようとすることです。

1つは、オンプレミスのデータセンターからソフトウェアを取り出して、クラウドネイティブ環境に導入しようとしています。クラウドネイティブ環境では、瞬時にコンピューティングにアクセスできます。

2つ目は、ソフトウェアは、従来または多くの場合、ガイドラインまたは主要ビジネスの補助と見なされてきたということです。今では、銀行から自動車メーカー、小売業者に至るまで、あらゆる種類の企業がソフトウェアが彼らの業務の中核であることを認識しています。そのため、彼らは自分たちが何を所有しているかを把握する必要があり、資産を統合して標準として統合する必要があります。

企業がこのように瞬時にコンピューティングにアクセスし、開発者が作業できる構造が整ったら、今日の間にあるのは通常、さまざまなプラットフォームとプロセスのある種のミッシュマッシュです。

ほとんどの場合、非常に長いウォーターフォールソフトウェアリリースプロセスがあり、多くの手動ステップがあり、その後、多くの手動スクリプトがあります。より高度なショップの場合、第1世代の自動化ソリューションが導入されている場合もありますが、チームのスピードが上がるにつれて、それらは壊れ始めています。

そして今、それが私たちが取り組んでいることであり、企業がナビゲートするのを支援しています。彼らのソフトウェアチームがスピードアップするにつれて、彼らはより多くのソフトウェアを構築し、それをより速くしようとしています。市場での機会に対応するだけでなく、潜在的なマイナスの変化にも対応するためです。企業は、これらすべての要素がどのように組み合わされているかを完全に再考する必要があります。

この速度は、ソフトウェア開発の主なハードルを指しますか?

市場が加速するにつれて、企業や開発チームはスピードを上げようとしています。彼らは、機会に対処できるように、どのように迅速に作業できるかを理解しようとしています。

そこにたどり着く唯一の方法は、必ずしも人間の介入を必要としないすべてのステップを実際に自動化することです。数分、数時間、数日かけて行うのではなく、数秒で行うことができるからです。

チームがスピードアップし、ソフトウェアが顧客にとっての主要なストアフロントであるため、品質レベルが高いことを確認する必要があります。たとえば、クラッシュしないことや、セキュリティの脆弱性がないことを確認する必要があります。

したがって、アジャイルについて考えるとき、それは品質の観点と速度の観点の両方から、より機敏になろうとすることです。

米国ではスピードがすべてですが、スピードを上げ、小さなチャンクを統合し、より一貫性のある方法でソフトウェアをリリースできるようになると、ソフトウェアは本質的に向上します。週に5、8、15回実行すると、展開しなければならないという不安はすべて解消されます。場合によっては、1日に100回実行するお客様がいます。

展開は問題になりません。

品質面では、これまでのソフトウェア開発の大きな問題の1つは、四半期に1回だけリリースする場合、アプリケーションに導入するすべての変更が実際に連携して機能することを確認するのに非常に苦労することです。多くの場合、企業がビッグバンのリリースを行い、ビッグバンのリリースを行った後、後退して壊れたすべての問題を修正するために、次の60、90日を費やします。この方法では、ソフトウェアサイクルが遅くなりますが、アプリケーション自体の品質も低下します。

アジャイルの観点から、それは人々が取り組もうとしていることです。

ソフトウェア開発チームに対応し、サポートし、育成するために、組織をどのように変えることができますか?

いくつかの異なる方法があります。

1つは、開発者を雇うのが難しいため、開発の観点から費やされるすべての時間が、何が起こっても、特別なソフトウェアの構築に費やされるようにする必要があるということです。銀行の場合は優れたバンキングアプリケーションを構築し、eコマースアプリの場合は本当に優れたeコマースアプリを構築します。人々が過小投資している大きな分野の1つは、ソフトウェア開発者が歴史的に物を作ったことだと思います。それが彼らがしていることです、彼らはソフトウェアを構築します。そのため、開発サイクルはサードパーティのアプリの観点からは過小投資されています。

たとえば、テストの自動化や継続的デリバリーインフラストラクチャなど、チームが独自に構築する必要のないものがあります。その分野を専門とする他の誰かからそれを入手するほうがはるかに良いので、自分が得意なことに集中することができます。それは、コーヒーメーカーを作る必要があることを誰かに伝え、銅パイプ、はんだ、バルブの束を与えるようなものです。あなたは決してそれをしません。しかし歴史的に、開発はそのように扱われてきました。したがって、データセンターから計画ツールに至るまで、スタックの上下に至るまで、適切なツールとプラットフォームを確実に配置することが非常に重要です。

2番目の部分は、従来のウォーターフォールモデルでは、ソフトウェア開発が通常キャッチャーの役割を果たすため、アプリケーションはプロセスのかなり早い段階で定義され、開発チームがそれを取得するまでに、多くの決定が行われていることだと思います。それは実際に機能する場合と機能しない場合があり、実行可能または実行が容易な場合とできない場合があります。

この左シフトの概念があります。これは、開発を計画サイクルのさらに上に進めて、アプリケーションの構築と配信の両方で開発チームの懸念やニーズが考慮されるようにすることを目的としています。そして、運用の観点から考えると、ライフサイクルのかなり早い段階でアプリケーションがどのように運用されているかを実際に検討する必要があることを意味します。たとえば、クラウドネイティブアプリを構築しようとしている場合は、非常に特殊な方法でアプリを設計する必要があります。つまり、その決定を下し、そのプロセスにかなり早く参加する必要があります。

チームがより多くのソフトウェアファーストのアジャイルプロセスを採用している場合、懸念の三角測量になってしまいます。何かを構築している理由を所有している人々、ビジネスオーナー、プロダクトマネージャーがいます。テクニカルアーキテクトとソフトウェア開発者が実際にそれを構築する方法について話し合っています。そして、実際にそれを実行する責任があるオペレーターがいて、そのプロセス全体の最後に実際に何を実行するかを理解します。したがって、全員が関与する必要があります。そして、それは一部の企業にとって難しい移行になる可能性があります。

AIと自動化はどのようにしてソフトウェアの革新を促進し、改善することができますか?

自動化を使用すると、事前に決定されたタスクと自己学習の両方を自動化できます。その一例は、ソフトウェアをリリースしようとするたびに、他のサードパーティの支払いシステムに対してサードパーティのテストを実行する必要がある場合です。過去にこれらのタスクを使用した場合、基本的にトランザクションを試行して処理し、すべてを手動で実行するQAチームを雇う必要がありましたが、これは非常に低速です。また、エラーと複雑さだけで信じられないほどに満ちています。

これらは、テストスイートで完全に自動化する必要があるタスクの完璧な例です。繰り返し実行することがわかっているこれらすべてのことを、決定論的で予測可能なものにするために自動化する必要があります。そして最終的には迅速です。

開発者がこれらのことを何度も繰り返すのに費やす時間は時間の無駄であり、率直に言ってお金の無駄であるという反復的なタスクを実行する機会があります。

したがって、構築中のAIとソフトウェアを見ると、予測決定論的ソフトウェアをプッシュすることを考えるのではなく、モデルをプッシュすることになります。そして、モデルは、何かがどのように機能するかについての先入観のサンドボックスであり、人々がそれを経験し、テストが実行されるにつれて、モデルは変化し、物事がどのように機能しているかについてさらに学習するにつれて進化します働く。それはテストシステムに信じられないほどのプレッシャーをかけます。

AIに無意識の偏見が組み込まれている状況で、AIの失敗のいくつかについて考えると、AIの種類が狂って、特定のアプリケーションから人々をブロックし始めたり、物事をシャットダウンしたりします。やりがいのあるテストの視点。

それはますます複雑になっていますが、それはまた、はるかに速く、より応答性が高くなっています。したがって、ソフトウェア開発にAIと機械学習が含まれるようになるのは、今後も増え続けるでしょう。ただし、これらすべての変更をテストできるようにするには、必要なすべてのフレームワークを用意する必要があります。


自動制御システム

  1. 自動車サービスライターとは何ですか?彼らは何をしますか?
  2. 低コスト検査ロボットの設計と開発
  3. SABICとNottinghamSpirkは、イノベーション開発を加速するために提携しています
  4. スマートビルディングオートメーションと都市における不動産開発の未来
  5. Seegridは「BlueLabs」の研究開発グループを作成します
  6. AMRCはテクノロジーとサーキュラーエコノミーの革新を推進します
  7. ABBロボティクス:技術革新とロボティクスR&D
  8. BrightMachinesがMicrofactoryのハードウェアとソフトウェアを発表
  9. 在庫管理ソフトウェア:機能と利点
  10. メンテナンス ディレクターとは何ですか?
  11. 3Dでの設計:チューブ曲げおよび設計ソフトウェア