はんなりと、ゆるやかに

アジャイル、スクラムが好きなITエンジニアが日々から学んだことをアウトプット

Unity:UxmlNamespacePrefix could not be found の エラーを解決した

Unityのビジュアルスクリプティングツール『Bolt』が無償になったので使ってみよう!とアセットをインストールするとエラーが発生し躓いたのでその解決方法をまとめます。なお、今回はエラーの解決方法のみを紹介します。『Bolt』のまとめは別記事になります。

Boltの公式記事
blogs.unity3d.com

環境

Unity 2019.3.7
Bolt 1.4.12

発生したエラー

UnityをUnityHubから起動して、アセットをインストールすると以下のようなエラーが発生しました。

Library\PackageCache\com.unity.package-manager-ui@2.0.13\Editor\AssemblyInfo.cs(7,12): error CS0246: The type or namespace name 'UxmlNamespacePrefixAttribute' could not be found (are you missing a using directive or an assembly reference?)


Library\PackageCache\com.unity.package-manager-ui@2.0.13\Editor\AssemblyInfo.cs(7,12): error CS0246: The type or namespace name 'UxmlNamespacePrefix' could not be found (are you missing a using directive or an assembly reference?)

・・・

どうやら、UxmlNamespacePrefixが見つからないようです。

原因

package-manager-ui がなんらかの原因で壊れていてエラーになっています。
answers.unity.com

解決方法

package-manager-ui を削除することでエラーは解消します。

削除方法

Unity Editorのメニューバー→ウィンドウ→Package Managere→package-manager-ui を選択してRemove
f:id:iucstscui:20200731225241p:plain

まとめ

  • Unity でアセットを試そうとすると関係のないエラーで止まった
  • package-manager-ui に問題があり、削除することで原因は解消される

モダン・ソフトウェアエンジニアリングのエッセンスに参加して、Essenceはふりかえりに使えそうだと思った

セミナー: モダン・ソフトウェアエンジニアリングのエッセンスに参加しました。
smartse.connpass.com

本イベントで紹介されたEssenceEssence means Practice Freedomと紹介されるように、それぞれの方法論で使われているプラクティスを自由かつ適切に扱うためのフレームワークです。


ぼくはUML(統一モデリング言語)のプラクティス版、統一プラクティス言語だと理解しました。角さんのスライドでは何度もUMLと同じくらいの希望と絶望を持つといいと思うと紹介されていました。


本イベントは書籍「モダン・ソフトウェアエンジニアリング」がBaseになっており、著者のIvar Jacobsonさんや翻訳者の角征典さん、監修の鷲崎弘宜さんなど著名な方が集まる贅沢なイベントでした。

今回のオンラインイベントは以下のツールが使われていました。
発表:Zoom
質問受付:Slido

発表資料など

ビデオ講演: Modern Software Engineering with Essence

モダン・ソフトウェアエンジニアリングのエッセンス


ソフトウェアエンジニアリングとEssenceの広がり

ビデオ講演を解説された平鍋さんのブログ

anagileway.com

角さんのQAの回答集

20200721_essence_QandA.md · GitHub

感想

Essenceの説明から受けた印象

スクラムやオブジェクト思考やXPなど色々な方法論で使われるプラクティスを組み合わせて自分のプロジェクトに取り入れるためのフレームワークだと理解しました。個人的にはEssenceのフレームワークに合わせて自分のプロジェクト状態を可視化し、取り入れるべきプラクティスを見つけるときに便利だと感じました。

始めのうちはパタンランゲージに近い印象を受けたのですが、パタンランゲージよりも厳格なルールがあるなぁという印象です。パタンランゲージはイキイキしている分カオスな感じですが、Essenceは統制が取れている分、おとなしい感じです。

ふりかえりに使えそう

角さんの紹介にあったアクティブティスペースは自分のプロジェクトの足りていない部分を見つけ出すのに良いフォーマットだと思いました。自分たちのプロセスに当てはめてみると気付けていない抜け漏れを見つけられます。

