Seeing is believing

いちエンジニアの日々の興味のあるところ、イベント参加記録、学びの共有を取止めなく※このblogは個人の見解であり所属する組織の見解ではありません

20181120Eclipse 最新事情セミナー に参加してきました

20181120Eclipse 最新事情セミナー

  • Mike Milinkovich 氏(13年ぶりの来日)
  • Eclipseは2001年にIBMによってローンチされた
  • Eclipse Foundationは2004にできた
  • Eclipseとして注目しているのは4つ
    • Cloud Native Java
      • Eclipse Glassfish5.2でJakartaEE8に対応。2019年予定。
      • Jakarta EE9から、コミュニティ駆動に。対応するGlassfishの対応版は未定5.X。来年末ぐらいを目標としている。
      • Eclipse Glassfish5.1 12/14にリリース予定。Java EE8ベース。
      • MicroProfileも継続している
    • Eclipse IoT
    • Tool
      • Eclipse Che
      • 3年ぐらい前からやっている活動
      • コンテナ化されたワークスペース for クラウドネィティブ開発
      • 開発におけるチャレンジ
        • コンフィグとセットアップに1週間に24%も時間、コストがかかっている(新チーム参画の場合)
        • 開発ツールの開発にも41%もコストがかかっている
        • 顧客からみると生産性がないため、その時間は全く嬉しくない
      • デスクトップで仕事をするとセキュリティの問題がある
      • Cheの考えは、ブラウザIDE+Project Files + Runtime
      • easy to share + easy to Manage + Secure.クラウド側で集中管理
      • ワークスペースはこれまでと考え方が異なる
      • クライアント側はいろいろな選択肢がある。EclipseやVSC、IntellJとかもクライアントとして使える
      • チーム内のコラボレーションにも使える。設定の共有、集中管理も楽。
      • ワークスペース、サンプルの共有や、Pre-commit feedbackなど。
      • Gracpical Modeling ツール
      • System and Software Engineering : Capella
        • Siriusを使って作られている
        • アルカディアという開発手法で使える
        • 大規模開発向き
  • Eclipseの純粋なスタッフは30名ぐらい。あとはコミュニティで運営されている。
  • Cheの背後にはRedhatがいて、OpenShiftでもCheが使われている
  • Eclipseプラグインアーキテクチャは取っていない?
  • 次のTHEIAというプロジェクトがあり、フロントエンド向けに機能拡張していく予定。TypeScriptで実装されている。ブラウザIDEや、スタンドアロンでも使える(Electronアプリ)次のバージョンではクライアント側をこちらにしてくことが決まっている。
  • 過去にあったOrion多言語対応は優秀だった。この機能は今後THEIAにマージされていく予定。
  • 直前には中国にいってきて、JakartaEE,Cloud Java、Cheに関心があった。Cheについては、開発者増、セキュリティの観点。Citrilxだと大変だった。移行を考えているとの声もあった。

20180911 Cloud Native Meetup Tokyo #4

20180911 Cloud Native Meetup Tokyo #4

所感

  • いろいろ追いつけていないところが多く、キャッチアップが必要

istioとEnvoy

  • Istio
    • オープンサービスをマネージドプラットフォーム
    • それぞれのK8S上のサービスをproxyをサイドカーでチェックしてやりとりする
  • Istio 1.0の機能
    • mTLSの実装:mutual TLS
    • パーミッシブモードの場合、通信の最初の数十バイトを見て、TLSか、mTLSかを判断してどちらでもやりとりできるようにする
    • gRPCでMixerのデフォルトアダプターでサポートされた
  • envoy
    • 高いパフォーマンスでL4/L7を理解できるネットワークプロキシ
    • ロードバランス
    • L7(アプリレベル)でログが履ける
    • 1.7.1リリース
    • 1.8が9月末にリリース予定
    • 1.7 の新機能 
      • RBACのフィルター
      • ルートURL単位のHTTPフィルター
      • 別フィルターを複数設定できるように
    • xDS APIがある
      • LDS - Listener Discovery Service
      • RDS - Route Discovery Service
      • CDS - Cluster Discovery Service
      • EDS - Endpoint Discovery Service
      • SDS - Secret Discovery Service
      • HDS ー Health Discovery Service
        • HDSは、Envoy ProxyEndpointがnmでヘルスチェックしないように、分担する
      • ADS - Aggregated Discovery Service
      • UDS - Unix Domain Socke
    1. Envoyで実装された新機能はどの程度遅れてIstioに入るのか?
    1. Envoy自体はMasterがRCとしてReleaseまで早いので利用できるようになるまでは早い。Istioのほうで抽象化して利用可能になるまでに若干時間がかかるかもしれない。

Open Policy Agent is 何?

20180907 第2回enPiT-Proスマートエスイーセミナー: アジャイル品質保証と組織変革に参加してきました

20180907 第2回enPiT-Proスマートエスイーセミナー: アジャイル品質保証と組織変革

所感

  • 結構人が多く、熱心に聞き入っていた。
  • XP祭りの前夜祭扱いということで、会場下見もかねて?
  • アジャイルが不確実性への対応ということで品質はケースバイケースしかないと考えていたが、色々な整理の方法があることを知れてよかった。

アジャイル品質保証パターン: Quality Assurance から Agile Quality へ

  • Joseph Yoder(The Refactory, Inc.)
  • @metayoda
  • MVPではなく、MAP(Minimum amwsome product)
  • 課題
    • どうやってスケールするか?
    • セキュリティどうする?
    • テストは??
  • 成長するシステムは、非常に複雑で、多くの依存関係を持つ
  • Big Ball of Mud : スパゲッティコード
    • なぜデファクトスタンダードと、我々が実践すしていることのギャップが大きいのか?
    • なぜ高品質システムを構築したいのに、こうなってしまうのか。。
  • Financial Times でも取り上げれている
  • どうやってリーンでアジャイルであり続けられるのか? 開発の継続がポイント
  • ビジネスのS曲線。成熟してくると開発はなだらかに。
  • システムの品質
    • パフォーマンス
    • セキュリティ
    • スケーラビリティ
    • 可用性
    • 信頼戦
    • 保守性
    • 進化性
    • テスト容易性
    • デプロイ容易性
  • 最後の四つが開発スピードに影響
  • バリューがプラクティスを工藤する(Values Drive Practices)
  • アジャイル・リーン
    • イデアービルドー(コード)ー測定(Measure)-(データ)ー学ぶ(Learn)ーアイデア の繰り返し
  • 設計の価値
    • デザインのシンプルさ
    • 迅速なフィードバック
    • 頻繁なリリース
    • 継続的改善
    • チームワーク・信頼
  • Agile Development Accelerate Delivery(Wikiに図がある)
  • 品質面でアジャイルになる
  • 障壁の解体(打破する)
    • 物理、文化的な障壁、言語、コミュニケーションなど
  • 品質保証チーム(QA)
  • プロダクト、プログラムマネジメント、品質保障、アーキテクトの相互作用
  • 最終責任地点(Last Responsible Moment:最大限遅れさせられる地点)を選択する
  • Responsible Momentを計画する
  • 品質検討するためのロードマップを定める
  • 視認性(可視化)が重要
  • バックログを色付けし、アーキテクチャ作業の可視化と明治を行う
  • CI(継続的インスペクション)でコードの匂いを検出。メトリクス(テストカバレッジ、サイクロマティック複雑度などを)自動で計測
  • 改善するためには余分な時間が必要(Slack Time)
  • 余分な時間を可視化する。
  • ジャーニーである
    • コミットする
    • 徹底的に従う
    • ラクティスを熟慮する
    • 改善する
  • 参考
  • https://qiita.com/kenjihiranabe/items/a0795dbdab4c58e746a1

    OODAと品質保証:アジャイル開発に置ける品質管理のアプローチ

    • WFの品質保証のアプローチをそのままアジャイルに適応できない、という課題からくる
    • OODAループ
    • 戦局を左右するのは、情報量と意思決定のスピードである
      • 相手を観察、状況判断し、意思決定し、行動する
      • 相手も同じことをした場合、早く行動したほうが勝つ
  • ソフトウェア開発モデル:Vモデルにフィードバックを加えたWモデルがある
  • アジャイルの場合は、テストをOODAする。テストと学びを短いサイクルで実施、享受する
  • QAのアジャイルとは?Steleth:ステレス。開発の人からは見えない存在になれ。開発の初めから入り込め
    • ステルスモード:まずは見守る:朝会
      • 朝会の目的:リスクセンサー
  • DevQAとして、品質保証部門の関係も

高生産性と信頼性におけるアジャイル形式工学手法

  • Agile-SOFL
  • アジャイル手法を好きになれるか?
    • プロジェクトが小さい、短い場合はYes。(5000LOC,5ヶ月内の場合は気にせず導入すれば良い)
    • 大きい、クリティカルなシステムはNo。深い理解が必要になるため。バグに繋がってしまう
  • SOFL:仕様を書くことによってユーザーのニーズをはっきりさせる
  • セーフティとセキュリティに関するところはフォーマルに、それ以外はセミフォーマルでよい
  • テストデータの自動生成、テストの自動実行まではできる
  • 結果の分析が時間かかる

