ブログ

  • XP本読書会2回目のふりかえりのふりかえり

    この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。

    4章のコミュニケーションについて。

    どんどん成果が上がらないが時間が過ぎていく。悪循環を思い出す。
    経験が浅いとコミュニケーションがうまく取れない。

    与えられた仕事は自分の責任でやらないといけないと思って、ディスプレイに向かってコーディングを進めようとするものの、スキル不足や課題の理解度の問題などで一向に進まない状況。
    最近であれば、バックログによる課題の管理やTDDで必要なものを小さく切り出して積み上げていくなど、仕事の進め方がずいぶん変わりましたが、昔はそのような方法を知らず、大きな課題を丸ごと完成させようともがいていたような気がします。そういうときは遠慮とかしている場合ではなくて、とにかく自分の手が進むようになるまで相談するべきと思いました。先輩はもとより後輩の新人がサクサク仕事を進めていたりすると、余計に自分で頑張らないと、と思ってしまいますが、上下関係なく、少しでも仕事の成果を出すにはどうすれば良いかを割り切って考えるべきだったのだろうと思います。

    コミュニケーションを取りすぎる人がいる。

    自分にも当てはまることではあるのですが、コミュニケーション重要、といってもそればかりで肝心の仕事が進まないのでは意味がなくて、程度の問題とは思います。ただ、昨年(2017)のアジャイルのサテライトで実践した Mob Programming をふりかえってみると、コミュニケーションの取りすぎも問題なくて、どちらかというと、チーム全員で議論しながらプロダクトが仕上がっていくような、そういうスタイルもあるので、コミュニケーションで問題になるのは1対1の場合かもしれません。1対1だとすべて問題、ということではなくて、1対1のコミュニケーションが長い時間続くと本筋から外れていることが多いですよね。

    と書いていると、このような記事のお知らせがメールで届きました。
    アジャイルなチームを改善するアイデア集「101 ideas for agile teams」で僕が学んだこと
    元の記事と合わせて読んでみようと思います。

  • XP本読書会1回目のふりかえりのふりかえり

    この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。

    昨年(2017年)秋頃からAgile459で開催されたオンライン読書会1回目のログ。
    https://github.com/agile459/reading-circle/wiki/XP2ndBook-1st-20171018

    この内容をふりかえって思うのは、これまでに関わった仕事にはソーシャルチェンジという文化があまりなくて、硬直していたものが多かったということ。

    もちろん仕事の種類とか現場によって様々ですが、例えば、あるプロジェクトでは仕事の進め方のルールがあって、そのルールに沿っているかどうかのチェックがあります。ルールに沿っていなければチームのリーダーから叱責されて修正を求められて、ルールを確認して修正して提出。でも、まだリーダーとしては納得のいくものになっていなくて修正を求められる。これを数回繰り返してなんとか完了。

    でもですね、このやりとりってプロダクト(ソースコード)じゃなくて、プロダクトをコミットする際の関連ドキュメントやメールの文面の話だったりします。なので、(今後ほぼ使うことがないであろう)関連ドキュメントがボトルネックになって、コミットがなかなか進まない。モチベーション的にもちょっとしんどい状況なわけです。

    しかも、そのようなドキュメントの不備が続くと、さらにルールが上乗せされて、足かせが二重、三重になっていきます。

    で、XPを学ぶことで「あー、そういうところでものすごいリソースを消費していたんだなぁ」と感慨に浸ったりできるわけです。

    管理する立場から言えば、すべてあたりまえに必要な作業、と言われるかもしれませんが、いや、だったらもっとプロダクト自体にリソースを割けば間違いなく好循環が生まれるわけで。

    そういった、何かしんどいなぁとか、モチベーションが上がらないなぁ、と感じるときに、その原因に気づかされて、さらっと解決につながるような、そういう学びのある読書会でした。

  • 最近の勉強ツールあれこれ

    この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。

    先月開催したGDCRですが、このイベントを開催することになって、あらためて練習をし始めたこと、新たに学び始めたことが3つほどあるので書いてみます。

    まず最初にタイピングの練習。
    インターネットでタイピング練習 – e-typing
    スコアはA+(ローマ字タイピング)でまだまだです。前に練習していたのがいつ頃だったか忘れましたが1年以上はブランクがあると思います。なぜタイピング練習かというと、GDCRが1台のPCを共有してペアプログラミングをするイベントなので、少しはスマートにキーボードが打てればと思いまして。

    練習の成果としては、以前練習していた頃のスコアにやっと並んだ程度で、要するに練習をしないとフォームが崩れて正しいタイピングができなくなっていたんだと思います。ただし、今回の練習で頑張っていることがあって、それは英語タイピング。最近まで気がつかなかった(気にしていなかった)のですが、e-typingに英語タイピングのメニューがあって、主にそちらで練習しています。英語タイピングはローマ字と違って大文字を入力するために左右のシフトキーを正しく使わないといけなくて、自分にとってはその分、ローマ字入力よりもハードルが上がる感じです。

    プログラミングだと大文字や小文字、記号など使いますので、単にローマ字でスピードをあげるだけでなく、英語タイピングの練習もおすすめです。

    次に語学の勉強。

    同じく先日のGDCRですが、イベントの直前にスペインから中継のオファーをいただいて、Hangoutで英語で打ち合わせをして、イベント終了時にHangoutで松山会場で実施した制約の説明と、時差の関係でこれから始まるスペイン(バレンシア)の参加者にエールを送ってバトンを渡す、というやりとりがありました。

    普段、海外のテレビドラマで英語を聞く程度で、会話で英語を使う機会はないので、なかなか思ったことが言葉に出ない状況でしたが、せっかくスペインとやりとりするので、あいさつぐらいはスペイン語でできれば、と思い、勉強方法を調べたところ、Duolingoを見つけました。

    まだ2週間ほどですが、スペイン語、とついでにイタリア語、英語を勉強しています。とても良いと思ったのは、スペイン語を勉強するのに問題が英語で出されるので、英語とスペイン語をまとめて学べるところ。ただ、スペイン語とイタリア語は単語の雰囲気が似ていたりするので、全くの初心者が両方を同時というのは無理がありそうです。

    ところで、Duolingoで学んでいるうちに思ったのですが、そもそも言葉って読み書きよりも、聞いて話して覚えるものですよね。もちろん学校の授業で国語を習いますが、国語を学ばないと日本語での日常会話ができないということはなくて、日常の会話の中で自然と身に付くものだと思います。スペイン語を学ぶのも、Duolingoだけじゃなくて教科書とか参考書を使って、読み書きもしながら学ぶのも良いのですが、Duolingoで聞いて話すだけでもそれなりに身に付くんじゃないかと思っています。

    あと、ちょっと気になったのが、英語の発音。講師の発音を聞いて、自分で同じように発音しているつもりですが、どうも子音が弱い。かなり意識して子音を強く発音しないと、母音ばかりで英語らしく聞こえない感じです。あー、そういえば、スペイン語で巻き舌が必要なのですが、全然できないのでそれはそれでぼちぼち練習します。(今さら…)

    まぁ、どれくらい続くかわかりませんが、今のところ面白いので楽しみつつ。

    3つ目の勉強ツールはプログラミングのKATA。

    KATAの必要性に気がついたのは、先ほどのスペインの中継がきっかけです。スペインのバレンシアにはソフトウェアエンジニアのコミュニティがあって、そこではKatayunosという朝食の時間にペアプログラミングでKATAの練習をするイベントが定期的に開催されているようです。

    で、自分の周りを考えてみると、プログラミングのスキルアップって個人で勉強するかしないか、あとは仕事の中で上司とか先輩がそれなりにスキルを持っていれば、ある程度伝授してもらえるかもしれませんが、仕事の中でじっくりとプログラミングのスキルを磨く時間は取れないのではないかと思います。というか、プログラミングのスキルが足りないまま日々の仕事をこなしているのが現実では?

    ということで、じゃあKATAを学ぶにはどうすれば、と思って探してみたところ、Codewarsというサイトが見つかりました。以前、CheckIOとかCodecademyで問題を解いたりレッスンを受けたりしていましたが、しばらく何もやっていなくて、いろいろプログラミング言語も選べるのでちょうど良いと思って練習をはじめました。今のところ、Python、Kotlin、Swiftで進めています。問題によるのか、Swiftのバージョンが3だったりするので、ちょっと混乱することもありますが、サンプルテストは自分でテストコードを付け加えることもできるので、TDDの練習にもなります。

    以上、最近オススメの勉強ツールについて簡単ですが紹介してみました。

  • Agile459で利用しているサービスについて

    この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。

    四国各地でのイベントの開催を通じて、運営側に回ってくれるスタッフが少しずつですが増えてきました。
    で、Agile459の活動の中で、情報の共有や発信のために利用するサービスも変わってきているので整理してみます。

    旧サイト

    Agile459 – Google Sites
    2011年から2012年頃のイベント報告など

    Doorkeeper

    DoorKeeper – Agile459
    イベント開催(2012年から2016年)

    Connpass

    connpass – Agile459
    イベント開催(2017年から)

    GitHub Pages

    Agile459 – GitHub Pages(Jekyll)
    Agile459について。参加方法。各種サイトへのリンク。
    2011年から2015年頃のイベント報告など

    HackMD

    HackMD
    読書会の事前メモやオンラインミーティングの議事録用。
    議事録はHackMDよりはDoocle Docsを使う場合が多いかも。
    読書会のログはあとで下記のWikiへ転記するなど。

    GitHub 読書会Wiki

    Agile459読書会用Wiki
    Extreme Programming Explained 2nd Edition オンライン読書会のログ

    Scrapbox

    Agile459 – Scrapbox
    主に、コミュニティ内向けの情報共有

    Trello

    trello.com
    課題の共有、管理
    ※アカウントが必要

    Twitter

    @agile459
    イベントのお知らせ

    Facebook

    Facebookグループ – Agile459
    イベントのお知らせや開催報告など

    Slack

    Slack – Agile459チーム
    日常のやり取り(雑談、運営について、読書会の相談、イベントの準備など)
    ※アカウントが必要

    Google Drive

    Google Drive
    適宜ファイル共有など

    Medium

    Medium
    今後の情報発信に利用していくか…(検討中)

  • 今年(2018)のAgile459のふりかえり

    この記事は Agile459 retrospective for 2018 Advent Calendar 2018 のエントリーです。

    Agile459は四国でアジャイル開発について学ぶコミュニティです。主な活動としては、毎年開催される Agile Japan のサテライトや、プログラミングのスキルアップを目的としたイベント開催、オンラインの読書会などです。
    これまでのイベントについてはAgile459 – connpassをご覧ください。

    さて、2018年のふりかえりですが、ほぼ半分は読書会でした。

    ページ数は180ページほどで比較的薄い(?)本ですが、一人で読んだだけではなかなか頭に入ってこないというか腹に落ちないというか。で、それを参加者数名で1章ずつ読んで意見を語りあうことで、いろんな気づきがあったり、そこから派生して自分の仕事と照らし合わせたりしつつ読み進めるこtができました。

    次はTDDBC。講師として@t_wadaさんに来ていただいて高松で開催。

    これまで自分の仕事の中でTDDを実施していますが、いわゆる自己流になっていて、テストの書き方とかテストコードを使ってのリファクタリングの進め方など、まだまだ学ぶことが多いなぁと気がつくイベントでした。
    あと、懇親会の際に@t_wadaさんのサインを求める人だかりができたり。

    そして高知サテライト。今年の夏は災害が続いたこともあって、高知にたどり着くのになかなか苦労するような状況でした。その中で、ついに高知で開催できたこと、さらに、講師として いえぴょんさん(@haru01) に来ていただいてフィードバックループについて学べたのは大きな収穫でした。

    で、先月開催したGDCR2018 in 松山。
    GDCR 2018 in Matsuyama – togetter
    会場の3rd floorさん、ランチやおやつのスポンサー各社にはあらためてお礼申し上げます。
    @ramusara さんがイベントの企画からファシリテーターまでやってくれました。忙しい中大変だったと思います。次回開催する際は、皆さんのご協力をお願いします。それと、イベントが終わった後、懇親会場からハングアウトでバレンシア(スペイン)の会場にバトンを渡しました。

    こんな感じの1年でした。今年の一番の学びは、組織の中(自分の仕事の中)だけでは気づかないことが多く、こういったコミュニティーに参加して実際に会って話すことが重要ということです。そして、小さなことでもできることから実施してみて、またコミュニティーで議論して、というフィードバックループの繰り返し。

    来年は読書会から始まるのかなぁ、という感じでまだ具体的には決まっていませんので、ご興味のある方はぜひ参加していただいて一緒に学んでいければと思います。

  • reCAPTCHA for testing

    “I’d like to run automated tests with reCAPTCHA. What should I do?”
    https://developers.google.com/recaptcha/docs/faq

    There is a set of keys for testing purpose.
    On the first time, the reCAPTCHA widget will show a warning message. And verify with check “I’m not a robot”, completed message will appear.

  • Y!mobileのスマホで通話の不具合

    機種名は Huawei nova lite です。
    原因の特定はできていませんが、いくつか気になる点があるので今後の対応のためにまとめておきます。

    症状としては、掛かってきた電話の通話中に突然切れる。通話時間1分47秒。
    その後、先方から着信があるものの通話ボタンを押すと切れる。
    しばらく時間を置いて(約6時間後)電話を受ける。この時は問題なく11分ほど通話。

    最初に通話が切れた時は、アプリの更新の通知が3個ほどあって、更新はまだ実行していない状態。
    この日以外にも頻繁ではないけれど、これまでに何度か通話が中断されて掛け直すことがありました。

    あと、以前に、特定の電話番号から着信できない問題があって、その時はYmobileさんに調べてもらって、先方の交換機だかの問題と特定できた経緯があって、同じような問題なのかとYmobileさんに問い合わせてみたところ、そのような調査はできないとの回答で、

    (A)SIMの抜き差し
    (B)Safeモードでの起動
    (C)場所を変えてみて着信できるかどうか

    など試すようにアドバイスをもらいました。
    結局、時間を置けば通話ができたので(A),(B),(C)は関係なさそう。

    他に要因はないかと調べてみると価格.comに気になる書き込みがありました。

    『着信できない。助けてください。』 のクチコミ掲示板

    端末の不具合(ハードウェアの問題)の可能性もあるかもですが、APNの設定について書かれていたので確認したところ端末のデフォルトの設定(Application: plus.acs.jp.v6)しかなかったので、Y!mobile APNの設定を追加してそちらに切り替えておきました。

    ワイモバイルスマホの初期設定方法 – APN未設定の場合(新APN作成)
    これでしばらく様子を見ます。
    この設定にすると、4Gの接続ができなくなりました。デフォルトの設定に戻します。
    ユーザー名とパスワードを間違えていました。
    ymobileのページの説明が

    ユーザー名: ym
    パスワード: ym

    となっていて y と m の間にスペースがあるように見えるのですが、ここだけ全角文字になっていました。正しくは半角で間のスペースは不要でした。

    ユーザー名: ym
    パスワード: ym

    上記の初期設定方法ですが、Ymobileが販売しているAndroid端末では追加のAPN設定は不要(デフォルトの設定でOK)とのことでした。

  • Retro of Agile459 since 2010

    I picked up Agile459’s some events since 2010.
    Agile459 is a community which we learn and discuss about agile development in Shikoku.
    459 means shikoku by japanese pronounciation of four: shi, five: go(ko), nine: ku.
    Shikoku is one of the island of Japan.
    Sorry linked contents are all written in Japanese.

    2010

    21 November 2010
    Agileprocess Association Shikoku division

    2011

    08 November 2011
    Agile case study

    2012

    16 March 2012
    Agile Japan 2012 Ehime/Setouchi satellite

    28 July 2012
    Agile Samurai book reading #6

    08 December 2012
    Global Day of Coderetreat in Matsuyama

    2013

    31 March 2013
    Shimarisu Scrum

    25 May 2013
    Agile Japan 2013 Ehime satellite

    2014

    14 February 2014
    Conflict was resolved – Theory Of Constraints

    30 August 2014
    Think about engineers’ happiness

    15 November 2014
    GDCR 2014 in Matsuyama

    2015

    16 April 2015
    Agile Japan 2015 satellite Ehime

    25 July 2015
    Skill up in Coding Dojo

    05 September 2015
    Feedbacks in Software Development

    2016

    09 March 2016
    What’s new in Scrum communities.

    25 June 2016
    Agile Japan 2016 Takamatsu satellite

    2017

    28 January 2017
    CI study in Matsuyama

    22 July 2017
    Agile Japan 2017 Ehime satellite

    18 October 2017 – 23 October 2018
    Extreme Programming Explained – online book reading

    2018

    21 July 2018
    TDD Boot Camp in KAGAWA

    08 September 2018
    Agile Japan 2018 satellite in KOCHI

    17 November 2018
    GDCR 2018 in Matsuyama

  • PyEhime 20181020 – MkDocs

    ターミナル(シェル環境)

    $ env | grep LANG
    何も設定されていない場合は、
    $ export LANG=ja_JP.UTF-8
    としておく。
    

    Python3環境

    venvをお勧めします。作業用フォルダを workspace とすると、

    $ cd workspace
    $ python3 -m venv venv
    $ source venv/bin/activate
    

    mkdocs インストール

    $ pip install mkdocs
    pip 自体のアップグレードが勧められたら、
    $ pip install --upgrade pip
    

    mkdocsのプロジェクト作成

    $ mkdocs new mktest
    

    ビルド

    $ cd mktest
    $ mkdocs serve
    

    ブラウザで http://127.0.0.1:8000 を開く。

    カスタマイズ

    いろいろ記事がありますので、適宜試してみてください。
    MkDocsによるドキュメント作成
    練習で数式を試してみました。
    https://kazweda.github.io/mkdocs-lesson/math/

    GitHub Pages

    GitHubでリポジトリを作成。mktest
    git clone の URL(PATH/TO/REPO)を取得

    $ git init
    $ git remote add origin (PATH/TO/REPO)
    $ git pull origin master
    $ mkdocs gh-deploy
    
  • WordPress作業メモ

    学術研究機関向けシンポジウム管理システム developed with WordPress

    2015年版の開発

    TDD(PHPUnit)で進めた。
    当初、2ヶ国語(日本語、英語)で開発・運用していたが、複数言語でのコンテンツの更新が負担になるため英語メインに変更。必要に応じて日本語を併記。

    2017年版で機能追加

    1アカウントで複数の論文投稿(および決済)に対応。この部分でプログラムが若干複雑になり、決済のチェックも事務方での確認など手間が増えてしまう。
    ただしTDD(2015版)によるテストコードがあったので、改修作業は比較的スムーズに進んだ。

    2019版を開発開始

    MVCに関する記事を参考に、リファクタリングを進める。
    やはりここでもTDDに救われる。仮にテストコードがないとすると、ここまでたどり着けていないと思う。しかもストレスなく、というよりもどちらかというとモチベーション高めでリファクタリングを進めることができるのはわりと幸せな感じ。
    ただし、PayPalのAPIが開発の時期によってバージョンアップされていて、その対応(情報収集、試作)に結構な時間が取られるのがなかなかしんどい。