🐈

課題と要件とタスクばらしと。

2022/09/11に公開

こんにちは、nekoです!
今日は独学エンジニアのレッスン2を学習しました。できるようになったこと、学んだことをアウトプットしていきます。

なぜ勉強してもプログラムを作れるようにならないのか?

なかなか衝撃的な一文でした。文法を学ぶだけというのは野球のルールを覚えて試合をしないようなもので、確かにそう言われてみれば作れそうにないですね。

どうすれば作れるようになるのか

タイトルにもあるように課題と要件の定義、そして後述するタスクばらしが大切というわけでした。

  1. 課題を設定して
  2. 要件に落とし込んで
  3. 要件をタスクにばらし、実行する順番を決めて
  4. ひとつずつやっていく

夕飯にカレーライスを作ろうと課題を設定したら、まずはどのレシピ(要件)で作るか決める。レシピを見て食材を切る、炒める、煮込む手順を確認し(タスクをばらす)調理する順番を決める。レシピどおりにやっていく。といったところでしょうか。

課題定義

背景と目的

意味のないものを作ってしまわないように最初に決めておく。

  • 解決したい課題は何か
  • 何のためにしたいのか
  • なぜシステム化する必要があるのか

ゴール(達成状態)

  • 目標は何か
  • 達成したときにどのような状態になっていればよいのか

やらないこと

スコープとはやる範囲のこと。リソースは有限なのでやらないことを決めることはとても大切。

  • スコープの対象外のことは何か
  • 制約条件は何か

詳しくするならアジャイルサムライという書籍のインセプションデッキに基づいてすると良いらしいです。

要件定義

業務要件

業務上で必要となる条件を定義したもの。これをすることでユーザーの行動に沿った使いやすいシステムになる。

  • 業務フロー:業務、ユーザーの行動の流れ

機能要件

必要な機能の条件を定義したもの。

  • ページ遷移図:必要なページを洗い出して流れを繋げたもの
  • ワイヤーフレーム:簡単な画面図
  • 機能:必要な機能を定義したもの
  • データ:どのようなデータを扱うか定義したもの

非機能要件

機能要件以外で必要な要件を定義したもの。

  • 性能:サイトのスピードなど
  • 拡張性:機能の追加のしやすさ
  • 可用性:サービスの落ちづらさ
  • セキュリティ:サービスの安全性

運用・保守要件

サービスを運用したり、保守したりする要件を定義したもの。

  • 運用体制
  • 保守体制
  • 障害時体制

タスクばらしとは

言葉のとおりなわけですが、タスクばらしはエンジニアとして自立して動ける土台になるということなので、自然とできるように日頃から意識していきたいと思います。

なぜするのか

  • 必要なタスクだけに取り組むようにするため
  • 最短経路を探せるようにするため
  • 仕事の進捗を自分で把握するため

具体的な方法とコツ

方法

  1. ゴールを確認、理解する
  2. ゴール達成のために必要な項目をリストアップする
  3. 実行順に並び替える

コツ

  • 小さく分解すること
  • 1時間以内で終わる単位で分解する

やったことのない仕事はどうする?

  • 仮説でもいいのでタスクばらしをしてみる
  • 間違ったら都度修正してく

とにかく、ちいさく分解してひとつずつやっていく、が大切。

まとめ

タスクばらしに慣れるために、今日やることを30分から1時間単位でスケジュールを作成してみようと思います。タスクばらしをできるようになって自立して仕事ができるエンジニアになれるように頑張ります!

Discussion