ソフトウェア工学の観点から見たアジャイル(

JJUG ナイトセミナー 「Java: Today and Tomorrow by Simon Ritter!」に参加してきました

【東京】JJUG ナイトセミナー 「Java: Today and Tomorrow by Simon Ritter!

所感

  • 前半はJDK10の振り返り、11およびその先の予定で、知っていること、知らなかったことが多く、フォローが必要
    • Metopolisなどは昨年のJavaOneでもテーマとして挙げられていなかったと認識。
  • 後半はAzul Zing JVMの紹介で、かなり理解が及ばないことが多かった
    • 大きな1つのヒープ(8Tbなど)でも利用できるとスケールが大きかった

以下それぞれのセッション中にとっていたメモ

Java Platform Module System (JPMS)

  • APIを安全に公開する。適切な公開範囲
  • jlink : The Java Linker(JEP282)
  • jlink --addmods でモジュール追加。作成したものを java --list-modulesで確認できる

OpenJDK;New Release Model

  • 半年毎リリース
  • LTSリリースは3年ごと
  • JDK8はLTS扱い
  • 次のLTSはJDK11
  • OpenJDK binaryはGPLv2with CPE license
  • JDK11からFlight recorderがはいる
  • Mission controlも
  • JDK 11から、Oracle JDKは商用サポート版のみ本番環境で使える
  • JDKをフリーで使い続けるには、半年ごとにバージョンアップするしか無い
  • Adopt OpenJDKであれば、無償でもLTSがある

JDK10

  • JEP 286 : Local Variable Type :var
  • Style guidelineが公表されている
  • http://openjdk.java.net/projects/amber/LVTIstyle.html
  • var itemQueue = new PriorityQueue<>();
  • PriorityQueueに推論されてしまうので、使い方良くない
  • List,Set,Map.copyOf(Collection)
  • Collectors
  • Optional.orElseThrow
  • JDK11

    • 17個のJEPs(内、3つがOracle外からのJEP)
    • JEP 209: Dynamic Class-file constants
    • remove CORBA and JavaEE module - moduleシステムがあるので不要
    • JEP 321 : HTTP Client ,JDK9でIncubatingモジュールだったものの標準版
    • JEP 323 : var でラムダ。(var x , var y) -> x.append(y) ;
    • 新規クラスは無し。メソッドは追加あり。

    Futures

    • Amber
    • Valhalla
    • Loom
      • fibres
    • Metopolis
    • Panama
    • Zule Java
      • free binary distribution of OpenJDL

    Building A Better JVM

    • 実際のJVM Performanceのグラフは、一定のところで頭打ちになる?それまで時間がかかる?
    • GCではポーズがかかる
    • Azul Zing JVM
      • GCはC4のみ(Continuous Concurrenct Compacting Collector)
        • Genarational(young and old)
      • AzulのJVM
      • Zingは大きなヒープでも問題にはならない
        • 8Tbまでスケールできる
        • 小さなヒープがたくさんあるよりは大きなヒープ1つの方がよい(効率的)
        • ただし、大きなヒープを必要としているものではない
    • How to implove JIT Comparation
    • Azul Falcon JVM Complier
    • ready now! save JVM JIT profileing information.
    • 最初のグラフはC4によりストップザ・ワールドがほぼなくなり、Falconにより頭打ち部分が少し下がった

    JSUG勉強会 2018年その5 Spring IO 報告会 に参加しました

    JSUG勉強会 2018年その5 Spring IO 報告会

    jsug.doorkeeper.jp

    全体所管

    • Reactiveあまり触っていない分、キャッチアップする必要あり。進化が早い!
    • APIについては、ケースバイケース。見極め力が必要
    • Spring Cloud Gateway, Spring Cloud Pipelineについては触ってみる価値あり。やりたい!

    • 会場:Pivotal @六本木ヒルズ20F

    Reactor, Reactive Data Access, REST beyond the obvious

    Flight of the Flux: A look at Reactor execution model

    • 元ネタスライド
    • サーバサイドのReactiveの話 。イベント=通信
    • データが発生するごとにどのようにデータを処理していくかの工程をReadableにわける
    • マルチスレッド、ノンブロッキング、並行処理、並列処理
    • functional interface
    • Reactorを支える技術要素
    • Nothing happens until you subscribe
    • Assembly time:subscribeするまではpipeline(工程、ステップ)が書かれているだけ
    • Execute time:タイミングが異なる
    • Debugモードにする魔法;Hooks.onOperatorDebug();
    • Debugモードその2:checkpoint()メソッドをつかう
    • Hot publisher:流れている途中からもみれる
    • micro fusion : 異なるオペレータを1つのキューにまとめる

    Under the Hood of Reactive Data Access

    • 元ネタスライド
    • ReactiveDriverはデータがどこまで取得できているのかを把握できるので、データを全て待たなくても良い
    • SpringDataでReactiveでDBアクセスできるものは限られている
      • Mongo,Radis,cassandra,Couchbase
    • ReactiveでないDBとの違いは、Threadの構造、タイムアウトのハンドリング、ConnectTimeout、ReadTimeではなく、CommandTimeout(自分で完了シグナルを送るタイムアウト

    REST beyond the obvious

    Spring REST Docs RAML, Spring Cloud Contract

    • 岩塚 卓弥(NTT SIC)さん
    • Restful API開発にはツールがたくさん
    • 用途により異なる
      • Public API
        • 誰がどう使うのかわからない
        • API変更時に利用者側の合意は不要(できない)
      • Internal API
        • 使う人、使用方法がわかっている
        • 変更時に同意が必要
        • 内部の開発者が使えればよい
    • メンテナンスされたドキュメントは重要 vs ドキュメントのメンテナンスは面倒
    • Public API
    • API仕様からのソースを生成
    • ソースコードからの生成:Springfox:ソースコードだけでは情報が足りてないので補完が必要
      • 実装方法に依存。ソースコードが読みづらくなる。実装内容と保管情報法の乖離のチェックが必要
    • Spring REST Docs:APIのテストコードからドキュメントの一部を生成
      • API実装側の実装方法に依存しない
      • テストされた正確なものが出力。デフォルトはAsciiDocs
      • Spring REST Docs RAML Integrationがよいのでは?
      • RAML形式の出力を出す3rdパーティ性ライブラリ
        • そのRAMLからJsonSchemaやリクエストのJsonの例なども出してくれる
        • raml2htmlするとちょっとリッチな画面に
        • API Rest Console:リクエスタコードの例、実際にAPIを叩いて確認できる
    • InternalAPI用
    • お互いにAPI呼び合っている際にテストをどうするのか?
    • Consumer-driven Contracts(CdC)
      • 各利用者はAPIのレスポンスすべてを使いたいとは限らない
        • 利用者の必要な部分だけの取り決め=Consumer Contract
      • Contract:Groovy DSLまたはYAMLで記述
      • Polyglot対応もされている:Contract がYAMLになっている&テストランナーはDockerで起動できるので環境を汚さない

    Spring Cloud Gateway, Spring Cloud Pipeline

    • 堅田 淳也(NTT SIC)さん

    Spring Cloud Gateway

    • APIゲートウェイAPIのリバースプロキシとして振る舞い、横断的関心事を処理
    • Spring5,Spring boot2系で動作
    • シンプルだが十分なAPIルーティングを動作
    • リアクティブ対応
      • 従来のZuul1系と大きく異なる。2系はSpringCloudでのサポートはなし
    • 最新バージョンは2.0.0
    • デモ
      • Stage1:モノリシックなアプリを段階的にマイクロサービス化していく
        • Helloサービス、Fortuneサービス、UI(index.html)
      • Stage2:Stand up gateway
        • 依存性追加、JavaConfigでルーティング先の設定
      • Stage3:Move UI to separate app( path rewrite)
      • Stage4:Add service discoverydiscovery
      • Stage5:Move hello service.URIの形式が変わった場合の古い人への吸収をAPIゲートウェイ実装側で実施可能というデモ
      • Stage6:Add circut breaker to old fortune service with fallback:Hystrixのサービスブレーカを実現
      • Stage7:Fortuneサービスの切り出し
      • Stage8:流量制御を適応する。
        • Spring Cloud Gatewayに機能あり。Redisが必要。
        • 例:秒間最大1アクセスに制限

    Spring Cloud Pipeline

    • デプロイメントパイプライン
      • パイプラインを1から作るのは大変
    • Spring Cloud Pipelines :デプロイメントパイプラインのベストプラクティスを提供
    • Concourse,Jenkinsに対応
    • 最新バージョンは1.0.0M3
    • ライブラリではない。中身はほぼBashスクリプト
    • 4つの環境ごとにジョブが作られる
      • Build:ビルド、単体テスト、成果物の保存、API互換性チェック(Spring Cloud Contractを利用)
        • MavenかGradleに対応していれば活用可能
      • Test:テスト環境へのAPをデプロイ、スモークテスト、APをロールバックロールバックしたAPのスモークテスト(後者2つは戻しの可否確認)
      • Stage:ステージング環境へのデプロイ、E2Eテストの実施
      • Prod:新しいAPを本番環境へのデプロイ、新しいAPへの切り替え、ロールバック(これだけ手動)

    JavaからC言語のロジックを呼ぶのをお試し

    簡単なCで書かれたロジックをJavaから呼び出すことを試した。

    • 環境はMacOS

    • 参考サイト

    qiita.com

    d.hatena.ne.jp

    gccのコマンドをどうするのかが最後なやんだ。試行錯誤で最終うまくいったコマンドは以下。(historyから抜粋)

    • vi hello.c

    • vi HelloJNI.java

    • javac HelloJNI.java

    • javah HelloJNI

    • gcc -shared hello.c -I /Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/include/ -I /Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/include/darwin/ -o libhello.dylib

    • java HelloJNI

    以下のサイトも参考になりそう。

    JNI helloworld | Adamish | Blog

    つくったソースとコンパイル結果のライブラリは以下リンク先に。

    https://github.com/omix222/javaandc

    Agile Japan 2018 に参加してきました!

    AgileJapan2018に参加してきました。

    www.agilejapan.org

    全体の印象としては、アジャイルやってみよう!という人よりは今やっている、もしくはやり始めたところの人たちが多かった印象。

    他の会社ではどうやっているの?とか、自分がアジャイルをやっていてぶつかった課題に関するヒントを得に来ている感じ。

    JapanTaxiの川鍋社長のプレゼンがとても引き込まれるもので良かった。

    資料が公開されたら、参加できなかった裏番組セッションも含めてじっくり見直したい。

    以下は参加中にとっていたメモです。

    運営の方、登壇者の方、お疲れ様でした!!

    Agile Japan 2018

    • 今年で10周年
    • 今年の参加者は542名の参加者(登録者数)
    • うち今年初参加388名
    • Agileキャズム(深い淵)を超えた。今後のはさらに広がっていく見込み。
    • Agileはわかりづらい? Do Agile? Be Agile?
      • 常にWHYを意識することが成功へのカギ
        • 変えることが大事になってしまうと、本来の目的を見失ってしまう
    • event hubのスペースが用意されており、Mob Programmingブースもあり。去年から初めて大盛況。第一人者のWoody Zuill 氏による

    株式会社オージス総研 藤井 拓 氏

    基調講演その1:Woody Zuill 氏

    • 楽天川口さんのつてで登壇。企業向けに英語の公用化の支援。アプリ、塾など。
      • モブプロを取り入れて1年ほどたっている
      • きっかけは、Woodyさんの1dayのトレーニングを受けたこと
      • ペアプロの延長ではなく、働き方そのものを変える何かかだと感じた
      • イベントでMobに対する講演もしている。Mobの見学会も。モブをやることでビジネスサイドの人がプログラマがどうやって開発しているのかが知れた。などの感想も。
      • no estimate:見積もりしない。 延期をする権利。ハンターインダストリ社?

    Woddyさんセッション

    • 平鍋さんによる通訳!
    • Mob Programming and tho Power of Flow
    • 同じことを同じ時間に同じ場所で、同じコンピュータでやる
    • 知識がバラバラの人を集めてやる。なぜかうまくいく。
    • Driver(チームからInputを受けて、チームの考えをoutputするだけ) / Navigator
    • イデアをシェアする。簡単ではないが、練習すると出来るようになる
    • リモートによるVirtualMobでやっている事例も。
    • NASA Mission Controlも1種のMob。専門性の高い知識を持つ人が1箇所に集まる
    • システムは一つ一つを集めてもできない。それぞれの
    • 効率性(正しくやっているか?)、生産性(Outputがでているか?)、効果的かどうか(正しいことをやっているか?間違ったことを早くやるのではなく、遅くてもよいから正しいことをやりたい)
    • 5人で生産性があがるか? 質問が誤り。5人で効果的(effectivity)か?を知るべき。
    • 効果的なものを破壊するものは何か?いろいろあり、人によって異なる
    • Mob Programmingをやり始めると、これが消える。効果的に働くということにフォーカスした結果。
    • Question Queue Time。VSMを整理すると、質問して待っている時間が無駄。
    • 普通は、待っている間に他のことをやる。そうすると、在庫を抱える、コンテキストスイッチが入る
    • One Peace Flow 日本語でいうと一個流し。1つのタスクにしかかったら終わるまでやりきる
    • 心理的なFlow、物理的なFlow
    • 前者は没入状態、自分と相手の区別がつかない。Zoneに入っている。時間の感覚もなくなる
    • Team Flow.仕掛かり状態なく、待ち状態もない
    • ソフトウェア開発は、ideaがソフトウェアでデリバリーされる。それがキューなく、待ちなく、割り込みなく、リラックスした状態でできるか?
    • Mob Programming は一人一人を最大限引き出すのではなく、みんなから一番いいところ引き出す。
    • モブプログラミングは、仕事のフローに対して最適化されている (一人一人のアウトプットへの最適化はしていない)
    • 製品開発でもっとも大きな問題はキューとされている。Mobはソフトウェア開発におけるキューの問題を解決する
    • 個人のFlow、チームのFlow、LeanのFlow
    • 大事なのは、アートを作ることではなく、自然にアートを作れる素晴らしい状態にいること、環境になっていること
    • 参加者のBlog: https://hackmd.io/kbddZClZRzyAhRnMkFgiCA#

    JapanTaxiの挑戦

    • 川鍋さん。日本交通の3代目。
    • 全国タクシーApp
    • GPSスマホ で急にITが必要になってきた
    • 全産業IT化の状況。経営者は全員気づいている。
    • JapanTaxiは90名体制でうち50名は内製。日々状況が変わってついていくため。
    • リアルのビジネスがあってそれにITを足す方やさしい(Japan Taxi)。ITから初めてリアルを後付けするのは難しい(Google)。
    • コラボレーティブモビリティ。タクシーと道路舗装会社、など
    • 社長自身もtech campに1週間参加し、Rubyもやった。
    • エンジニア採用はCTOに任せた
    • ハードウェア(シンセンで数千円単位)や、SIMが安くなってきたことが大きい。
    • 最近VPOE(Vice president enginieer)の役職を作った

    エンタープライズ企業におけるアジャイル開発の取組み

    東京電力;WF文化の企業でSoRにアジャイルを導入してみて起きたこと

    • 2016年にHD制に移行。2020年の電力完全自由化に向けての組織変更
    • 生産性の倍増と、新ビジネスの創造を目的としている
    • Open Speed Co-Operation(共創)をテーマに
    • デザイン思考と高速PoC
    • 3年で1000のアイディア創造、100のPoCを実施。今後確率をあげたい。
    • 6/22にインキュベーションセンターを開設。既存の門前仲町のビルの1フロア。tepsys labs。
    • 東京電力が持つファリシティのデータを生で触ることができる
    • 福島原発廃炉プロジェクトを遂行中。30-40年がかり
    • 原発放射線管理に関する業務支援システム
      • 人、作業、場に関すること
    • 1997年リリースのホストシステム(COBOL 100万Step)
    • 24/365、個人情報あり
    • 関連法務多数(ステークホルダー多数)
    • 作業員の安全確保が最優先。法令や業務設計と並行して、早急なシステム対応が必要。
    • スピードをあげた結果、あとからAgileと名付けたのが実際
    • なぜWF文化の会社でアジャイルが導入できたのか?
    • 非常事態と2つの偶然。:「風土・文化」「ヒト」
    • 非常事態:標準を崩してでもスピードをあげてもよい
    • ヒト:高いスキルと意欲を持ったチームの確保
    • ヒト:業務精通し意思決定が行えるPOが確保できた
    • 内の変化:システムプロジェクト規模が拡大、ステークホルダーも増大
    • プロジェクトの停滞;ステークホルダーが多く、利害関係が増大。POがボトルネック
    • プロダクトバックログを目的別に分割し、チームも分割
    • POに業務部門かた代表者を招集
    • 各業務部門長でステアリングチームを構成。POはこのチームとだけ話をすることで負担減
    • ホスト統合案件
      • パフォーマンス、コスト、リスクのバランス
      • チームの維持、割り込み要件対応に応えるためアジャイルで進めた
      • アジャイルの中で品質保証をどう取り組むかを検討
      • 改良ベースであることはアジャイルに不向きだった
      • 開発工程の工夫
        • 開発期間は1年半
        • 要件定義フェーズでプロダクトバックログが361個
        • スプリントを6つに分割
        • 各スプリントごとに請負契約にした(スプリントバックログが契約の元)
        • 改良の色が濃くなると、触っていない機能への不具合が多発してきた
          • 既存機能への影響分析に時間が必要であった
        • 1スプリント内を2週間の子スプリントに分割。2週間ごとのスプリントレビューのレビュー実施記録が納品物の扱い。=検収
        • プロダクトバップログ内案件の入れ替えルールを定めた
        • 要件膨らみに伴う、稼働率をあげると、不良発生率が上がる因果関係があることが社内で事実としてあった
      • 開発体制の工夫
        • 40名ぐらいの体制
        • PO部門が3つに別れていたので、それぞれで開発チームを組成
        • 大規模、会議エリアはオープンエリア(声が聞こえる)
      • プロジェクト運営の工夫
        • スプリント計画
          • 案件の内容により、開発チーム編成を変える
          • テスト体制は他チームを含めて混成編成とする。(品質、体力面)
      • 開発手法の工夫
        • 単純構造:ソフトウェアメトリクスが小さなプログラムを書く(モジュール数、分岐数、定義数を最低限に)
        • 簡単理解:日本語でプログラムを書く。ドキュメントの簡略化が可能になる。
        • 共同所有:ソースコードリポジトリを使って、個人が自由に気軽に無申請でコミット可とする。途中でもOK。他のヒトに積極的に見てもらう
          • みんなでソースを見る会
            • コードをプロジェクタで東映
            • コードに対して意見交換
      • 計画QCDの達成。業務部門の満足度が高かった
      • 課題:属人的、契約の整理が必要

    三菱UFJ銀行におけるアジャイルの取り組み~ これまで、今、これから ~

    • アジャイルの取り組みのスタートは、不確実への対応
    • 方向付けフェーズを儲ける、リリース準備期間(移行フェーズ)を設け、標準化 > DaD同様
    • リリース準備期間で他システム連携テスト、トレーニング期間
    • 2015年からのLCP開発の体制もアジャイル。一定予算内で継続的な開発。優先度に応じてバックログを見直し。
      • 50以上の小規模なアプリケーションを提供
    • EFXの事例。モデル開発が変化が激しく終わりがないのでアジャイル向き
    • デジタラでは、システム駆動ではなく、会社としてやっている
    • カルチャー改革としてのAgile:Culture of Failure
    • 課題と取り組み
      • 知識、経験不足 : ガイドの充実、アジャイルコーチ支援、スクラムサイズとして7名でスタート
      • 見積もり、稟議:機能別な精緻な見積もりを求めず。一定規模以上のPBIの集合体でりん議。優先度見直しで開発内容の変更可(予算内)
      • BPとの関係:請負契約に拘らず(準委任契約を推奨)。経験者の参画や受託者マインド脱却を要請。請負適正化観点でのコミュニケーション留意
        • 従来型の品質の積み上げ方、品質担保、リリースチェック項目の見直し
    • 業務部門の関与:個別勉強会やワークショップでの理解促進。ユーザータスク管理手続のアジャイル対応
    • 業務部門との物理的な距離;専用のコロケーションルーム、可視性を心がけTV会議等の有効活用、開発PO(Proxy)を通じたコミュニケーション
    • 意思決定の遅延:POを組織責任者から実務責任者へ。複数の業務部門が関与する場合は、代表部署のPO(リードPO)を明確化
    • アジャイルをよりやりやすく、よりメリットを享受するために

    保険会社でAgile? アクサ生命Agileトランスフォーメーション

    • ビジネス競争力強化、働き方改革などの目的に組織を今年1月に大体的に改革
    • Agile Coachを会社でやっている3名。
    • アジャイルオーケストラと呼ぶ。
    • why agile
      • 要件定義が大変。横軸でのコラボレーションが無い(サイロ化)。紙&サイン文化。複数アサインメント。プロジェクト期間の長さ
    • 組織構造:それぞれBP部門に対して、トライブ(縦)、横(ギルド)で組織化。
    • トライブ:何をするか、ビジネスパートナーとの関係維持
    • ギルド:どのように実現するか?
    • トランスバーサル:適切なコントロール、ガバナンス
    • 自立的なチーム:End to Endで自立的にプロダクトを開発できるチーム
    • T-Skillのメンバー:スペシャリスト+ジェネラリスト
    • 新しいロールと新しい働き方でAgilityをあげた
    • POはミニCEOのマインドセット
    • Aglityを高めるために内製率をあげている。エンジニアが重要なロール
    • Business Proximimity ITとビジネスとのコラボレーションが成功の鍵- 4段階のコラボレーションレベル
    • Community of Practice : 知識を共有、プラクティスのアライン、スタンダード、新しいサイロを防ぐ
    • Tool from Management 3.0:Management3.0組織を目指す。システムではなく組織をマネージメントする。権限の委譲、コンピテンシーの開発(マトリックス化)
    • Agile Coach:チームやリーダーをリード・ガイドする

    ギルドワークス:カイゼンジャーニー執筆者。市谷さん

    • 仮説検証とアジャイル開発
    • ギルドワークス:正しいものを正しく作る。スタートアップや事業会社でに新事業の支援
    • 保険会社、水回り製品メーカ、家電など
    • 大企業で新規事業をスタートアプする仮設型仮説検証
    • Golden Circle:Why -> How -> What
    • Start with why
    • なぜ、私はここにいるのか?
    • 日本におけるアジャイルとは、挑戦と、敗北の歴史
      • XPへの憧れと、その遠さ:すごくいいけどプロジェクトではどうしたらいいのか?問題
      • 2006年ごろの顧客との強調と不調、灰色の時代
      • 2010年アジャイル侍という突破口、超えられない壁
    • 二極化する現場
      • 前進していく現場は、アジャイルという言葉さえ不要
        • 進化、発達の最前線には、若く少数の組織
      • 歴史深い組織でも、アジャイルに踏み出す
      • 二極化は進んでいるが、一方で越境しようと思っている人も少なく無い(本の反応から)
    • 基本はリーン製品開発
      • リーン製品開発では、セットベースという考え方が基本。
      • 正解を誰も持っていない、不確実
    • ベンチャーの場合=セットが多すぎる。基準がゆるく、なんでもありになりがちで後半で思いつきで変更される
    • 大企業の場合=ポイントベース。却下の失敗(選択肢採用の基準が厳しすぎる。不確実なことでもあらかじめの検討を詳細に求められる)
    • 求められるのは、採用の失敗を抑えながら、製品開発を行う手段。仮説の確からしさを検証しながら、漸進する開発:仮説検証型アジャイル開発
    • 精度と頻度のマネジメント。バランスが重要。
    • 日本食品の事例
      • 新しい事業展開を牽引するサービスの開発
        • SoR中心からSoEへの越境
        • 何を作るべきか?=仮説検証
        • どのようにしてかたちにしていくか?=アジャイル開発
      • 歴史深い組織が、アジャイルに踏み出す
    • 最初の一歩(SoE立ち上げ)を潰してしまったら、組織がアップデートする芽を数年単位で摘むことになる
    • 仮説キャンパスによる仮説立案 -> インタビューや観察を通じた状況の把握(エスノグラフィー)-> 行動フローペースで必要な仕組みの設計 -> プロトタイプ検証
    • 必要にして最小限の要求詳細化作戦
      • 要求仕様の粒度は、結成するチームと関係者の練度でもって決める(詳しければよいわけではない)
      • 過去のポストポーテムを活かす
        • キックオフの前に、メンバーそれぞれの過去のプロジェクトでの学びを棚卸しする
        • インセプションデッキ「やらないことリスト」でやり方、あり方でやりたくないことを共有
      • 常にチームビルディング
        • 単純接触効果:接触回数が警戒心を解く
      • 間違ってもすぐに正解に取り戻せる力(レジリエンス力)を身につけておくのが大事
      • 間違っても即、直せる開発
        • 間違うなら、早めに間違っておく:1週間スプリント
        • 最初から何をもって完成なのかをあわせる
        • POが受け入れ条件をかけない問題
          • 仮説検証のフェーズで開発から逆に学ぶ。ともにつくるという案も。
          • 内製+傭兵チーム(ギルドワークス)
        • 越境:内製チームが。内製チームが自分が何をしたいのか
        • ゴールデンワークルは書くX 2
        • 最初はこれまでの延長でしかない。その上でむきなおりをすることで本当のゴールデンワークルをかける
      • 大企業の新規事業は2回戦う。
        • 最初の関門はプロダクトの方向性を見定めること
        • 最大の問題は、コンセプトをまとめたあとにくる。
          • 大企業ならではの、社内関係者の調整という関門
          • チームで乗り越えるしか無い
      • 逆境からのアジャイルをエナジャイズする(元気付ける、勇気付ける、後押しする)
      • 逆境だからこそ起きた変化が影響が大きい!

    Deep agile people

    • 受託開発をずっとやっている会社だと、立ち止まってアジャイルを考える時間、余裕がない
    • メンバーからアジャイルやりたいと言ってくれるといいが、やらされだとあまり、、。だがみんながアジャイルやっていきたいというケースなんて実際はない
    • アジャイル事業部は全てアジャイルアジャイル好きな人が集まったわけでは無い。新しく来た人は、そこにあるものとして当たり前に受け入れる
    • 顧客側からアジャイルをやりたいというニーズは実感として増えている。
    • パナソニックにいたときは最後は100人でスクラムしていた。サブグループわけして進めていた
    • 30-40名でやっている現場にアジャイルコーチで入っていった時は、大変だった
    • アジャイルコーチはそのScrumが自己組織化してきたら、卒業していく。単価は通常SIより高い
    • アジャイルを広めるために、アジャイルという言葉を使わないことで広げるテクニックがある(マインド面)
    • 請負で普通にやって、現場のやり方としてアジャイルでやっている。短期でリリースしていきますよというだけ。
    • 1週間ずつ区切って、わかりやすくなっているだけ、とか
    • 最近なぜアジャイルをやりたいか?を聞いても出てこないことが多くなっている。(上の人が、、とか、流行ってるからとか)
    • 海外の人と仕事する時に相手がアジャイルだから、日本も合わせて始めるというケースも
    • アジャイル、前のXPは開発者のモチベーションを高めるためだった
    • 最初はなぜプログラマーが散々ドキュメントかかないといけないのか?無駄では?という疑問がスタート。承認が多いとか
    • アジャイルのきっかけは、XPの白本、実践編はピンクの川端さんが訳した本もあった。達人プログラマーも。
    • 今おすすめするのであれば、アジャイルサムライ
    • アジャイルを広めようとしている人が高齢化してきてしまっているのでは?
    • AgileJapanは初参加の人が多い。もともとはスーツの人も呼びたいという背景があったから。
    • スクラムギャザリングの方が濃い人が多い
    • 既存ルールや規制がある場合でAgileをやろうとするとうまくいかないケースがおおい
    • PMBOKとかは変わって来ているので外堀は埋まってきている
    • 最後は企業内ルールの変更などに壁がある。最初は目的があってルールを決めたはずなのに、今目的が変わってルールを変更するとなると、ちょっと時間がかかる
    • アジャイルの品質。QA部門が開発チームの外にいて、そこと一緒にScrumのタイムボックスに入ってもらってやる人は会場で3割ぐらい。
    • 品質管理部門はWFベースでのメトリクスを要求すると辛い。POもあまり品質わかってないく、最初に握っても。。どうするか?
    • 製造業(車、医療機器)はやはり品質気にする。チーム組成からQA担当メンバーも入り、インセプションデッキして、チームごとに決める
    • メトリクスのトラッキング項目はWFとあまり変わらない。カバレッジとか。
    • TDDだとバグがでない、そうするとこれまでのソースコード量単位の目標バグがでない
    • やりかたも含めてQAと一緒に決めるしかない
    • ルールで縛る。テストコードが無いプルリクは受け付けない。もしくはペアプロ必須とする。それにプラスしてテスターがいる。
    • 品質保証部門に品質だけに責任を負わせると、イマイチになる。QCDを考えさせる。例えば経験としてPOになってもらうとかはうまくいった事例あり
    • アジャイルの場合はプロセス品質を重視するというが多い。スプリント内でこなしたプロダクトバックログ数。多すぎても少なすぎてもよくない。
    • CIが1週間に何回落ちているかなど。それもプロセス品質。
    • V字モデルがわかっていないと、アジャイルも回せないよね?という議論もあり
    • リモートワークが当たり前になっていくと、対話できないから、ドキュメントかかないといけないというものに逆にいっている流れも。チケットやチャットというものも結局文字伝達