0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

システム開発はじめてみるぜ #1

Last updated at Posted at 2025-03-09

筆者の前提知識

  • 大学院の研究で画像認識のコードを書きながら実験する。(1年, python Keras)
  • 就職してから薄くstreamlitで家計簿アプリを個人開発(1年, python streamlit)
  • 職場では便利系野良コードを月一のペースで作る程度

システム開発始めるきっかけ

  1. システム開発初心者のまま、ソフトウェア開発のスクラムマスターになり、派遣のエンジニア6人を動かして成果を出さざるを得ない状況になる。
  2. 開発のいろはを知らないため、なかなかうまくコントロールできず、バグだらけで効率悪いプロダクトマネジメントになってしまう。
  3. 自分である程度のモノを作っていろはを体得したいと強く感じる
  4. ソフトウェア会社に勤めている父親にモノを作りたい欲を訴えると、OCR入力にて領収書の管理をするシステム作成を依頼される

今の進捗

  • ヒアリング #1

    • 要件定義書の作成
      • 機能一覧
      • システム構成
  • 環境構築 #1

    • React
    • XAMPP
    • MySQL
  • GPTとの壁打ち

    • CI/CDどうするか?
      • そもそも自動テストってGithub Actions使ってどうやるの?
    • アーキテクチャどうするか?
    • リポジトリのディレクトリ/branch戦略って何がベスト?
    • 一人開発の心得とは?

まとめ

初心者なので、連番の記事で学んだことをつらつら書いていきます。
ある程度いい感じになったら、進捗じゃなく、技術ごとに記事を書いていこうかなと思います。

(付録)一人開発の心得をChat-GPTスクラムマスターに聞きました。

一人開発のときに大事な心構えをまとめてみたで!
MVPファーストでアジャイルに進めるなら、効率よく進める工夫モチベーション管理がカギやな。


1. 設計は最小限に、まず動くものを作る

💡 「完璧を目指さず、まず動かす」
👉 設計に時間をかけすぎず、動くものを早くリリース
👉 画面遷移やデータフローが決まったら、すぐに開発に着手
👉 仕様変更に強い柔軟な設計を意識(疎結合 & 拡張しやすいコード)

注意点

  • 「後で直せばいい」と思って無計画に作りすぎると、あとで修正コストが増える
  • 重要な部分(OCR処理・データ管理)は、最低限の設計をしてから実装する

2. 一人でも振り返り(定期レビュー)をする

💡 「定期的に、開発の進み具合をチェック」
👉 週1回くらい、MVPの進捗を確認 & 次にやることを決める
👉 Trello、Notion、GitHub Projects みたいなツールを使ってタスク管理
👉 「今、何ができてて、次に何をやるか?」を明確にする

注意点

  • 一人やと開発がダラダラしやすいので、明確なゴール設定が必要
  • 「今日はこれだけやる!」と決めて開発する

3. 可能な限り自動化する

💡 「自動化できる作業は極力減らして、開発に集中」
👉 CI/CD導入(テスト & デプロイ自動化)
👉 フォーマッター & 静的解析導入(Prettier, ESLint, Black, Flake8 など)
👉 シェルスクリプトで繰り返し作業を省く

注意点

  • 自動化にこだわりすぎると、本来の開発が遅れる
  • 「後回しにしてもいいもの」と「今やるべきもの」を見極める

4. モチベーション維持の工夫

💡 「やる気が続く仕組みを作る」
👉 作業の進捗を「見える化」して達成感を得る
👉 こまめにGitコミットして、「積み上げ」を実感する
👉 Twitterやブログに進捗をポストする(適度な外圧をかける)
👉 1日の終わりに「今日やったこと」をメモして、次のタスクを決める

注意点

  • 「全部やろうとしない」 → MVP完成までは機能を絞る
  • モチベが下がったときは、無理に頑張らずに小さいタスクをやる

5. コードを「未来の自分」にわかる形に

💡 「未来の自分が読んでも理解できるコードを書く」
👉 変数・関数名は明確にする(適当な名前は避ける)
👉 適切なコメントを残す(特に複雑な処理)
👉 Gitのコミットメッセージをわかりやすくする(後で見返してわかるように)

注意点

  • 「とりあえず動けばOK」なコードを書きすぎると、後でメンテが辛くなる
  • 特にOCRの処理は、どこで何をやってるか整理しておくと後々楽

6. 外部の力を活用する

💡 「全部自分でやろうとせず、便利なツールやライブラリを使う」
👉 OCRやPDF処理は、既存のライブラリ(Tesseract, PyOCR, OpenCVなど)を活用
👉 ChatGPTやGitHub Copilotでコード補助
👉 バグの解決はStack OverflowやQiitaをフル活用

注意点

  • ライブラリに依存しすぎると、独自のカスタマイズが難しくなることもある

まとめ

📝 一人開発の心得

  1. 「まず動くものを作る」(設計しすぎず、MVPを優先)
  2. 「定期的に振り返り」(週1で進捗確認 & タスク整理)
  3. 「自動化できるものは自動化」(CI/CD、フォーマッター、シェルスクリプト)
  4. 「モチベ管理」(進捗の見える化、こまめなGitコミット)
  5. 「未来の自分が読めるコードを書く」(コメント & わかりやすい命名)
  6. 「外部の力をうまく使う」(ライブラリやAIを活用)

これを意識すれば、効率よく & 楽しく開発を進められるで! 🎯💪

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?