開発時に意識しようと思う5つのこと

Programming

こんにちは、ゆきたです。

今回は今後開発にあたって私自身が意識していかないといけないなと感じたことを自分なりにまとめておきたいと思います。たぶん言語に関係なく当てはまるものだと思うので(一部Javaでの話になっている部分もあるかも…)、これから開発をしようと考えている方の参考になれば幸いです。

 

品質を意識する

開発の進み具合のことを進捗(しんちょく)という。進捗は開発の範囲(スコープ)だけを線で捉えるのではなく、それぞれの品質(バグの有無や求められる仕様との差異)の軸もあわせた面で捉える。とりあえず書けた、は完成とは言わない。

品質はテストで確認する。品質を「見える化」したものをメトリクスと呼ぶ。テストによるカバー率もメトリクスの一種でテストカバレッジまたは網羅率と呼ばれる。開発者の最終目標は「期待される時間内に、期待されるスコープを満たすものを、期待される品質で納品すること」。メトリクスに固執しない。メトリクスはあくまで手段であって、目的ではない。

テストケースは効率よくを意識する。テスティングフレームワークも利用する。

アサーションの副作用を避ける。アサーションは補助的に使う。使いどころと使い方を理解する。事前条件、事後条件、クラス不変条件。あくまで品質の確認の主軸はテストと心得る。

 

バージョン管理を意識する

gitの利用。バージョンを管理することで開発の行程や履歴を見返せたり、過去の状態に戻れるようになる。リポジトリの扱いになれる。コミット、プッシュはなるべく細かく。いざ分業することになった時にやらかさないように、早めに自分のプロダクトでやらかしておく。GitHubでソースコードを公開する。

 

開発工程を意識する

要件定義→設計→実装→テスト

これまでは何か作ろうとしたときは、いきなり実装だった。何かものを作ろうとするときに実装から始めず上記の流れを意識してやってみる。

 

タスク管理を意識する

バグ追跡システム(BTS)の利用。アプリなどのToDoリストに書くよりこっちの方が開発者向け。タスク管理の習慣付けと、タスクの優先度の判断などの感覚を養う。

 

 

アジャイルを意識する

テスト駆動開発(テストファースト)。Red→Green→Refactorのサイクルをすばやくたくさん回す。一つずつ、少しずつ、すばやく。テストは仕様である。テストケースを書くということは、仕様を書くということである。

スクラムの4つのミーティングをやってみる。計画ミーティング、デイリースクラム、レビュー、ふりかえり。

 

まとめ

  • 品質を意識する → テストを書く
  • バージョン管理を意識する → gitを利用する
  • 開発工程を意識する → いきなり実装しない
  • タスク管理を意識する → BTSを利用する
  • アジャイルを意識する → テストファースト、スクラム

いやいやもっとたくさんあるだろ。。と思う方もいるかもしれません。もちろん他にも取り入れるべきことや意識すべきことはたくさんあると思いますが、少しずつ取り入れていこうと考えるとまずはこの辺りが現実的なところかなと思います。目指せ脱初心者!

最後まで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました