タグ

ブックマーク / blog.kyanny.me (42)

  • 組織デザイン - @kyanny's blog

    たしかこの記事で存在を知って、そういえば組織について論じたり組織作りをしたりしてる割に「組織とは何か」について体系的な知識を持ってないし勉強したこともないなと気づいたので 2018/07/04 に買った。なんでこの記事を見つけたのかはよく覚えてないけど、スターかブクマがついてブログ見に行ったら書いてあったんだと思う。 j5a.hatenablog.com ものすごく良い内容。文章は平易だけど情報密度が高くてちょっとずつしか読み進められない。なのでまだ読み終えてない。 このを読むまで知らなくて、このから学んだとても重要だと思うことは、 組織は「分業」と「調整」を行うためにある 調整の方法には、問題が発生しないようにあらかじめ行う「標準化」と、問題が発生したあとに対処するための「ヒエラルキー」がある 長年、組織ってものができてくるとなぜ調整が増えるのだろう、面倒くさいのに、と不思議に思って

    組織デザイン - @kyanny's blog
    aereal
    aereal 2019/03/03
  • 「Management 3.0 〜良いフィードバックと給料を与える方法〜」に参加した - @kyanny's blog

    「マネジメントって当に必要かなぁ。。」と日々疑問を感じているので(する側としてもされる側としても)、何か得るものがあればいいなと思って参加した。 ワークショップもプレゼンテーションもなかなか良かった。三点にはまとめきれないので、箇条書き。 チェックイン(アイスブレイク)のために行ったムービングモチベーターズ・ゲームはシンプルで良かった Management 3.0 については、「自己組織化されてて裁量の大きいところで働くほうがいい、ってのはみんなわかってるよなぁ。でも現実にそうしていく難しさがあるんだよなぁ。『フレームワークではなく概念』らしいから、みんなが共通理解を確認しながら継続して改善していく取り組みが大切、ということなのかなぁ」と思った フィードフォースの鈴木さんによる事例紹介のなかで挙げられていた ADKAR (変革管理)の話が素晴らしく、目から鱗だった。要は丁寧に段階を踏まな

    「Management 3.0 〜良いフィードバックと給料を与える方法〜」に参加した - @kyanny's blog
    aereal
    aereal 2018/01/20
  • 採用基準についてトレードオフスライダーを使って議論した - @kyanny's blog

    開発者の中途採用をやっていくにあたり、「チームの誰もが採用担当」というポリシーでインタビューやコードテストのレビューなどをみんなでやってきたが、「どういう人を採用すべきか?」についての認識が合わなくなってきたと感じたので、認識を合わせるために議論の場を設けた。議論を進めるためのツールとしてトレードオフスライダーを使ってみた。うまくいくか確証はなかったが、事後にアンケートをとったら過半数からフィードバックをもらえ、全て好意的だった(五段階評価で4と5が半数ずつ)ので、まぁまぁうまくいったのだろうと受け止めて、もろもろ公開します。 使った資料はこちら。 以下、意図とか進め方とか学びとか。 最終的な目標は「採用基準についての認識が合うこと」なのだが、全員の認識・見解が一致することなどありえないと思っていて、むしろ各人の認識がどれくらいズレているのかを明らかにすることのほうが重要だと思っていた。そ

    採用基準についてトレードオフスライダーを使って議論した - @kyanny's blog
    aereal
    aereal 2017/11/13
  • エンジニア立ち居振舞い: 作業の進捗をチャットに逐一報告する - @kyanny's blog

    お題「エンジニア立ち居振舞い」 同じく GitHub の通知はだいたい目を通してる。流量が多くてブラウザで開いてられないので Gmail で読み流して気になるやつだけ見に行くようにしてる。 GitHub の通知を見る専用のアプリを使っていないのは、 GitHub 以外のサービスからの通知とか、ごくわずかだけど外部の関係者とのメールとかもあってメールを一切見ないわけにはいかないので、だったらいっそ Gmail 一にしたほうが楽だし見落としが無くて安心だと思ったからです(なので inbox zero を気合で実践してる) で、気をつけてることで、まだお題で書かれて無さそうだったのがこれです↓ 作業の進捗をチャットに逐一報告する production 環境のデータを修正するとかそういう運用系のタスクというのがけっこうあって、たいてい rake タスク + Jenkins job みたいなのを用

    エンジニア立ち居振舞い: 作業の進捗をチャットに逐一報告する - @kyanny's blog
    aereal
    aereal 2016/11/11
    逐次発言して共有するのよさそう。最近はデプロイの進捗も Slack に投げているのでみんなで「この発言でリリースされた時から〜」みたいな会話ができて便利。
  • 最近思ったこと - @kyanny's blog

    ここ数ヶ月、十数年のソフトウェア開発者人生で初めて、悪名高いExcel方眼紙に書かれた仕様書というものに触れる機会を得たのだが、悪評の理由が身を持ってわかった。 装飾過多。長過ぎるフローチャートや謎のテーブル風定義一覧の「見栄え」ばかりよくて肝心のデータの見方・読み方がわからない。 おそらく装飾にパワーを取られすぎているからだと思うが、仕様の説明に不足がある。フィールド文字列長が何バイトとか書いてあるが超過したとき何が起こるか明記されていない、など。 そのシステムが実現するビジネスにおける仕様について(仕様書なのに)触れられていない。ドキュメントの書き手が読み手に対して「機械のように指示に忠実に実装だけすればよい」と考えているのが見え透いている。 実装例・サンプルコードの類に乏しい。コードを見ればすぐ理解できる類のことを無理にコード無しで伝達しようとするので情報の劣化が激しく、資料として不

    最近思ったこと - @kyanny's blog
    aereal
    aereal 2016/01/31
  • 最近思ったこと - @kyanny's blog

    コードレビューするときに考えること 開発チームもコードベースもプロジェクト規模も大きくなってきたので、もはや実装上の設計の細かい点まで指摘することが難しくなった。個人的な趣味で、自分が直接関わっていないプロジェクトの issues も全部眺めているが、それでも内容を把握しきるのは無理。なので、コードそのものに対する指摘は少なくなり、その代わりに「第三者があとでこのコードを見たとき、意味がわかるだろうか」と考えて、わからなそうだなと思ったらたとえ自分には意図が理解できたとしても「意図がわからないのでコメント書いてくれ」とか指摘するようになった。コードレビューをしているのに、コードレビューをしていない人の気持ちになる、みたいな感じ。ちょっと幽体離脱っぽい。違うかもしれない。 仕事のやり方について考えること 一般に、能力が高い人ほど仕事が増えがちだし、責任感の強い人ほど仕事を抱えてしまいがちだ。

    最近思ったこと - @kyanny's blog
    aereal
    aereal 2015/10/02
  • A "nice to have" person - @kyanny's blog

    I had a conviction that I don't become a "Single point of failure" person. I didn't keep my knowledges secret and shared them as much as possible, I spared no effort to share them for people around me, I didn't cut corners to explain what I know, what I think and what I want to let someone know. As a results, what happened? I'm sure to say that I am not a SPOF person. I think I can leave the organ

    A "nice to have" person - @kyanny's blog
    aereal
    aereal 2015/01/20
  • Speaker としての #rubykaigi 2014 を終えて - @kyanny's blog

    RubyKaigi 2014 二日目 9/19 11:30 から Hall A にて <%= link_to "bundle", "update" %> - Make "bundle update" more fun to review という発表をさせていただきました。お聞きいただいた皆さん、ありがとうございました。 https://speakerdeck.com/kyanny/percent-equals-link-to-bundle-update-percent-make-bundle-update-more-fun-to-review Compare Linker というツールの紹介と、なぜそれを作ったのか、そして開発を通じて得た学び、などについて発表しました。 Compare Linker については You can review "bundle update" efficien

    Speaker としての #rubykaigi 2014 を終えて - @kyanny's blog
    aereal
    aereal 2014/09/22
  • WIP (Work in Progress) な Pull Request を目立たなくする Chrome 拡張をリリース - @kyanny's blog

    Pull Request ベースの開発手法(いわゆる "GitHub Flow" というやつ)では、未完成のブランチに "WIP" という件名をつけて作業中である旨を示しつつ途中経過もレビューしてもらう、というのをよくやります。 Quipper ではそれに加えて "DONT MERGE" とか "DO NOT MERGE" というのもよく使っています。 WIP と同じ意味で使うこともあれば、レビューの過程で発生した議論にまだ決着がついていないのでマージしないでね、という意思表明として使うこともあります。 僕は一日にだいたい十個弱の Pull Request をレビュー・マージしています(個人差はありますが Quipper のデベロッパーの多くは似たようなものです)レビュー・マージのタイミングははやいほうが良いので、一日に少なくとも二回か三回は Organization の Pull Req

    WIP (Work in Progress) な Pull Request を目立たなくする Chrome 拡張をリリース - @kyanny's blog
  • 例えば OSFA な API をやめる - @kyanny's blog

    OSFA == one-size-fits-all 単一の API で全てをカバーするのをやめたらどうか、ということ。 APIのバージョニングは限局分岐でやるのが良い - Hidden in Plain Sight @kenn 最近はRESTfulなエンドポイントは完全に後方互換なまま、クライアントごとにオーケストレーション層(radical versionin)を設けるという方向にシフトしようとしている。詳しくは http://t.co/zODm7mFr5B— Tatsuhiko Miyagawa (@miyagawa) February 28, 2014 この話のポイントとはちょっとずれてる && Podcast 聴いてないのですが。 Quipper プラットフォームで内部的に利用されている API も、 /v1 というパスの下にはえててごく一部のエンドポイントだけ /v2 がある、み

    例えば OSFA な API をやめる - @kyanny's blog
    aereal
    aereal 2014/03/06
  • You can review "bundle update" efficiently with Compare Linker - @kyanny's blog

    Usually Ruby projects use Bundler to manage dependent gems. You probably put a Gemfile.lock in version control system like Git. You will run bundle update to upgrade dependent gems. If you are a member of software development team and your team is using GitHub, I guess that you'd like to open pull request and review the result of bundle update. But a diff of Gemfile.lock isn't easy to review. Let'

    You can review "bundle update" efficiently with Compare Linker - @kyanny's blog
    aereal
    aereal 2014/02/15
    便利な気がする
  • Submitted our CFP to RubyConf 2013 [not accepted] - @kyanny's blog

    Today I and @sanemat co-submitted our CFP to RubyConf 2013 . The main topic of our CFP is about Tachikoma , an open-sourced bundle update automation tool. The concept of Tachikoma is originated by my talk of RubyKaigi 2013 . It wasn't for everyone though, @sanemat brush upped my rough idea and finally made a tool ready to use. Hopefully I want to stand up the stage on Miami, but regardless of our

    Submitted our CFP to RubyConf 2013 [not accepted] - @kyanny's blog
    aereal
    aereal 2013/09/01
  • Leave from paperboy&co., join to Quipper - @kyanny's blog

    来週ペパボを退職します!転職先は Quipper です!みんな大好きウザい退職エントリも当然あとで書きますがウィッシュリストとか無いので!ブクマとスターを!!くれ!!!承認欲求!!!!— Kensuke Nagae (@kyanny) May 24, 2013 May 27 is my last day at paperboy&co. I had a great time with gentle people in this 3 years and 3 months. Thank you for all my colleagues! paperboy&co. is a good company for the following reasons: Culture: There are so many nice people here. They gather and play natura

    aereal
    aereal 2013/05/25
  • rbenv のメカニズム - @kyanny's blog

    rbenv 環境下で実行された Ruby プログラムの中から他の Ruby プログラムを起動するときに、 rbenv 環境をリセットしたい―要するに別のバージョンの Ruby で外部プログラムを実行したい―という事情があったので rbenv のメカニズムについて調べた。 rbenv 環境下で ruby コマンドを実行するとき、実際にコンパイルされた ruby バイナリが直接実行されているわけではない。 rbenv 環境をお膳立てした上で ruby バイナリを exec するラッパーのシェルスクリプトが実行される。こういうものを binstub と呼ぶ。 binstub である ruby という名前のシェルスクリプトの中身をみてみると、最終的に rbenv exec というサブコマンドを呼び出している。 rbenv のサブコマンドはリポジトリでいうと libexec ディレクトリ以下にある。

    rbenv のメカニズム - @kyanny's blog
    aereal
    aereal 2013/05/10
  • Rails と時刻 - @kyanny's blog

    時刻の扱いは難しい。タイムゾーンを跨ぐと格別に難しい。 Rails を使っていても難しさに変わりはない。むしろ時刻のやっかいな部分を隠蔽してくれるが故に余計にややこしくなることもある。 config.time_zone と config.active_record.default_timezone Rails アプリケーションで時刻を司る代表的な設定値は config.time_zone と config.active_record.default_timezone だ。いずれも config/application.rb で設定できる。詳細は Ruby on Rails Guides: Configuring Rails Applications 参照。 config.time_zone でアプリケーションのタイムゾーンを設定する。デフォルトでは UTC になる。日向けのウェブサイトで

    Rails と時刻 - @kyanny's blog
  • Resque でジョブの実行に失敗したとき通知などをする機構の作り方 / How to write resque's failure backend - @kyanny's blog

    (English version is written after Japanese version) Resque には失敗したジョブを Redis に貯めておいてエラー内容を確認したりジョブをリトライさせられる機能がある。これは Failure Backend というメカニズムで成り立っている。ジョブが失敗したらメールで通知するシンプルな Failure Backend を作りながら、このメカニズムへの理解を深めてみよう。 独自の Failure Backend を利用する手順はこうだ。 Resuqe::Failure::Base を継承したクラスを作る save メソッドを定義してその中で何か面白いことをする (メールを送るとか) Resque がその Failure Backend を利用するように設定する 例としてジョブの失敗内容をメールする Failure Backend はこ

    Resque でジョブの実行に失敗したとき通知などをする機構の作り方 / How to write resque's failure backend - @kyanny's blog
    aereal
    aereal 2012/11/22
  • Jenkins に bundle update した上で Pull Request させる - @kyanny's blog

    皆さん bundle update してますか?ぼくは忙しさにかまけてついサボりがちなのですが先日何ヶ月ぶりかにやってみたらけっこういろんな gem がアップデートしててヒヤリとしました。 bundle update 忘れは今後もまたやってしまいそうだと思い、なにかこれを解決する方法がないか考えたところ、 マメにやるのは無理。余裕があればやるけど忙しくなったら忘れる。自分の意識が低くなっても破綻しない仕組みを作るべき 差分が小さくても Pull Request を出すのは悪くない。というか Pull Request は毎日全員が見るし放置されにくい bundle outdated の結果をメールするのもお手軽そうだけど、メールなんてどうせ見ない (pendaxes がいい例で、毎朝メールがきても痛くも痒くもない) ということで「Jenkins に毎週 bundle update したブラン

    Jenkins に bundle update した上で Pull Request させる - @kyanny's blog
    aereal
    aereal 2012/11/06
    いい
  • #isucon2 に参加しました - @kyanny's blog

    #isucon2 に参加しました。とても楽しかったです。ありがとうございました。最終スコアは五位という結果に終わりましたが、うまくいったこともダメだったこともひっくるめて自分の実力は出せたので過程には満足しています。 事前準備 昨年の isucon では雰囲気に飲まれてほとんど何もできないままタイムアップを迎え、不意な結果に終わりました。今年は去年の反省を踏まえて、チームメイトの @kentaro さんと @tnmt さんと事前にある程度の方針を決めて臨みました。 言語は基 Ruby を選ぶ。仕事で使っているし、アプリケーションサーバの運用や rbenv などの周辺ツールの扱いにも慣れているので。とにかく手に馴染んだものを選ぶ。「なんとなくはやそう」みたいな曖昧な理由で node を選んだりしない。 コードは GitHub にでも置いて、 Capistrano で一発デプロイできるよう

    #isucon2 に参加しました - @kyanny's blog
    aereal
    aereal 2012/11/04
  • LimeChat for Mac を改造して社内 SNS のアバターを表示させてみた - @kyanny's blog

    ペパボには社内 SNS のタンパクというサイトがあり、ペパボスタッフはみんなこのタンパクでコミュニケーションを取っています。毎日の日報や会議室の予約、遊びや勉強会などの社内イベントの告知も全部タンパク上で行われています。そのタンパクと双璧をなす社内のコミュニケーションツールに IRC がありますが、スタッフが増えるにつれて「IRC のニックネームと名(と顔)が一致しない」という悩みがでてきました。 スタッフみんなで知恵を出しあって解決方法を考えているのですが、「IRC にタンパクのプロフィール画像が表示されたら誰が誰かもっとわかりやすくなるのになぁ」と思ったので LimeChat for Mac を改造してみました。 kyanny/limechat at showTanpakuAvatar https://github.com/kyanny/limechat/tree/showTanpa

    LimeChat for Mac を改造して社内 SNS のアバターを表示させてみた - @kyanny's blog
    aereal
    aereal 2012/10/14
    よさそう
  • master ブランチにマージ済みのリモートブランチをまとめて削除する git-prune-remote-branch というスクリプトを作った - @kyanny's blog

    必要になったのでそういうものを作りました。 https://github.com/kyanny/git-prune-remote-branch パスの通ったところに置いて Git のワーキングディレクトリで実行すると master と develop にすでにマージ済みのリモートブランチを全部削除します。 --noop で dry-run モードになるので実際に消す前に確認もできます。なんで master だけじゃなく develop も?というと、僕のチームで gitflow を使っているからです。 $ git clone git://github.com/kyanny/git-prune-remote-branch.git $ git-prune-remote-branch --noop $ git-prune-remote-branchgit push --mirror じゃダメなの

    master ブランチにマージ済みのリモートブランチをまとめて削除する git-prune-remote-branch というスクリプトを作った - @kyanny's blog
    aereal
    aereal 2012/09/27