この記事は、広島大学 HiCoder & ゲーム制作同好会 GSD Advent Calendar 2022 の 6 日目の記事です。
ソフトウェア開発手法
皆さんがよく使用するソフトウェア開発手法は何ですか?
今では、アジャイルソフトウェア開発手法の一つであるビヘイビア駆動開発やセキュリティ手法を統合した DevSecOps などがあります。ウィキペディアのソフトウェア開発手法のカテゴリーでは、現在 15 個も種類があり、様々なソフトウェアの開発における重要な点に焦点を当てた手法がいくつも提案されています。
それらの手法は、如何に早く・無駄なく、完成させられるかに焦点が当てられているものが多いです。よって別の視点に重きを置いた手法が重要になってきます。
現在の課題
現在の手法では完成することが前提になっています。しかしソフトウェア開発では、ソフトウェア自体を完成させることが一番の目的になります。 よって現在の課題として、ソフトウェアの完成をさせることに重きを置いた手法が必要になってきます。
具体的に個人開発では、メンバーがいないことが多かったり、納期日のような必ず作らなければならない理由がないことが多かったりし、やる気などの問題で完成に至らないことがよくあります。 そのため如何に開発に時間を充てられるかが重要になってきます。
一つの方法としては、開発に対してのモチベーションを上げる工夫をすることです。しかし常にモチベーションを上げ続けることは難しいです。私の場合、次世代の音声フォーマットの開発を数年続けており、モチベーションというものを既に忘れており、使命感と惰性で開発しています。
そのため発想の転換をして、なるべく他のことに対するモチベーションを無くして、何気なく「暇だし開発するか」という気持ちになるようにすることが、課題の解決につながります。
おふとん駆動開発
おふとん駆動開発(Bed Driven development) とは、私が提案するソフトウェア開発手法で、おふとんで生活しながら開発を行うスタイルです。開発に充てる時間を増やすことに重きを置いており、その性質からタイムマネジメントに近いです。
それではおふとん駆動開発の特徴について説明していきます。
向いている人・開発
おふとん駆動開発は少し特殊な手法であるため、おすすめの開発者が存在します。
まず怠惰な方です。この後説明しますが、怠惰な方ならおふとん駆動開発の良さをきっと理解してもらえます。 そして個人開発に向いています。現在の課題で述べたように、何も対策していないと完成しないことがよくあるからです。
開発サイクル
それでは具体的な開発サイクルについて説明します。
まずは初期計画です。作りたいソフトウェア自体と大まかな計画を立ててください。 そのようなイメージがない場合は当惑してしまうだけなので、そこだけはしっかり立てておきましょう。もちろん次に説明するおふとん生活の開発の段階で、初期計画を立てても構いません。
次におふとん開発の主となるおふとん生活のサイクルを回していくことになります。おふとん生活では、
- 睡眠
- 開発では頭をしっかり働かせなければなりません。
- 十分な睡眠をとりましょう。
- 雑務
- 睡眠以外の生理現象やその他の雑務です。
- なるべく雑務は減らすようにしましょう。
- 開発
- ここでの開発という意味は、設計から運用まで様々な工程が当てはまります。
- 起きている間はとにかく開発に励んでください。それに尽きます。
の3つの工程を繰り返して、ソフトウェアを完成に近づけていきます。その中で2つのポイントがあります。
まず一つ目として重要なのが怠惰な気持ちです。一見よろしくないように感じますが、怠惰な気持ちはおふとん生活で根幹となります。なぜなら怠惰であると、外に出るのは面倒、おふとんから出るのは面倒という思考に陥り、雑務が減って消去法で開発をしようと思うようになるからです。つまり何もしたくないという気持ちこそが、おふとん駆動開発を成功させるカギになります。
そして二つ目として、開発工程への移行と作業でのストレスフリーな環境を整える必要があります。現在の私たちが暇な時間にスマホをいじっている理由としては、スマホの手軽さにあると考えています。そのため、開発を始めたり、開発中にストレスを感じない手軽に作業ができる環境を整えることも重要になります。
必要なもの・実例
それでは私が実際にストレスフリーにするために整えた環境を紹介します。
リクライニングベッド
推奨するアイテムとしては、上半身を上げることができるリクライニングベッドです。
リクライニング機能が必要な理由としては、寝た体制で開発し続けると体が痛くなることやご飯を食べるときには起き上がらないと難しいからです。
一日のほとんどを過ごすので、掛け布団や枕も自分に合ったものを使いましょう。
トラックボール付き分割キーボード
次に推奨するアイテムとしては、トラックボール付き分割キーボードです。
ベッドで一括キーボードを使用して開発していると、腕を上げなければなりません。他の部位は休んでいるのも相まって、腕の疲れを感じやすいです。 分割キーボードにすることで、両手もベッドに付いた状態でタイピングできるようになるので、疲れなくなります。
更にキーボードは布団の中にあって手元が見えません。そのためトラックボールがキーボードについていると、手を大きく動かす必要がなくなり、スムーズに作業ができるようになります。
ネイティブ解像度 1080P のプロジェクター
最後に画面を移すプロジェクターは、ネイティブ解像度 1080P のプロジェクターを選びましょう。
プロジェクターを使用することで、ベッドの環境下でディスプレイを置く場所に困ることがありません。 そして開発では小さな文字を見る必要があるため、解像度が高くなければなりません。ネイティブ解像度が 1080P であれば、写真のように問題なく見ることができます。
改良点
更に以下のように工夫することで、ストレスを限りなく0に近づけられます。
- パソコンとプロジェクターの起動を、起きたタイミングと同時に起動
- リクライニングの自動化
- 天井に画面の表示
メリット
- おふとんという絶対的な安心感
- もふもふできる
- 体への負担が少なく快適
- 体温を一定に保てる
- 開発時間を増やせる
- 開発への移行と開発にかかるストレスが少ない
デメリット
- 通常の生活に戻れなくなる
- かけた時間が全てを解決するという方針であるため、手順や効率が曖昧
- 他の手法と併用して使用することを推奨
おわりに
比較としておふとん駆動開発の他にも、VR 環境を用いた開発を行ったりしてみましたが、現状おふとん駆動開発が一番良かったです。
皆さんも怠惰な気持ちを忘れずに、おふとんライフをエンジョイしましょう!!