また、逆に自分たちが取り組んでいて言語化されていないプラクティスを形式知にするきっかけになると思いました。ペアプロなど、すでに言語化されているプラクティスをアクティビティスペースに当てはめていくと、特定のプラクティスを採用してないけど自分たちで決めたやり方でうまくやれていると分かりそうです。それを言語化すると他のチームに伝達できます。

ラクティスを発見して広めていく姿はEssenceが目指す世界だと感じました。

Essence自体もひとつのプラクティスとして活用するとよさそう

Essence means Practice Freedomの言葉があったように、ソフトウェアの分野で使われているプラクティスを自由に組み合わせて応用できる世界を目指して登場したのがEssenceです。みんなが自由にプラクティスを使えるように統一しようとしています。

そうであるなら、Essenceのプラクティスも同じように自分たちのプロジェクトに応用し活用するとよさそうだと思いました。

まとめ

  • モダン・ソフトウェアエンジニアリングのエッセンスに参加しました
  • Essenceは自分たちの状態を可視化するのに力を発揮するフレームワーク
  • 可視化できると足りていない部分が見える
  • 可視化できると自分たちの工夫で対応している部分が見えてプラクティス化ができる
  • ラクティス化が伝達可能な形式で増えていくと、Essenceが目指す世界に近づけそう

書籍はまだ読めていないので読んでみようと興味が出たイベントでした。

補足資料

本ブログをまとめるにあたり、Essenceを調べたので参考の記事をまとめておきます。

SEMATの活動の結果がEssenceです。そのSEMATの Call for Actionを平鍋さんが翻訳されています。

https://blogs.itmedia.co.jp/hiranabe/files/SEMAT-vision-ja.pdf

別の勉強会で発表された鷲崎さんのスライド。分かりやすいです。

SEMAT JAPANのサイトです。

www.semat.jp

Martin Fowler氏のブログですが、SEMATには否定的な立ち位置です。

bliki-ja.github.io

EssenceとScrum

www.youtube.com

効果的な問いでファシリテート上手になる / 問いのデザインを読んだ

問いのデザインを読みました。

問いのデザイン: 創造的対話のファシリテーション

問いのデザイン: 創造的対話のファシリテーション

会議のファシリテート、1on1、ワークショップ。あらゆる場面で活躍する「問い」はプロジェクトの成否や人生を変える可能性を持っています。固定観念が解き放たれるような、新たな気づきが得られるような。そんな「問い」のデザインが得意になれば開発者としてもマネージャーとしても強みになります。

本書は「問い」をデザインする技術が学べます。

目次

序論 なぜ今、問いのデザインなのか
PartⅠ 問いのデザインの全体像
 1章 問いのデザインとは何か
  1.1. 問いとは何か
  1.2. 創造的対話とは何か
  1.3. 基本サイクルとデザイン手順
PartⅡ 課題のデザイン:問題の本質を捉え、解くべき課題を定める
 2章 問題を捉え直す考え方
  2.1. 問題と課題の違い
  2.2. 課題設定の罠
  2.3. 問題を捉える思考法
 3章 課題を定義する手順
  3.1. 目標を整理する
  3.2. 目標のリフレーミング
  3.3. 課題を定義する
PartⅢ プロセスのデザイン:問いを投げかけ、創造的対話を促進する
 4章 ワークショップのデザイン
  4.1. ワークショップデザインとは何か
  4.2. ワークショップの問いをデザインする
  4.3. 問いの評価方法
 5章 ファシリテーションの技法
  5.1. ファシリテーションの定義と実態
  5.2. ファシリテーターのコアスキル
  5.3. ファシリテーターの芸風
  5.4. 対話を深めるファシリテーションの技術
  5.5. ファシリテーションの効果を高める工夫
PartⅣ 問いのデザインの事例
 6章 企業、地域、学校の課題を解決する

問いによって変わる視点

本書で「問いのテイスティング」として思考が変わる2つの問いが紹介されています。

A.あなたがこの本を手に取った理由は?
B.あなたがこの本を読み終えるころに得ていたいものは?

AとBを比べると、Aは困っている理由が返ってきて、Bは困っている理由を解決する手段が返ってくると思いました。同じようなことを聞いても、聞かれた側の思考が変わります。これが問いの力で問いの可能性です。

このAとBのどちらが効果的な問いかについては解決したい問題によって変わります。

問いも学習しながら変えていく

問いの基本サイクルが紹介されています。問い→対話→発見→問い→対話→発見→・・・と問いによって生まれた対話から新しい問いを見つけて持続的に学びます

問題の本質が明らかになっていない場合は問題の本質を明らかにする問い使って対話して見つけていきます。問題の本質が見つかれば新たな問いによって解決案を見つけます。1度の問いですべて解決するのではなく、問いを繰り返して具体的な行動に落とし込めるまで進めます。

ブレストなどで新しいアイデアを出そうしますが、どうも新しさに欠けるアイデアがだったり、そもそも意見が出ない経験があります。その原因は全員が本質を掴めてないままファシリテートしていたなぁと思い返しながら読んでいました。解決したい問題の本質を全員で理解してから新しいアイデアのブレストするべきだったと反省しました。


対話については過去に読んだ「他者と働く──「わかりあえなさ」から始める組織論」が参考になりますし、参考図書としても紹介されていました。
iucstscui.hatenablog.com

問題をあらゆる角度からせめてみる

「問い」の力を知ったので効果的な問いを設定したくなります。しかし「じゃあ、設定しよう!」と考えてみても簡単に作れるものではありません。本書では5個の思考で問題を捉えて問いを考えてみることが提案されています。

  • 素朴思考
  • 天邪鬼思考
  • 道具思考
  • 構造化思考
  • 哲学的思考

この5つの思考法に限らず人によって得意な思考法があると思います。そしてそれが固定観念を生み出してしまいます。ひとつの問題を多角的な思考で考え、問いを設定すると今まで気づかなかった考えや新しいアイデアが生まれるので、考えの引き出しを増やしておけば煮詰まったときに次の問いが出せますね。

問いを活用したプロセス

問いを活用したプロセスとしてワークショップの構造が紹介されています。ワークショップは「導入」「知る活動」「創る活動」「まとめ」の構造で考えます。「導入」「知る活動」はワークショップのテーマに関する知識や視点を学び、「創る活動」「まとめ」は新たな意味やアイデアを創ります。それぞれの部分で効果的な問いを使い、メンバーの固定観念を外したり、新たな気づきを与えます。

大事だと思った点は「知る活動」です。いきなり新しいアイデアを考えるのではなく「創る活動」に必要な知識や経験をメンバーで対話する時間をつくって「創る活動」をより効果的にします。

ワークショップのデザインを知る前は概要を説明して出来るだけブレストの時間を取ろうと考えていました。今後は「知る活動」の時間を設けるようにします。

まとめ

  • 「問い」は会議のファシリテート、1on1、ワークショップ多くの場面で活躍する技術
  • 多面的な角度で問題を捉えることで良い「問い」を設定できる
  • ワークショップは「創る活動」も大切だが、「知る活動」も同じ以上に大切

人間関係は「箱」から出れば良くなる / 2日で人生が変わる「箱」の法則 を読んだ

2日で人生が変わる「箱」の法則を読みました。

この本は人間関係に問題を抱えている主人公が2日間の更生プログラムで自分自身の問題に気づき、学び、変わっていくストーリーです。ストーリを通じて書名にある「」とは何か、なぜ入るのか、どうやって出るのかを学ぶことができます。そして、この「箱」の外に居続けることが人間関係を良くすることに繋がります。

人間関係の問題は誰でもない、あなた

職場でも家庭でも大なり小なり人間関係に悩みます。ギスギスした悩みだけでなく、成長させたいけど接し方が分からない、信頼関係が気づけないなどなど。

そのすべての問題は「あなた自身」なのです!と言われると驚きですよね。「そんなこと言ってもあいつが・・・」と自分は正しく、相手は間違っていると思ってしまいがちです。それはすでにあなたが「箱」に入っているからです。

「箱」に入ってしまうと相手を人ではなく道具として見てしまいます。なので、相手の状況などお構いなしに「こうすべき」とか「自分は正しい、相手が間違っている」と考えてしまいます。こうなれば悪循環です。相手もそんな自分に良い感情を抱かないので攻撃的になり、ヒートアップしていきます。

「箱」の種類

本書では4種類の「箱」が紹介されています。「優越」「当然」「体裁」「劣等感」それぞれの箱でどう感じているのかどう振る舞うのか自分をどう見るのか世の中をどう見るのか特徴が違います。具体的な内容は本書を読んでみてください。

自分の過去を振り返ってもあの時は箱に入ってたなと思うことがあります。今思うとイライラしていたのが不思議に感じますが、その時は「箱」に入っていたので気づけません。

「箱」から出よう

じゃあ、具体的にどうすれば良いんだよっと言うことも本書に書かれています。本書では4ステップに分けて箱から出ていくのですが、僕が「やっぱり大事だよなー」と感じたことは相手を理解しようとすることです。(本書では「3.状況をあらためて考える」にあたります。)こちらも詳しくは本書を読んでみてください。

上司と部下、親と子など、立場が違うと思いこみで理解してしまって、自分の正しさを押し付けて人間関係に亀裂が生じます。意見が違ったときに必要なのは勝ち負けではありません。全員で納得できる答えを全員で見つけることが大切です。

成長を望むのは悪いこと?

この本を読むと「相手は変えられない。変えられるのは自分だけ」ということがわかります。それは僕も同意です。じゃあ、「相手に成長して欲しい」と思って行動することは悪いことなのか?と疑問が出てきます。ストレッチゴールを決めて変わらないと達成できない状況を作るのは悪なのか。

その答えは本書の「CHAPTER.22 平和の戦略」に書かれていました。とうぜん悪いことではありませんでしたが、お互いに箱の外に出ることが大切だと学びました。相手だけでなく、自分もです。

いきなりストレッチゴールを決めて、頑張ろう!じゃなく、何になりたいのか、何に困っているのか、何が好きなのか、何が楽しいと思うのか、対話を通してお互いに目指したい方向を見つけてからストレッチゴールを決めましょう

1on1をしているのならその場を活用すると良さそうです。

まとめ

  • 2日で人生が変わる「箱」の法則を読んだ
  • 「箱」に入ると相手を道具として見てしまう
  • 人間関係は「箱」から出ること、相手を理解することで良くなる
  • 「箱」に入っているのは自分なので、まず自分から出る

関連記事

人間関係に関する本はこちらもおすすめ!
iucstscui.hatenablog.com

見聞きしたことを自分らしく実験しようと思えた / スクラムフェス大阪2020に参加 Day2

f:id:iucstscui:20200630090039p:plain

2020/6/26(金) - 27(土)の2日間で開催されたスクラムフェス大阪2020の2日目のまとめです。1日目の基調講演はこちら。
iucstscui.hatenablog.com

2日目は19トラックが並行で進みますので、ほとんどのセッションが見れません。ただ、参加者はイベント終了後に録画された動画が閲覧可能なので安心して選ぶことが出来ました。

参加したセッション一つ一つをまとめていきます。

参加したセッション

  • 旅館運営企業にエンジニアがもたらした価値とこれからの戦いについて
  • 異文化の壁を乗り越えるスクラム
  • 教えて!あなたの一歩を後押しした本 / 本箱をシェアして会社の仲間と読んだ体験から得たこと「旅するAgile本箱LT」【LTしました】
  • アジャイルスクラム時代のパタン・ランゲージとアレグザンダー理論

旅館運営企業にエンジニアがもたらした価値とこれからの戦いについて

  • エンジニア組織を内製化し、価値を出していった話
    • はじめは内製化に消極的だった
    • 内製化で改善が進み認められ、内製化も拡大
  • 合意形成のフローを整理
    • 決定する場を用意
    • 見積りをポイント制に変更
  • 案件増加に伴い、やり方を変えないと回らなくなった
  • エンジニアを内製化することで意思決定の速さをもたらした
  • 非エンジニアの方と接し、自分の視野の狭さに気づく
  • COVID-19 で状況が大きく変わった
    • 3密状況を可視化するツールを1ヵ月半で開発、導入

ソフトウェア開発の部署だけでなく、ステークホルダーを巻き込んでプロセスを変えていかれたお話を聞いて「これが優れたスクラムマスターだ」と感じました。COVID-19で大変な状況もエンジニアを内製していたおかげで早期に改善策を実験できていますし、良い成功事例です。

