HackMD
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Agile459読書会(2018/02/07) ## 近況 ### @ueda - 約20年ぶりの京都。京都駅ビルが昨年11月で開業20周年だそうです。 - ちなみに当時はF社のプロジェクトでM社向けの業務アプリ(VB+Oracle)をやっていました。 - 「最後はなぜかうまくいくイタリア人」を読みました。何事も30分から1時間は普通に遅れるそうで...。 > 根本的に欠けている、分業の概念 > 悲惨な状況でも喜びを見出すイタリアン・シンキング - などなど、なかなかインパクトのある見出しが並んでいます。 ### @kobatomo - 1/31 にt_wada氏とあう。2018年TDDBC開催を約束。一緒に参加したメンバが早速、TDD本を買っていた。 - ライブコーディングを見て、テストがドキュメントになる瞬間が非常に勉強になった。 - 3年後の誰かのためを考え、リファクタリングできていない機会に出会えた。 - テストを減らすことができていない機会に出会えた。 - テストコードのメンテナンスコストが増加している現状。 - 2/1 〜 Python Boot Camp のコアスタッフとなるー。各会場の開催サポートをしていく。 ### @got - 絶賛レガシーコードのテスト中! - Perl CGI サーバーが変わる...? - テスト仕様書にらめっこ ### @kkd - 18日間走らずに愛媛マラソンに参加。完走・Sub4達成したが、ダメージでかい。寒かった。 - やらない勇気、休む勇気 # 7章 主要プラクティス ## 継続的インテグレーション ### @ueda - CIの取り組みは今後の課題。 ### @got - 「分割統治の問題」は「分割(と)統治の問題」だった。 - [分割統治法(ぶんかつとうちほう)](https://ja.wikipedia.org/wiki/%E5%88%86%E5%89%B2%E7%B5%B1%E6%B2%BB%E6%B3%95) - コードリポジトリとビルドシステムの連携が未経験。 - 軽量なサンプルプロジェクトで試す。 - 「インテグレーションとビルドによって、完全なプロダクトを作り出す」って手作業によるムダをなくすという意味? ### @kkd - 2002年ごろは、自動テストを、ビルドサーバーで手動でテスト実行して、結果を確認していた。これもCI。 - JUnitReportというのを使って、結果をレポートに出力して、Webで見れるようにしていた。 - 実行をスケジューリングで自動でやるようにした→レポート確認 - JenkinsでいっきにCIが身近になった - ツールを使う=CIではない。手動でやっても良いよー。 ## テストファーストプログラミング ### @ueda - テストコードを書いていくうちに、最初の方のテストが不要になるケースもあって、でもリファクタリングせずにそのままになっていたり、あるいは別の目的で便利なので残しておいたり。 - テストを書かなかった頃は、リズムなどなくてストレスばかりの作業だった。 - ~~そもそもアプローチの仕方が変わった。~~ と思ったけどプログラムの組み立て方はそれほど変わっていないかも。ただし、テストを書いているのでデグレの心配がなくなったのと、完成した部分(機能)がテストコードで明確なので次の課題に集中できるのが楽。ブレイクポイントをセットして内部のステータスを確認して...という繰り返しも、今思えば無駄な時間。 - テストを書いてリズムができた。 - やらないといけないことに集中できる。   - 昔は、ブレークポイントを貼って地道に。。 ### @kobatomo - 去年のオープンセミナー岡山はレガシーと闘えがテーマだった。https://oso.connpass.com/event/53811/presentation/ - @t_wadaさんの資料はためになるよ。 - テストは、質を上げない。質をあげるのは、プログラミング。 - テストは、機会を与えてくる。ストレスを低下させてくれる。早いフィードバックで結果をくれるから好きなんです。 - テスト駆動開発の付録Cをシェアしようと思う。 ### @got - 数年前から自作分はあるべき姿を「一度に」テストを書いて開発・保守する方向へやっと遷移。 - 全方位に広がるテストコードの無いレガシーコードと戦いつつ、レガシーコードを増やさないよう学習中。 ### @kkd - TDDとテストファーストは違う - TDD=Test First/Automated Testing/Refactoring/Evolutionary Design(進化的設計)/Simple Design - 最初に小さいゴールを設定して、そこに進むことに集中することを繰り返していくことだなー。 - ゴール駆動。 ## インクリメンタルな設計 ### @ueda(ですよね?自分で書いて忘れた...違ってたらごめんなさい > 小さくて安全なステップで稼働中のシステムを変更する経験を積み重ねていく - 最初のリリースはあくまでも試作で、そこからのリファクタリングが重要 - 言い換えると、何もない状態で詳細に設計をしたところで、実際に動かしてみないとわからないことが多い。 ### @got - 「経済性」と「改善」 - 余計な「念のため」の設計を入れてしまい、それが足かせになってたことがあった。それらも少しずつ闇に葬ってはいるが、まだまだ途中。 - 「リファクタリング」は未読。 ### @kkd - インクリメンタル設計実現するには、テストとリファクタリングとシンプルデザインが必須だよねー。 - 生物の進化、胎児の成長をイメージしてください。 - YAGNIを覚えておこう(You ain't Gonna Need It) - ただし「どこまで」かの度合いはありますね。Railsに乗っかるとか、フレームワークとか ### @kobatomo - ハードが絡むと難しい、と思っちゃう。 ## それから...... # 8章 始めてみよう ### @kobatomo > 変化は、気づきから始まる。 > 変化の必要性に気づけば、変化に着手できる。 - 気づきこれ超重要。気づくためのふりかえり。や勉強会の機会が大事だ。場は提供できるが、やるのは自分自身。 1. ペアプログラミングやっていると聞いたことがある。 2. ゆとりがないとできないよね。ということでやれていない。と回答をもらう。 3. 理解されないままだー。社内勉強会や、TDDBCを開いて、利点を共有する機会を作ろう。関係者がちょっとでもハッピーになれば自分も嬉しい。 > 変化は、常に自分のいるところから始まる。 - gotさんが自分のタスクボードから始めたって話。いい。 - 自分もそう。最初始めたタスクボードは、まずは自分のプロジェクトから始めた。(もちろん、反対もあったと思う。これでいいのかと迷いながらやっていたときもあった) - やったことを共有する機会があってこんなことやっているんだーっで社内で発表。 - やってみようという人がいて、だんだん浸透している。 - 今では普通になっている。 > プラクティスをチームに強要すると、信頼関係を破壊して反感を買ってしまう。 - TDDは、一人は続けている。一人でも共感してくれたことが嬉しい。 - 自分が、強要したからかもしれない。 - テストを最初に書くことは難しい。で止まった。 - テストの信頼性をどうしていくのかきちんと説明できていないからかもしれない。 ### @got - 「変化」という言葉で始まる文。 > 新しい習慣の定着には時間がかかるものだ。 - たとえ三日坊主になったとしても、自分に負けない気持ちが必要。4日目からでも再開できればうまくいく。 - 周りに左右されない自分自身のモチベーションって大事。 - すごい大事!自分の速度!! ### @ueda > 変化に取り組むときは、一度に一つずつ着手 - 前向きに検討します(○○に取り組みます...と言い切れない(汗 > メトリクス(測定法、尺度)が気づきにつながることもある。 - 数値化できていないなぁ... - 訳者あとがき(P.169) XPはソーシャルチェンジ <<< これですよ!!! ### kkd > 今いる所から始めて、プラクティスを追加しながら適応していくことになる - 小さく始めよう! > プラクティスは、あなたの目的を達成するものであり、価値を表現したものである - プラクティスの裏の「目的」や「価値」も伝えよう!! - お互いに共有しないとすれ違っちゃうよ。 > 変化の速度   - 人それぞれ。 > 変化は気付きから(感情と直観と事実) > 変化の必要性 > 変化は常に自分のいるところから始まる ## プラクティスのマッピング ### @kobatomo - マッピングのように可視化していないが、やっていると思った。あーでも原則は選んでいない。プラクティスを選んでいる。 - 後付けになるが、原則は、人間性(基本的な安全). 1. 導入したプラクティス。    定時で帰る。by 2017(いきいきとした仕事) 2. マッピング。    <症状>    - 焦り、不安、の症状を減らす。    - コミュニケーションのやりずらさを減らす。    <ビジネス>    - 時間管理はする。どこで何を集中できる時間を見出す。    - 関係者とは、プロジェクト開始時にルールを決める。    - お客様と電話する。        - 約束は守る。的を絞って2週間ごとにリリース。    <プライベート>    - 定時後の家族との時間。    - 新しい言語を学ぶ(Python)    - 本を読む時間を作る    - 社外の人との交流 4. 一人で進める。   - 2017はやってみた。 5. 可能ならチームで共有する。   - できていない。中々難しい様子。 ### @got - やってみてないです・・・ - 書いてみます! - 「排水管」ってなんだろう?(「窓の外に投げ捨てろ!」?) - 英語だとDrains - 失業の恐怖、退屈、非難 => 排水管 ### @ueda - 仕掛かりですが... [draw.io](https://drive.google.com/file/d/1t8RQxiWqVvcFGsnqxzCAgROeb651Tmu1/view?usp=sharing) ### kkd - 「いきいきとした仕事」のマップ日本語化されてないじゃん!!(kindleだから!!) - 「いきいき」重要=クオリティ - 仕事だけじゃないよ!! Quality of Life ## 結論 ### @kobatomo - チームを巻き込んでやりたいなぁー。 - 実施するには、プロジェクトリーダーとしての責任と役割が必要。第三者的な立ち位置でこれができるのかなー? - できるって信じる。やるかやらないかだ。↓ ## @kkd - 可能性を信じることができるか?(=信念) ## 今日のふりかえり ### @ueda - [いきいきとした仕事のマップ](https://drive.google.com/file/d/1t8RQxiWqVvcFGsnqxzCAgROeb651Tmu1/view?usp=sharing) - 何か新しいことをやろうとすると、リスクと捉えられたりして、じゃあ失敗したら責任取れるのか、みたいな雰囲気になって、新しい試みが難しい(かもしれない)。でも、そうじゃなくて何か新たな取り組みをすることでいくらでも可能性が広がるんじゃないかと。 - 「パターン,Wiki,XP」(P.84-86)と合わせてふりかえり *利用者からの要求を「ユーザストーリー」と呼び、ユーザストーリーを1回のイテレーションで開発可能な大きさの「タスク」に分解する* これが前回の @kobatomo さんの「テストがドキュメントになる」に繋がるのかな。それと @kkd さんが紹介された「YAGNI」もすぐ下に記述がありました。 *どうせ必要にならないって!(You're NOT gonna need it!, YAGNI)* ### @kkd - 大事なものを守るために変わる(P19) https://www.slideshare.net/kkd/ss-87251832 - 『保守的だ』とは言ってない!w - 『時を超えたプログラミングの道』の対談記事、読んでね https://twop.agile.esm.co.jp/how-did-we-embrace-changes-as-developer-8794826bc515 - 安定は、変化をすることで安定する。 - 楽しいなぁ ### @kobatomo - おー。やるかやらないかですね。そうそう。 - 信念を持ってやろう。 ### @got - やれることを少しずつ変化させていこう! - 自分で考えてやれていることは、素敵です。王道です。(@kkd) ## 次回 2018/2/21 (水) 19:30 - 21:00 - 対象   9章 導出プラクティス - 単一のコードベース ### 役割分担 - 司会 - kkd - connpass - ueda - wiki - got - hackmd - kobatomo 読書会のベロシティを測ろう。 ## ベロシティ - 前回は、7ページ - 今回は、8ページ

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully