OOSとCloudから何を発想するか


技術的な議論するのではありません、OSS(Open Source Software)とCloudが登場して随分時が経ってきています。
果たして、どれだけの企業で、これらの登場によって新しい方向へと転換できたのでしょうか?
OSSを開発で使用すればコーディング量が減り、品質貢献が期待できます。
場合によっては、コーディングせずにシステムを実現できるような期待が出来るようになりました。
OSSの効果的な一つの方向性としてOSSをリファレンスとするのはどうでしょうか?
OSSでは多くの人が関与するので、おのずと読みやすさ、コーディングルールが自然と整ってきます。日本と欧米とのソースコードの可読性について大きな違いがあります。それは欧米ではキャリア流動性が高いので、普段から可読性が高く、開発者からの手離れが良いコーディングを尊重してきました。日本はその逆が多いのではないでしょうか?今ほどではないにしろ、他人に分かりにくく効率が良いプログラムを構築できることが良しとされ、そのような方がスキルが高いと評価される傾向がまだまだ残っているのではないでしょうか?一部の非常に効率とリアルタイムを追求する領域ではそれもあると思いますが、それ以外の領域では可読性・メンテナンスビリティ・潜在的なバク(コーディンロジックが難解で、読み誤るとバグを発生しやすいコーディング)といった観点での品質管理が必要であると思います。模範となる、ある意味でOSSのコードをリファレンスとするのはどうでしょうか?

運用/オペレーションまで考慮した開発環境として何が考えられるでしょうか? 
実際の運用/オペレーションをテストする為に自社内でプラットフォームを用意するよりもCloud環境を利用する方が遥かに取り回しが良くなります。
これまでは、仮想マシンによる仮想化を実施してリソースを仮想マシンごとに割り当てる方法を採用してきました。この方法ですとオンライン系とバッチ系を別の仮想マシン上で実行することや、同じ仮想マシン上で実行することを臨機応変変えて実現する事は困難であり、サイズも大きく取り回しが重く実際には無理な状況でした。開発系はITサービスを実現するアプリケーションとミドルウェアだけをパッケージングして取り回せれる方が早く作りますし、完成したものをそのまま運用へ渡せる事を望んでいます。
運用側では、従来の仮想化マシンによる仮想化されたITサービスを運用するとなると、その仮想化マシン各々に資源を割り当てるという方法で、物理的なハードウェアを全体を鳥瞰的にタイムリーに管理するといったことが複雑になってしまいます。この両者の観点を上手く折り合いをつけられる技術としてコンテナ技術による仮想化が登場してきています。この技術は簡単に言うとアプリケーションとミドルウェアだけで塊をつくりDoker等のコンテナ基盤に載せると、コンテナ基盤をサポートしている様々な環境で運用/オペレーションできることが可能となります。
更に、これまでの一度出来上がった全ての環境を保守・維持するという時間経過と共に複雑化していく運用環境を捨てて、Immutable Infrastructureという破棄&構築を繰り返す時間がたってもクリーンな運用環境を実現することも出来るようになってきます。
この様な技術の到来で、従来の考え・方法・オペレーションを踏襲していくだけで良いのでしょうか?

この話だけで全てを語っていません。
何をお伝えしたいかというと、OSSとCloudによってもたらされる利便性から、独自の利用・活用方法を考え・実践するという柔軟な姿勢な取り組みを実現して欲しいという事です。