お話の中で価値観の違う人同士と関わると自分の視野が広がると仰っていました。昨日の基調講演でも価値観の違う人と関わるとストレスはたまるけど成長できるとお話しされていて繋がっていますね。違いを受け入れる価値観が共通認識としてあれば強いですね。

貢献できていると感じるとモチベーションが高くなるというお話もあり、ここは意識していきたいと思いました。納得できている、貢献できているというのはより良い開発をするために必要だと感じています。


[ディスカッション] 異文化の壁を乗り越えるスクラム


  • お互いを知らないと、なんでこういう反応するんだろうってことが分からない
    • 文化、性格など
  • 背景を知っていると、ストレスが減る
  • 外国人と日本人の違いではいろんな国で文化が違う
    • 英語圏の人が全員ハッキリと自分の意見を言うわけではない
  • ただ雑談するだけでじゃなく、意味を付ける
  • いろんな方と触れると考え方が変わる
    • こうあるべきがなくなる

始めにスライドに沿った説明があり、それに沿ったディスカッションでした。
海外の方と一緒に働いた経験が少ないですが、エンジニアとデザイナー、エンジニアと企画職でも文化は異なります。以前読んだ「他者と働く - 「わかりあえなさ」から始める組織論」と通づる話で、相手を良く知ることで意見が違う背景が分かります。背景が分かればあとは折衷案にするのか、どちらかに比重を寄せた案にするのか話し合えます。


教えて!あなたの一歩を後押しした本 / 本箱をシェアして会社の仲間と読んだ体験から得たこと「旅するAgile本箱LT」

6冊の本が紹介されました。私もカイゼン・ジャーニーを紹介させていただきました。

SCRUM BOOT CAMP THE BOOK 増補改訂版

3名のコラムニストによる紹介です。増補改訂版の前のSCRUM BOOT CAMP THE BOOKを持っていて何度も読んだ書籍です。とても分かりやすく初めてスクラムを学びたい人にもおすすめしたい一冊です。今回紹介のあったリリースレゴは知らなかったのですが、こういうユニークな見える化にチャレンジしてみたいなーって思います。

一万年の旅路 ネイティヴ・アメリカンの口承史

medium.com

1万年前のネイティブ・アメリカンが大陸を渡ってアメリカに永住するまでの旅路の話をまとめた本の紹介です。この本とアジャイルティール組織を紐づけて考えられること自体がすごいと思います。耳をふさぎたくなるような悲しい選択をして変化に対応しながら前に進んだ話は興味がわきます。

カイゼン・ジャーニー

LTをさせていただきました。緊張はしましたが、Discordのコメントを見ながら発表できたので余裕はあったかなって思います。内容はカイゼン・ジャーニーを読み、感銘を受けて行動を起こしたお話をさせていただきました。聞いていただいたみなさんの刺激になったり、感情が動いたりして少しで良い影響を与えられていれば嬉しいです。

それで、あなたは何をしている人なんですか?」はインパクトのある問いですよね。このような素敵なイベントに登壇させていただけたのもこの本がきっかけで行動したからです。少しの勇気で一歩踏み出すと驚くほど景色が変わると感じました。この本に感謝です。

旅するAgile本箱をシェアして会社の仲間と読んだ体験から得たこと

実際に旅するAgile本箱を利用された経験をお話されました。社内ビブリオバトル楽しそうで良いなー。期間限定のイベント感もいいですね。僕も輪読会で1冊の本をみんなで読むことはしたことがありますが、こうやって同じジャンルのいろんな本をみんなで読む体験は特別感がありますね。

チームが「サイロ化」しないための仕掛け(増補版)

(いい意味で)裏切られていくストーリーで引き込まれました。「毎朝10分、隣のチームと会話する」と紹介されて、いいねいいねと思っていたら、次のスライドで「そうじゃない」「やりやすそうな仕掛けは何か間違っている」と言われて「やられた!」っと感じました。「仕掛け」よりも大切なのはなぜ仕掛けが必要になったかだとお話されていて意識していきたいと思いました。

未来を変えるためにほんとうに必要なこと――最善の道を見出す技術

世界最高のファシリテータと呼ばれているアダムカヘンさんの本を紹介されました。南アフリカの民族和解など究極の緊張状態をファシリテートされているそうです。以前参加したアジャイルリーダーシップサミット 2019は基調講演が瀬谷ルミ子さんで紛争解決のお話をされていました。究極の状態に関われている人の話は尊敬もしますし、考えさせられます。ということで、とても気になる書籍です。


アジャイルスクラム時代のパタン・ランゲージとアレグザンダー理論

  • パタンはアジャイルに影響を与えている
  • ソフトウェアのパタンはパタンを書くところで終わっている
  • 生命構造=いきいきしている
    • 生命は全体性から生まれる
  • 全体性=対象を分割できない一つとしてとらえる
    • 花の部分部分は花ではなく、全体が花
  • 全体の中の中心になる部分
    • センターを中心に分けた部分にもセンターがある
  • 構造保存変換=全体性を保持したまま変化する
    • 進化適応型が本質ではない
    • 本質は展開プロセスであり、間違いがない
  • 弱い部分を見極め、センターを見つけて、そこを強める
  • 判断基準は感情「いきいきしているかどうか」「自分らしいのはどちらか」
  • NOO はピンとこない人が多い
  • 変化とは大事な部分を見つけて強めること
  • センタリングプロセス
    • 保全したいものを見つける
    • 超越解を考える(葛藤を一気に解決するもの)
    • パタンを組み合わせて物語を作る
    • パタンランゲージは目指す世界のビジョン
    • 複数の物語で使われるパタンがセンター
    • ビジョンと現実を往復

パタンランゲージに興味を持っているけど、理解できてなくて聞きにいきました。聞いてもなお分かるようで分からん状態ですが、今までより現実の世界に落とし込めそうな気がしています。

いきいきしている」は考えは分かるけど、じゃあどうしたらソフトウェア開発に応用できるのかが分からなくて「理解したい!」という感情だけが先行している感じです。「パタンランゲージは目指す世界のビジョン」「保全したいものを見つける」「複数の物語で使われるパタンがセンター」「ビジョンと現実を往復」「弱い部分を見極め、センターを見つけて、そこを強める」「花の部分部分は花ではなく、全体が花」このあたりのキーワードから実験してみて理解を深めていくのが良いかなって思ってます。

まとめ

スクラムフェス大阪2020 二日目に参加したセッションをまとめました。録画されている動画もあるので今後も他のセッションを見ていきたいと思いますが、スクラムフェス大阪2020のまとめとしては一度締めたいと思います。

聞いたセッションの内容はそのまま使うのではなく、自分なりに解釈して自分らしさと今の現場合う形に変化させてから実験したいと思います。その結果どんな変化が起こるのか見極めて新しい実験をして改善を繰り返していければと思います。来年は1つの枠でも話せるように1年間がんばりたいと思います。

安全にチャレンジするためスクラム / スクラムフェス大阪2020に参加 Day1

f:id:iucstscui:20200630090039p:plain
2020/6/26(金) - 27(土)の2日間で開催されたスクラムフェス大阪2020に参加しました。今年はコロナの影響でオンライン開催でしたが、運営のみなさん、参加者のみなさんのおかげで最高のイベントでした!オフラインもいいし、オンラインもいい!

Day1の基調講演はイベントの幕開けに相応しく、なんのためのスクラムだっけ?を改めて考える内容でした。「うっと思う環境にあえて飛び込む」というメッセージはDay2でも共通のキーワードとなりました。(プレッシャーや未知の領域にチャレンジするときの躊躇を「うっ」と表現されていました)

www.scrumosaka.org

全国から19のコミュニティが集まり、約100のセッション、500人以上が集まったオンラインイベントはみんなが初めてでどうなるのか不安と期待が混じる中、基調講演がはじまりました。よくあるスライドを表示して語る方法ではなく、Zoomの背景をスライドとして進めていくプレゼン手法はオンラインならではの表現で何か今までと違うことが起こるぞと予感させてくれるものでした。

今あえてのスクラム

miholovesq.hatenablog.com

