アンチパターン

プロジェクトマネジメント アンチパターンのまとめ

プロジェクトマネジメントのアンチパターン(Project Management Antipattern)をまとめた. 基本的に下記の本を邦訳した内容になっている. https://www.amazon.com/AntiPatterns-Refactoring-Software-Architectures-Projects/dp/0471197130 プロジェクト…

【プロマネ アンチパターン】Email is Dangerous

どんな問題? Emailは潜在的な危険性をはらんでいる 機密情報の伝達には不適切 感情的な論争にも不適切 Emailは下記の点でよろしくない 機密情報が読んでほしくない人に伝わる 多くの人に瞬時に伝わる The Washington Postに載るくらいの気持ちで書く 永遠に…

【プロマネ アンチパターン】The Feud

Feudとは争い,反目,確執のこと どんな問題? マネージャー間の衝突 開発者は生産的なコミュニケーションを欠く 技術移転ができなくなる 組織全体の生産性とイメージは低下する どう解決する? pizza partyで解決する 大抵の問題はオフィスで談笑して解決す…

【プロマネ アンチパターン】Fire Drill

どんな問題? 設計と開発が遅延してしまうことはよくある 管理側が開発者の進捗を止めてしまう 「待て」と指示する 不明瞭な指示を与える 外的要因でプロジェクトの方向性が変化する Fire Drillの始まり プロジェクトの納品キャンセルの危機が迫る 管理側が…

【プロマネ アンチパターン】Throw it over the Wall

どんな問題? 文書は説明的でない事が多い 著者のvisionやinsightを理解すること = 文書を理解すること 人の性向はそれぞれ 個人の性向を理解すると,その人の仕事を理解できる ガイドラインは完璧ではない 予期しない結果につながることも 文書の目的を理解…

【プロマネ アンチパターン】Project Mismanagement

どんな問題? プロジェクトの大事なactivityが見落とされたり,過小に評価される technical planning architecture quality-control activities inspection test 症状と結果 アーキテクチャ的な戦略がなくて,設計が難しく実装できない コードレビューやイン…

【プロマネ アンチパターン】Smoke and Mirrors

どんな問題? デモシステム 重要なセールスツール エンドユーザはデモを製品版のクオリティと解釈する 開発者は厳しい状況に追い込まれる 約束の性能まで向上させることを望まれる エンドユーザ 期待した性能,コスト,納期が得られない どう解決する? エン…

【プロマネ アンチパターン】Irrational Management

どんな問題? マネージャーの優柔不断さと反射的な反応の連鎖がひどい結果を招く 決断できないマネージャー 性向に問題がある 詳細に取り憑かれる 一方で,危機に直面したときに反射的な対応をしてしまったりする こうしたirrational Managementは,人を率い…

【プロマネ アンチパターン】Intellectual Violence

どんな問題? Intellectual violenceは,会議中の話題である理論・技術・バズワードを知らないことで萎縮すると起きてしまう 「知らない」と披露しにくい 結果的に,コミュニケーションが滞る 劣等感を感じながらそのトピックを避けつつ会話を続けるのは大変…

【プロマネ アンチパターン】Corncob

Corncobの元々の意味はトウモロコシの穂軸. どんな問題? Corncobは一緒に働くのが難しい人のこと 個人の性格的な理由 ソフト開発はそもそもストレスフル 厳しいスケジュール 厳しい予算 Corncobsはさらに不必要なストレスを生み出す Corncobsは政治力が高…

【プロマネ アンチパターン】Fear of Success

どんな問題? プロジェクト成功間際に起こる問題 懸念に囚われはじめ,理性的な行動ができなくなる どう解決する? 管理者はプロジェクトの成功を宣言すること たとえ,結果が不明だとしても チームに対して達成を味わせる yusuke-ujitoko.hatenablog.com

【プロマネ アンチパターン】Death By Planning

どんな問題? 多くのプロジェクトは計画しすぎて失敗する 要因 コスト計算 スタッフ最適化 2種類の計画過多がある Glass Case Plan Detailitis Planのサブセット プロジェクトが始まったら計画過多はなくなる Detailitis Plan プロジェクトが終わるまで計画…

【プロマネ アンチパターン】Viewgraph Engineering

どんな問題? 開発者がコーディングより,文書作成に時間をとられること 開発者自身のデメリットが大きい フラストレーションが溜まる 本当の能力を生かせない 最新技術に追いつけなくなる どう解決する? 文書作成させられている開発者はプロトタイピングに…

【プロマネ アンチパターン】Analysis Paralysis

どんな問題? 分析フェーズで完璧を求めるときに起きる 特徴 モデルが何度も改変される モデルが詳細すぎる オブジェクト指向では,分析時に完璧すぎるモデルを作る必要はない ドメイン専門家に任せる事ができるがOODの強みであるはず Analysis Paralysisを…

【プロマネ アンチパターン】Blowhard Jamboree

どんな問題? 業界の専門家の発言は技術採択への影響力が大きい 内容に誤解があることが多い 間接的に得た情報をもとにする 直接の研究や経験をもとしたものは少ない. どう解決する? 組織に技術領域ごとの専門家をもつこと 事実と嘘を見抜ける yusuke-ujit…

