代わりにコードレビューをやってくれますか?

私はコードレビューについて、少し反対派です。

というのも、コードレビューができる人って限られていて、大抵の場合負荷がその人に集中してしまうからです。ボトルネックとなって責められるか?バグの責任を一身に背負わされるか?そんなの誰だってやりたくない。本当に重要なところならともかく、何でもかんでもレビューしていたら、身がもちません。むしろコードレビューなんてしなくていいルール・仕組みにしておいても、どうせ本当にヤバいところはダブルチェックでレビューしあうでしょ?そういうところのために余力を残しておきたい。あるいは、そういう相談ができる相手がいない人は、結局レビューはしてもらえないのだから、本気で全力でやるしかない。だから、コードレビューを(ソース管理の制約やリリース判断として)ルールに組み込むのは反対。程度問題なんですが、いいバランスでやれるイメージがなかなかもてない・・・

Read More

リクエストをいただいたのでNuGetパッケージを更新・公開しました

今日、WPF Localization についてこちらのブログで紹介されていると教えてもらいました。そして使いたいので更新してほしいとのリクエストも。

そこでは、次の3点が指摘されていました。

  • 対応するクラス、プロパティが少ない
  • ライセンスが不明瞭
  • GitHub に上がっていない

早速、対応して新しいバージョンをリリースしました。

対応するクラスとプロパティに制限をなくし、Content、Text、ToolTip以外にも Titleなどのテキストプロパティや、FontFamily、FontSizeなどのオブジェクトや数値のプロパティをサポートしました。もし動かないプロパティがあれば GitHub の issues で教えてください。対応します。

GitHub はまだ場所を作っただけで、ファイルは上げていませんが。これまで個人の Azure DevOps ( 旧 Visual Studio Team Services ) で管理していたので、いったんそのまま開発してますが、次のアップデート時には移したいと思います。

アジャイル&DevOps ならこの本を読んで

先日、DevOps・アジャイルでよさそうな書籍を紹介してほしいと頼まれたので、ピックアップしてみました。

変革の軌跡【世界で戦える会社に変わる”アジャイル・DevOps”導入の原則】
分かりやすくアジャイル・DevOps導入の考え方が解説されています。実際に組織に導入するときに最初に読むのにお勧め。個人的にはメトリクスの話がわかりやすくお気に入り。

Effective DevOps ―4本柱による持続可能な組織文化の育て方
しっかりとDevOpsについて解説されている、おそらく現在一番スタンダードな教科書だと思います。

進化的アーキテクチャ ―絶え間ない変化を支える
実際にアジャイルでどうやってマイクロサービスを使ってくのか?について、より詳しい解説を読みたい場合に。

業務システム開発モダナイゼーションガイド 非効率な日本のSIを変革する実践的ベストプラクティス
現場の開発者向け、少しシニアナメンバーに(アジャイルやDevOpsをいきなり導入するのは難しくても)少しずつDevOpsのツール・方法を導入してみては?という実践的な視点で。

SCRUM BOOT CAMP THE BOOK
定番のスクラム解説の本、マンガ・ストーリーで解説されているので、まだアジャイルトレーニングを受けたことがない人が全体イメージを理解するのにお勧めです。

The Scrum Guide™
スクラムガイドは、簡潔に書かれているのでこれだけで勉強するには不向きですが、アップデートがないか?確認したり、全体をおさらいしたりするのに最適です。日本語版は https://www.scrumguides.org/download.html からPDFをダウンロードできます。

ブログに草を生やせるか?

ブログにGitHubの芝生( contributions graph )みたいな表示を載せたいと調べてみると、

今のところ、JavaScriptのライブラリで描画できそうなのが

Calendar Heat Map

あとは表示したい日付と数値をjsonで返してくれるサービスがあれば良さそう。GitHubの芝生をそのまま生やしたいわけじゃないので、これはできそう。最初はブログの投稿数を、と思いつつ、でも、SlidrshareやAzure DevOpsへのコミット数も、と欲を出すと終わらなくなりそう。Flowなどでできるかしら?

「良いとこどり」でなく本気でどれで開発するか?選んでください

アジャイルがうまくいかなくなる魔法の言葉があると思います。「いい所を組み合わせれば」この言葉が出てくると、私は、あぁこのプロジェクトはアジャイル崩れになって、失敗するだろうな、と思います。

良いとこどり、ができると思って皆、悪いところどりをして、結果としてウォーターフォールでもアジャイルでもない、ただのグダグダ、素人が初めて開発やってみました、みたいな失敗プロジェクトになってしまうのです。

Read More

連載 Good-bye CodedUITest(1) – Visual Studio でUI自動テストをどうすればいいか?

課題

これまで Visual Studio 標準の「UI自動テスト」機能であった 「コード化されたUIテスト」CodedUITest は、ついにVisual Studio 2019 での提供が最後になってしまった。これに変わるUIテストの自動化を考え、将来的に移行する準備を整えなければならない。

背景

Visual Studio 2017の「コード化されたUIテスト」の説明には次のような記載が追加されました。

clip_image001

Note
Coded UI Test for automated UI-driven functional testing is deprecated. Visual Studio 2019 is the last version where Coded UI Test will be available. We recommend using Selenium for testing web apps and Appium with WinAppDriver for testing desktop and UWP apps.

コード化されたUIテストは非推奨になりました。Visual Studio 2019で提供されるのが最後のバージョンです。Webアプリのテストには Selenium を、デスクトップとUWPアプリのテストには Appium と WinAppDriverを併せて使用することをお勧めします。

さようなら「コード化されたUIテスト」

私は一応、テスト自動化を含むTFS/Azure DevOps系の Microsoft MVP として、コード化されたUIテストを使用する方法を推奨してきましたが、残念ながらここまでということになりそうです。UIテストには、ここで推奨されているSeleniumやAppiumの他、沢山のフレームワークや商品がリリースされていて、それぞれ自分たちがやりたいことにマッチしているのを使うのが一番と思うのですが。Visual Studio標準のUIテストの機能として提供されている以上、まずはこれをお勧めし、不足を感じたら別のものを検討するのが良いのではという話をしてきました。しかしそれも Visual Studio 2019 までとなりそうです。

正直ショックが大きい反面、やっぱりそうかという感じもしていて。私自身、今後どのように人に薦めようかなというのを整理したいので、このブログを連載記事として書いてみようと思っています。第1回目は、「コード化されたUIテスト」Coded UI Test ってどんなものだったか?これからUIテストを作成したいのだけど、Visual Studio 2019 でこれを使用しても良いのか?ということが判断できるような内容を書ければと思います。

Read More

Visual Studio 2015 / Visual Studio Team Servicesで Fakesを使った単体テストがビルドできないときは、Fakesフォルダのmscorlib.fakesファイルを必要なクラスだけに絞り、参照にmscorlib.4.0.0.0.Fakesを追加

課題

Visual Studio(VS) や Visual Studio Team Services(VSTS)で、以前はビルドできたFakesを使用した単体テストがビルドできなくなるケースがある。また、現在のVS2015では、.net 4.5 の単体テストを新規作成し、SystemにFakesを適用するとエラーが表示されてビルドできない。

背景

これまで VSでFakesを使用するとき、[ソリューションエクスプローラー]の参照から対象を右クリックしてFakesアセンブリに追加すると、それだけでFakesが使用できるようになった。しかし、アップデートによりコンパイラとプロジェクトの構成が変更になったためか、そのままではビルドできない場合がある。

https://blogs.msdn.microsoft.com/harshjain/2016/12/29/generating-fakes-assembly-for-system-dll-for-test-project/

また、以前ビルドできていたソースもビルドできなくなり、VSTSの自動ビルドもエラーとなる場合がある。

解決方法

Fakesフォルダの .fakes ファイルを編集して、Fakesの対象となるクラスを必要なクラスに限定する。また、SystemをFakesする場合、参照に mscolib.4.0.0.0.Fakes が含まれていなければ、ビルド後に参照を追加する。

clip_image001

 

Read More

VSTS/TFS で Unparented(親の無い)バックログなどをクエリするには、「direct links」で「do not have matching links」に Parentを指定する

課題

Visual Studio Team Services(VSTS) ・Team Foundation Server(TFS)で、親の EpicやFeatureの無いBacklog Itemをクエリしたい。

背景

使い慣れないメンバーはWorkでアイテムを追加するときに「親」を指定することを忘れがちになる。親を表示したツリー表示で追加すると簡単だが、別の方法で追加して親がないバックログになってしまうと、後からリンクを追加する必要がある。しかし、Work で Board画面を使用していると、バックログの親があるかないか?見た目で区別がつかないため、慣れないメンバーはUnparented(親の無い)Backlog / Requirement をそのままにしがちである。

clip_image001

例えばEpicやFeatureをクエリするレポートやチャートを利用しているときに、これらの項目が結果に含まれずに問題になることがある。そのため、Unparented(親の無い)Backlog Itemをクエリで見つけ出し、こういった問題を防止したい。

解決方法

クエリタイプ[Work items and direct links]で[Only return items that do not have matching links]に Parentを指定する。

Read More

VSTS/TFS 作業項目のクエリをエクスポートするには、Visual Studioでクエリの編集から[名前をつけて保存]を実行

課題

Visual Studio Team Services / Team Foundation Server の作業項目のクエリを、同じチームプロジェクト内ではWeb画面で簡単にコピーすることができるが、別のTFSプロジェクトにコピーすることができない。クエリをエクスポートして、他のチームプロジェクトにインポートしたい。

解決方法

Visual Studio でクエリを開き、[クエリの編集]を押してエディターを開いた後、[ファイル]メニューから[名前をつけて(クエリ名)を保存]を選ぶと、保存先にファイルを選択することができる。

image

 

Read More

Visual Studio 2015 拡張機能を新規作成して「メモリが不足しています」エラー(OutOfMemoryException)でビルドできない時は、画像(ToolWindow1Command.png)が破損しているので差し替える

課題

Visual Studio 2015で拡張機能を手順通りに作成して、F5デバッグ実行しようとしても、ビルドエラーで実行されない場合がある。新規作成直後は起動しても、手順に従ってテンプレートでアイテムを追加すると起動しなくなることがある。Visual Basic と C# どちらでも同様。

image

Read More