概要

  • 基調講演がオンラインになって「うっ」と思った
  • 「うっ」と思ってチャレンジしたことは価値がある
  • 先が見えない不安が「うっ」と思わせる
  • でも先が見えない状況でうまくする力はアジャイルで学んでいるのでは?
  • スクラムとはなんですか?
  • 安全にチャレンジするためにフレームワーク
    • それがアジャイルの価値
    • 予想されたことを予想通りにすることに価値を感じてませんか?
  • スクラムのプロセス通りに進めることだけでなく、理屈の通らない行動をとってみて刺激をあたえてみよう
    • 簡単にはできないので、色々な価値観の人たちでバディを組んだり、チームを組んでぶつかろう
    • 「普通はこうでしょう!」ってムカつく人と組むことは自分の可能性を広げる
  • 新しいことは事前に評価せず、やってみて、ふりかえって、評価しよう
  • このカンファレンスはそういう場です

感想

話を聞きながら新しいことにチャレンジして失敗してないなーって思いました。チャレンジしないと選択したわけでなく、自然に安全な方、安全な方を選んでいました。特に個人よりチームです。チームの目標やふりかえりのTryとなると成功を意識しすぎてストレッチゴールを設定できていませんでした。実験をしましょう。成功を祝い、失敗からの学習を祝えるそんな感じで成長していきたいと思います。

まとめ

スクラムフェス大阪2020の Day1 の熱気をまとめました。このカンファレンスで学んだことを自分の現場で実験してみようと思える基調講演でした。

Day2はこちらです。
iucstscui.hatenablog.com

操作履歴を調べるGitコマンド:reflog を使うと間違った操作前に戻れます

push前のブランチを消してしまったり、間違ってresetしてコミット消えたり、したことありませんか。

そんな時に使えるコマンドがgit reflogです。git reflogはローカルブランチに対する操作履歴が見れます。その確認した操作履歴から間違う前の操作まで戻れます。使用頻度は少ないでしょうが、いざというとき役立つコマンドです。

git-scm.com

今回の検証に使ったgit version は 2.27.0 です。

git reflog のオプション確認

git reflog [show]

reflogに記録されている操作履歴を確認するコマンドです。実行すると以下のように確認できます。

XXXXXX (HEAD -> testBranch) HEAD@{0}: checkout: moving from testBranch to testBranch
XXXXXX (HEAD -> testBranch) HEAD@{1}: commit: testBranch commit
XXXXXX (master) HEAD@{2}: checkout: moving from master to testBranch
XXXXXX (master) HEAD@{3}: commit: test commit

git reflog showのままでは日付が出なくて分かりづらいと感じます。git logと同じオプションが使えるので、git reflog show --date=localで日付も合わせて表示すると分かりやすいです。

XXXXXX (HEAD -> testBranch) HEAD@{Tue Jun 23 20:28:29 2020}: checkout: moving from testBranch to testBranch
XXXXXX (HEAD -> testBranch) HEAD@{Tue Jun 23 20:28:25 2020}: commit: testBranch commit
XXXXXX (master) HEAD@{Tue Jun 23 20:28:03 2020}: checkout: moving from master to testBranch
XXXXXX (master) HEAD@{Tue Jun 23 20:27:08 2020}: commit: test commit

git reflog expiregit reflog delete

古い履歴などを消すコマンドですが、通常使うことはないでしょう。git のリファレンスにも「これはエンドユーザーが直接使用することはありません。」と書かれています。

This is typically not used directly by end users

過去の操作に戻る

git reflog はあくまで操作履歴を確認するコマンドです。操作履歴から特定のポイントに戻りたい場合はgit reset、ブランチを作りたい場合はgit branchコマンド実行します。

git reset <ハッシュ値>

間違ってresetして変更点が消えた場合に便利です。操作ログから消したとき以前のハッシュ値を指定して戻しましょう。

git branch <ブランチ名> <ハッシュ値>

間違ってブランチを消した場合はgit branchで消す前のハッシュ値からブランチを作り直すと良いです。

まとめ

いざというときに使えるgit reflogを調べました。使う頻度は少ないですが、いざ失敗したときに慌てずgit reflogを実行して、戻したい位置を特定できると安心ですね。