tofdinoの日々

SIerのSEが学んだことをアウトプットをする場所

モダンなSIer開発手法 勉強会メモ

株式会社ディマージシェアさんで増田さん(@masuda220)がスピーカーの勉強会に参加しました。
そこでの雑メモなので基本的には元資料を参照してください。

connpass.com

資料
masuda220.hatenablog.com

これからのビジネスモデル

今まで

プロジェクト型

今の儲かっているSIerは法務が強いとこがほとんど
SIerビジネスは訴訟で負けることが多くなる

これから

プロダクトマネジメント型(準委任型)

人月ではなくプランとして提供する
メニューを作る(DevOpsメニューなど)
人月商売は人に金額が固定されるからうまみがない
自社でプロダクトを支援することが増えていくと予想

これからの実行環境

現在

クラウド(データセンターに集中)
スマートデバイス

アーリーマジョリティー、レイトマジョリティの段階

中間

マイクロサービシズ
Pub/Sub
Docker
Kubernetes
サービスメッシュ

中間の技術が枯れる前に未来が来るかもしれない

未来

5G
エッジコンピューティング(分散)
IoT

エッジコンピューティングでネットワークが複雑になり、テストによる品質保証は通用しなくなる
シナリオ組んでエンドツーエンドでのテストでは品質保証できなくなる
設計で保証するような世界が来る

ソフトウェアシステムアーキテクチャ

4つの観点 

  • セキュリティ
  • 性能
  • 可用性
  • 発展性 これから1番重要になる

7つの視点

  • コンテキスト-システムとその環境
  • 機能-機能モデル
  • 情報-情報モデル
  • 開発-モジュール構造
  • 並行性-プロセス実行モデル
  • 配置-実行環境
  • 運用-稼働の管理、監視

保守性とは維持すること
発展性は変わっていけること

発展性のニーズ

1年2年ですぐレガシー化する時代

みずほのシステムは発展性という観点では金融ビジネス観点の変化についていけないだろう
ここ4、5年のスタートアップは試しにやってみることが多くて酷い状態が多い

区分の話

if文やswitch文などの区分体型は4つぐらいが適当
10や20も区分が必要なビジネスモデルは絶対にないと言っていい。モデルの分析不足では?

モジュール構造の話

SIerがやりがちだがトランザクションスクリプトのようにモジュールを機能単位にする必要はない
機能単位にするといろいろな場所に同じif文の区分わけが生まれるようになってしまう

エクセルの仕様書は人間が発見しない限りミスを発見できない

型=値の種類を軸にしたモジュール構造

エヴァンスのDDDについて

世の中で言われているDDDはエヴァンスの言ってること違う気がする
エヴァンスのDDDは発展性がメインテーマ オブジェクト指向が前提で書いてある

ビジネスのコアとなる場所を徹底的にビジネスロジックを構造化するモデリングする

CCSR(増田さんの造語)

継続的・並行的・段階的がソフトウェア品質の改善に繋がる。
ざくっと要件定義した後にドキュメンテーションを書かずに作りに行くべきという思想で生まれた。

要件定義 RDRA2.0 ざくっと要件定義する。仕様化からのフィードバック。

↓↑双方向の改善

仕様化 プログラミング言語で書いていく。ソースコードから図を作っていく(ツール)。エクセルはいらない

↓↑双方向の改善

実装 動かして実証 実装している人は要件定義の目線で開発することを習慣にする

要件定義は終わりなしに改善していく。詳細は仕様化で決めて要件定義にフィードバック。 仕様化でのモデルからマトリクスして合意をとれたものを抜け漏れがないかチェックする。

関心の分離

計算の判断に使う物は型にする
例:住所や電話番号などは型にしない、電話番号によって計算することはない。
 お金などは消費税などの計算に使うので型にする。