ソフトウェア開発 アンチパターンのまとめ

ソフトウェア開発アンチパターン(Software Development Antipattern)をまとめた. 基本的に下記の本を邦訳した内容になっている. https://www.amazon.com/AntiPatterns-Refactoring-Software-Architectures-Projects/dp/0471197130 ソフトウェア開発アン…

【ソフト開発 アンチパターン】Mushroom Management

どんな問題? 開発者とエンドユーザが分離されてしまう 要件は仲介役を通じて伝達される 仲介役とは アーキテクト マネージャー 要件分析者 Mushroom Managementが行われる現場 要件はユーザと開発者の両方に完全理解されるとする認識で進む. しかし実際に…

【ソフト開発 アンチパターン】Cut-And-Paste Programming

どんな問題? 似たコードが散見されること 先行例を少し改変して再利用すること line countの指標的には良い 短期的には成功できる 症状 同じ類のバグが散見される 同じ類のバグを全て治すのは難しい 全体の生産性に寄与しないコードが増えていく コードレビ…

【ソフト開発 アンチパターン】Walking through a minefield

どんな問題? 現在のソフト技術を使うことは地雷原の中を歩いているようなもの リリースされた製品の中にはたくさんのバグがある 一行につき2~5個のバグ 昔のシンプルなシステムでは問題なかった もしバグが有っても,結果には影響が少なかった. どう解決す…

【ソフト開発 アンチパターン】Input Kludge

kludgeとは「その場しのぎの」という意味 どんな問題? 「エンドユーザがキーボードを触った瞬間にプログラムがクラッシュする」 入力に対してad hocなアルゴリズムを使ったときに起きる エンドユーザはとんでもなく多様な入力を行う どう解決する? 必ず製…

【ソフト開発 アンチパターン】Spaghetti Code

どんな問題? スパゲッティコードは,構造をあまりもたないコードの中に現れる 開発者自身でさえも構造が把握できない オブジェクト指向言語の場合,以下の特徴をもつ オブジェクト数が少ない メンバ関数は大規模 オブジェクト間の相互作用が少ない オブジェ…

【ソフト開発 アンチパターン】Golden Hammer

どんな問題? ソフト開発チームがある特定の解決法やベンダー製品に親しみすぎると, どんな場面にもお馴染みの手法で解決しようとしてしまう 大抵の場合,問題に対してミスマッチな手法である 代替手段を探そうとしなくなる 症状と結果 多様な製品に対して…

【ソフト開発 アンチパターン】Boat Anchor

どんな問題? Boat anchorとは プロジェクトに何の貢献もしないソフトやハードのこと でも結構高い買い物だったりする 高価なだけに,それを使ってプロジェクトを推進する余計な仕事が発生する なんで買ってしまうかというと ポリシーやプラグマティックな理…

【ソフト開発 アンチパターン】Poltergeists

どんな問題? ポルターガイストは,オブジェクト指向に詳しくない設計者が作ってしまう以下の特徴をもつクラス 責任と役割が小さい ライフサイクルが極めて短い 役割は他のクラスの関数を起動するだけ 予め決まったシーケンスで managerとかcontrollerとかが…

【ソフト開発 アンチパターン】Functional Decomposition

機能分解(functional decomposition)は手続き指向型言語では有効 大規模ソフトのモジュール要素を理解しやすい しかし,オブジェクト指向言語には適さない どんな問題? オブジェクト指向言語なのに手続き指向のコードができあがる オブジェクト指向を理解…

【ソフト開発 アンチパターン】Ambiguous Viewpoint

どんな問題? オブジェクト指向分析&設計(OOA&D)はモデルから構成される下記ビューポイントがはっきり規定されないことが多い オブジェクト指向設計の3つのビューポイント ビジネスビューポイント(概念ビューポイントに相当) 仕様ビューポイント 実装ビ…

【ソフト開発 アンチパターン】Lava Flow

Lava flowは溶岩流という意味 どんな問題? 研究段階のコードから発生しがち. 研究段階のコードの特徴としては以下がある. 試行錯誤を繰り返す デモを何度もつくるために色んなバージョンがある, ドキュメント化はされない. その結果として, 断片的なコ…

【ソフト開発 アンチパターン】Continuous Obsolescense

Obsolescenseの意味は「すたれること」,「旧式化」. Continuous obsolescenseは,技術が常に古くなっていくこと. どんな問題? 技術の移り変わりは早い それに追いついて製品を更新していくのは大変 technology marketerの視点からすると,2つの大事な要…

【ソフト開発 アンチパターン】The Blob

Blobの意味 (どろっとした)かたまり,粒,滴,(インクの)染み (ぼんやりした)影 (試合での)0点 どんな問題? Blob 以下の状態のときに発見される 1つのクラスが処理を占有 他のクラスはデータをカプセル化 このとき責任が1クラスに集約されるのが問…

【ソフト開発 アンチパターン】Dead End

dead-endとは下記の意味をもつ形容詞 行き止まりの,袋小路の 低賃金の,先の見込めない スラム街に住む どんな問題? サプライヤからのサポートが切れた再利用コンポーネントに対し変更を加えることで起きる. 変更後のコンポーネントをシステムに統合しよ…