デベロップメントオンラインゲーム開発に最適なプログラミング言語は何か?最近のゲーム開発者は、ゲームをより分かりやすく、魅力的なものにすることに注力しています。そのためには、最適なプログラミング言語を選択するという問題が生じます。すべての要件を満足する言語を選ぶのは簡単ではありませんが、JavaScriptのようなリーダに頼ることは可能です。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。Crough氏が,オーストラリアのメルボルンで開催された第1回のカンファレンスで,品質の高いソフトウェアの開発について講演した。InfoQは,ソフトウェアの品質についての見解と高品質がもたらすビジネス上のメリット,品質を管理する方法について両氏に聞いた。高品質のソフトウェアを提供する上でのテストの持つ役割や継続的インテグレーションが品質に持つ意味,さらには高品質のソフトウェア製品の提供を望む企業へのアドバイスなども聞いた。ソフトウェアの品質とは何なのか,お二人の意見を聞かせてください。バグが少なく機能に優れた,そしてコードの理解が容易な,よりよい製品への方向性を決める,概念的目標だと思います。見ることができますが,品質に関するとらえ方はそれぞれ違います。難しいのは,お互いが妥協しないようにすることですね。簡単に言ってしまえば,品質とは良さと悪さの度合いである,と定義してもよいでしょう。定義が主観的なのは,品質とは何かという認識には個人の感覚が影響しているからです。高品質のソフトウェアを構成するものについてコンセンサスを得ようとするならば,個別の目標について認識する必要があります。開発者はコードベースに注目して,その保守性を評価するかも知れませんし,エンドユーザは,ポータブルデバイスに自分の好きな音楽をすべて保存できることに満足するかも知れません。品質は,ビジネス上の価値を提供する機能拡張を事前に計画し,それを実施するための管理能力を提供します。高品質のソフトウェアを開発する,適切なプロセスを実現することによって,ビジネスの発展と変革の実現が容易になるだけでなく,新たな戦略やテクノロジの採用も可能になります。開発に携わっていると,新しい技術や方法論に出会うことがよくあります。私たちはDiUSで,今何が新しいのか,それをプロジェクトに取り入れるにはどうすればよいのか,いつも話し合っています。このような価値を顧客である企業に提供することは,実践的であること,迅速な行動が重要であることを,彼らに理解してもらうためでもあるのです。投資に対する利益,堅牢性,信頼性,市場投入時間の短縮,顧客満足の向上といったものは,いずれも品質への投資と管理に対する副産物です。それらはすべて,ソフトウェア開発において企業が追い求めるべき重要な特質なのです。個人的なレベルで言うならば,品質を追求して人に満足を提供するということは,さまざまなレベルにおいて,私たちが生来持っている性質なのだと思います。この意味から,企業にとってのメリットは2つあると言えます。ひとつは,ソフトウェアチームのメンバにとって,定められた基準を満足するだけでなく,それを超越することを目標とできるような環境,あるいは文化が作り上げられることです。ひとつは,利用適合性と顧客満足を提供可能な製品を開発する個人,あるいはチームの知識が尊重されることです。品質は測定可能なものですから,管理という活動の対象になり得ると思います。継続的インテグレーションによる可視化で,例えばテストの失敗数のような問題があれば,それを認識することができます。この可視性がチームに対して,問題に関する議論と原因の理解,修正の実施といった活動を促すことになります。私の経験では,自己管理型のチームは,ツールやテクニックを駆使して,品質を管理するための優れたインプットを提供することが可能で,それが卓越した品質を達成するための手段になります。一方で企業の側は,社内で実現したそのようなテクニックを活用することで,自らの品質を管理するための新たな道を模索する機会が得られるのです。先程述べたように,品質には主観的な面があるのですが,だからといって管理やコンセンサスへの到達が不可能ということにはなりません。ソフトウェア開発において,品質保証と品質コントロールは,しばしば同じような意味で使用されています。いずれも全体的な意味としては品質管理の一部ですが,役割はまったく別です。簡単に言えば,品質保証とは防止の手段であり,品質コントロールは検出の手段であると考えられます。自己管理型チーム,反復型開発サイクル,継続的改善の実践などはすべて,アジャイルプロジェクトにおいて品質管理を可能にするためのテクニックないしプロセスなのです。この数年間でテストは,“テスト工程に引き渡す”的なアプローチから,“これをテストしよう”というアプローチに移行しつつあります。この変化が結果として,“どうすればこれをうまくできるのか”,という考え方に繋がっています。ソフトウェアプラクティスとしてのテスト駆動開発が優れているのは,それが,よりよいソフトウェアを開発する設計的判断へのチャレンジを促すだからです。これにペアリングを併用すれば,さらに素晴らしいものになります。アイデアを共有し,問題の理解を拡げることによって,考えられる最高のソリューションが実現されます。最近になって具体化されてきたプラクティスのひとつとして,探索的テストがあります。通常の自動テストスイートではカバーできないような,機能やユーザフローの非正規なパスを試す能力をチームに提供してくれる手法です。簡単に言えば,テストが提供してくれるのは信頼性です。一連のテストプラクティスが,組織に前進する力を与えてくれます。アイデアあるいはコンセプトが認識された瞬間から,テストはその会話の一部でなくてはなりません。アイデアをテストすることは,それが人々の望むものなのか,製品として実現可能なのか,ビジネスにおいて必要なものなのかを判断する上での洞察力を与えてくれます。新規あるいは既存ユーザとの会話や,紙に書いてみるといった簡単なテストでも,それによってコンセプトを検証したり,あるいはイノベーションを推進することが可能です。信頼性のテストは,開発チームが日々行なう作業の中で重要な位置を占めていますが,エンドユーザのテスト参加を奨励することもまた,ソフトウェアの品質が使用に適しているかを判断する上で非常に重要です。エンドユーザは,あなたやチームが思いもかけない方法でソフトウェアを使用しますから,少しでも早くソフトウェアをエンドユーザに届けることが,開発されたソフトウェアをテストするには最高の方法なのです。私が現在携わっているプロジェクトでは,継続的デプロイメントでゼロダウンタイムを実現しています。これは継続的インテグレーションがなければ不可能です。重要なのは,構造的ないし機能的な品質が正しいという自信を私たちに与えてくれるからです。継続的インテグレーションの本当のメリットは,それがチームのプラクティスの拡大と,現代的なプラクティスへの扉を開く“ロボット”として組織の発展の力になることなのです。開発プロセスの一部としての継続的インテグレーションは,開発者が行なったチェックインのひとつひとつが自動ビルドによって検証されることで,チームが問題を早期に検出できるという自信を与えてくれます。これが開発チームだけでなく,ビジネスオーナやプロダクトオーナにとっても,開発中のソフトウェアが基準を遵守していることが継続的にテストされているという自信につながります。絶えずテストを行なうことで,継続的にプロセスを改善するという視点を持つこともできます。品質に王道はない,ということですね。私たちがこれまでの開発経験で学んだのは,品質はインサイドアウトに構築し,フィードバックはアウトサイドインに求めるという方法です。変化を受け入れ,常に新しいやり方にチャレンジし,チームをそれに参加させてください。外部的には,ユーザが誰であるかを理解して彼らの声を聞き,製品が提供する,あるいはすでに提供している価値を正しく理解することです。内部的には,ユーザとのビジョンの共有を大切にしてください。実験を積極的に実施して,失敗への不安を個人ないしチームの不利益ではなく,学びの機会として捕える文化を確立するのです。開発チームの声を聞き,彼らと協力しましょう。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。