ふりかえり実践会「スクラムガイドを読み解いてみよう」第5回

「スクラムガイドを読み解いてみよう」第5回 に参加しました。

今回の範囲は、スクラムガイド 2017年11月の P.7(スクラムマスター)でした。 1時間で1ページのペースでした。

議論のログは、#ふりかえり実践会「スクラムガイドを読み解いてみよう」第5回のまとめ - アジャイルって、なんだ にかなり丁寧にまとめられています。

スクラムガイドとは?

スクラムガイドは、スクラムの開発者である Ken Schwaber と Jeff Sutherland によるスクラム公式ガイドです。スクラムのルールが記載されています。

以下からダウンロードできます。

スクラムのルールブックなので、原理主義的にはスクラムガイドに従っていればスクラムを実践していると言えます。逆に、スクラムガイドに従っていない場合はスクラムっぽい開発、なんちゃってスクラムと言えます。

スクラムガイドは最低限のルールなどが抽象的に簡潔に記述されているため、最初はかなり読みづらい、理解しづらいです。

具体的なやり方は記載されていないため、いきなり一人で読むことはハードルが高いです。今回のような読書会などに参加すると理解の助けになるかも知れません。

以下、個人的な気づき、感想です。引用はスクラムガイドから。

感想など

スクラムマスター

スクラムマスターは、スクラムチームとやり取りをするとき に役に立つこと/立たないことをスクラムチームの外部の人たちに理解してもらう。

The Scrum Master helps those outside the Scrum Team understand which of their interactions with the Scrum Team are helpful and which aren’t.

スクラムチームの外部の人とのやりとりがスクラムマスターの重要な仕事になりますね。

スクラムマスターはプロダクトオーナーを支援する

スクラムチームの全員がゴール、スコープ、プロダクトのドメインを可能な限り理解できるように する。

Ensuring that goals, scope, and product domain are understood by everyone on the Scrum Team as well as possible;

さらっと書いてありますが、実際にやるのはなかなか難しいです。

価値を最大化するためのプロダクトバックログの調整方法をプロダクトオーナーに把握してもらう。

Ensuring the Product Owner knows how to arrange the Product Backlog to maximize value;

これは私はPBIの並び替えのことだと理解しています。 ROIを最大化するように並び替える。

実際にどうROIを推定するかは、そんなに簡単ではないですが。

スクラムマスターは開発チームを支援する

スクラムがまだ完全に適用・理解されていない組織環境で、開発チームをコーチする。

Coaching the Development Team in organizational environments in which Scrum is not yet fully adopted and understood.

スクラムが完全に適用・理解されている組織環境というのは、ほとんどなさそうです。

スクラムマスターは組織を支援する

組織へのスクラムの導入方法を計画する。

Planning Scrum implementations within the organization;

スクラムマスターはスクラムチーム内の役割ですが、スクラムチームよりも前にスクラムマスターが存在することが前提となっているように読めます。

スクラムが導入されていない組織ではスクラムチームはまだ存在しませんが、スクラムマスターはそのような組織でもスクラムの導入を指導したり、計画を支援するということですから。

その他の話題

スクラムガイドにはありませんが、スクラムマスターのチェックリストというものが、いくつか作成されているようです。

こういうチェックリストを見ると、自分ができていないことを探す参考になります。

次回

参考

Tags: scrum

Windows XP の管理者パスワードを忘れたのでリセットする

Windows XP 用のアプリを動かす必要が生じ、久方ぶりに起動してみました。

しかし、昔過ぎて管理者パスワードを忘れてしまい、アプリをインストールできません。

そこで、Windows XP の管理者パスワードをリセットすることにします。

なお、今回使う chntpw は、Windows NT, 2000, XP, Vista, 7, 8, 10 のローカルアカウントのパスワードをリセットできます。

作業環境

以下のように Ubuntu 18.04 を使いました。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"

Windows XP の HDD に Ubuntu がインストールされていない場合は、USB メモリなどにインストールしてそこから起動してください。

準備

Ubuntu を起動して、Windows のローカルパスワードをリセットする chntpw コマンドをインストールします。

$ sudo apt install chntpw

Windows の HDD をマウントして、念の為、パスワードファイルをバックアップします。

$ cd /media/kenji/4C54A5A254A58EF0/WINDOWS/system32/config
$ cp -p SAM SAM.old
$ ls -l SAM*
-rwxrwxrwx 1 kenji kenji 262144  5月  9 02:41 SAM
-rwxrwxrwx 1 kenji kenji   1024  5月  9 02:34 SAM.LOG
-rwxrwxrwx 1 kenji kenji 262144  5月  9 02:41 SAM.old

パスワードのリセット

system32 フォルダに移動して、以下のコマンドを実行し、対話的に作業します。

$ chntpw -i SAM
chntpw version 1.00 140201, (c) Petter N Hagen
Hive <SAM> name (from header): <\SystemRoot\System32\Config\SAM>
ROOT KEY at offset: 0x001020 * Subkey indexing type is: 666c <lf>
File size 262144 [40000] bytes, containing 6 pages (+ 1 headerpage)
Used for data: 268/20080 blocks/bytes, unused: 7/4304 blocks/bytes.



<>========<> chntpw Main Interactive Menu <>========<>

Loaded hives: <SAM>

  1 - Edit user data and passwords
  2 - List groups
      - - -
  9 - Registry editor, now with full write support!
  q - Quit (you will be asked if there is something to save)


What to do? [1] -> 1 《 1 を入力します》
===== chntpw Edit User Info & Passwords ====

| RID -|---------- Username ------------| Admin? |- Lock? --|
| 01f4 | Administrator                  | ADMIN  | dis/lock |
| 01f5 | Guest                          |        | dis/lock |
| 03ec | HelpAssistant                  |        | dis/lock |
| 03ed | kenji                          | ADMIN  | dis/lock |
| 03ef | kenji_2                        |        | dis/lock |
| 03ea | SUPPORT_388945a0               |        | dis/lock |
| 03eb | SUPPORT_d63542e0               |        | dis/lock |

Please enter user number (RID) or 0 to exit: [3ed] 01f4 《 01f4 を入力します》
================= USER EDIT ====================

RID     : 0500 [01f4]
Username: Administrator
fullname: 
comment : ������/����n�( (��Ȥ� �����)
homedir : 

00000220 = Administrators (which has 2 members)

Account bits: 0x0210 =
[ ] Disabled        | [ ] Homedir req.    | [ ] Passwd not req. | 
[ ] Temp. duplicate | [X] Normal account  | [ ] NMS account     | 
[ ] Domain trust ac | [ ] Wks trust act.  | [ ] Srv trust act   | 
[X] Pwd don't expir | [ ] Auto lockout    | [ ] (unknown 0x08)  | 
[ ] (unknown 0x10)  | [ ] (unknown 0x20)  | [ ] (unknown 0x40)  | 

Failed login count: 3, while max tries is: 0
Total  login count: 19

- - - - User Edit Menu:
 1 - Clear (blank) user password
 2 - Unlock and enable user account [probably locked now]
 3 - Promote user (make user an administrator)
 4 - Add user to a group
 5 - Remove user from a group
 q - Quit editing user, back to user select
Select: [q] > 1 《 1 を入力します》
Password cleared!
================= USER EDIT ====================

RID     : 0500 [01f4]
Username: Administrator
fullname: 
comment : ������/����n�( (��Ȥ� �����)
homedir : 

00000220 = Administrators (which has 2 members)

Account bits: 0x0210 =
[ ] Disabled        | [ ] Homedir req.    | [ ] Passwd not req. | 
[ ] Temp. duplicate | [X] Normal account  | [ ] NMS account     | 
[ ] Domain trust ac | [ ] Wks trust act.  | [ ] Srv trust act   | 
[X] Pwd don't expir | [ ] Auto lockout    | [ ] (unknown 0x08)  | 
[ ] (unknown 0x10)  | [ ] (unknown 0x20)  | [ ] (unknown 0x40)  | 

Failed login count: 3, while max tries is: 0
Total  login count: 19
** No NT MD4 hash found. This user probably has a BLANK password!
** No LANMAN hash found either. Try login with no password!

- - - - User Edit Menu:
 1 - Clear (blank) user password
 2 - Unlock and enable user account [probably locked now]
 3 - Promote user (make user an administrator)
 4 - Add user to a group
 5 - Remove user from a group
 q - Quit editing user, back to user select
Select: [q] >  《 Enter を入力します》
<>========<> chntpw Main Interactive Menu <>========<>

Loaded hives: <SAM>

  1 - Edit user data and passwords
  2 - List groups
      - - -
  9 - Registry editor, now with full write support!
  q - Quit (you will be asked if there is something to save)


What to do? [1] -> q 《 q を入力します》
Hives that have changed:
 #  Name
 0  <SAM>
Write hive files? (y/n) [n] : y 《 y を入力します》
 0  <SAM> - OK

これで、Administrator のパスワードが空になりました。

Administrator のパスワード設定

Windows XP の起動直後に F8 を押し続け、「セーフモードとコマンドプロンプト」で起動します。

起動したら、Administrator をクリックしてログオンします。

コマンドプロンプトが起動するので、パスワードを設定します。

C:\Documents and Settings\Administrator> net user Administrator <new password>

Ctrl + Alt + Delete を押して、「Windows タスクマネージャ」を起動します。

「シャットダウン」メニューから「再起動」します。

これで Administrator のパスワードが変更できました。

参考

Tags: windows, ubuntu

PHP中級者がソフトウェア開発の理解を深めるためのオススメ書籍 約30冊(2020年版)

去年末(2019/12)にオススメ書籍をまとめてみたことがあったので、それを少し更新して公開します。

上にある書籍がよりオススメというわけではないです。

対象者は「PHP中級者」です。中級者が何かは難しいですが、初心者、初級者では決してないとは言えます。

改めて一覧にしてみると、かなり偏っているかも知れません(笑

こういうのはコンテキストというのがあるため、それが合わないと「お前は何を薦めているのだ?」となるでしょうね。

キーワードは、「モデリング」「オブジェクト指向プログラミング」「TDD」「デザインパターン」「DDD」「チーム開発」「アジャイルソフトウェア開発」「スクラム」でしょうか。

PHP中級者のイメージ

たぶん、PHP中級者であれば、PHPに関することはPHPマニュアルなどを調べて解決できるでしょう。PHPのオープンソースプロジェクトに貢献しており、自分でプロジェクトを持っているかも知れません。

プログラミング、オブジェクト指向プログラミングについてもある程度、知識と経験があるでしょう。PHPしか全く読めないというようなことはなく、Java、C#、JavaScriptなど知らない言語でもなんとなく読むことくらいはできると思います。

デザインパターン、DDD、クリーンアーキテクチャーなどの用語を知っており、少しは知識があることでしょう。

プログラミング

『リーダブルコード』 より良いコードを書くためのシンプルで実践的なテクニック

割と誰にでもおすすめしやすいコードの書き方に関する良書です。


『CODE COMPLETE 第2版 上』 完全なプログラミングを目指して


『CODE COMPLETE 第2版 下』 完全なプログラミングを目指して


『Clean Coder』 プロフェッショナルプログラマへの道


『レガシーコード改善ガイド』 システム保守の現場でありがちな、構造が複雑で理解できないようなコードに対する分析手法・対処方法について解説

オブジェクト指向プログラミング

『アジャイルソフトウェア開発の奥義 第2版』 オブジェクト指向開発の神髄と匠の技

SOLID原則について詳細に解説されています。


『テスト駆動開発』 テスト駆動開発を原点から学ぶ

TDDの原典です。PHPに翻訳しつつ写経するといいでしょう。Javaのままでも構いませんが。


『リファクタリング 第2版』 既存のコードを安全に改善する

第2版はJavaScriptになり、カラーになり、圧倒的に読みやすくなりました。


『Clean Architecture』 達人に学ぶソフトウェアの構造と設計


『Clean Code』 アジャイルソフトウェア達人の技


『現場で役立つシステム設計の原則』 変更を楽で安全にするオブジェクト指向の実践技法


『ユースケース駆動開発実践ガイド』 実装部分も時流に即したオブジェクト指向分析/設計の指南書


『エンタープライズ アプリケーションアーキテクチャパターン』 エンタープライズアーキテクチャのレイヤ化とは?

デザインパターン

『オブジェクト指向における再利用のためのデザインパターン』

GoFのデザパタ本、原典です。


『増補改訂版Java言語で学ぶデザインパターン入門』 GoFの『デザインパターン』で紹介された23個のパターンを、オブジェクト指向の初心者にもわかるようにやさしく解説


『PHPによるデザインパターン入門』 デザインパターンの基本であるGoF全23パターンをわかりやすく解説

今回、唯一出てきたPHPに関する書籍です。絶版ですが。

DDD

『エリック・エヴァンスのドメイン駆動設計』

DDDの原典です。分厚く難解なため、読むのは困難です。DDDにちょっと興味があるという程度の人は以下に紹介する『ドメイン駆動設計入門』『ドメイン駆動設計 モデリング/実装ガイド』などから読むほうがいいでしょう。

『ドメイン駆動設計入門』

『ドメイン駆動設計 モデリング/実装ガイド』

https://booth.pm/ja/items/1835632


『実践ドメイン駆動設計』

IDDD本と呼ばれる書籍です。

モデリング

『業務システムのための上流工程入門』


『モデルベース要件定義テクニック』

『RDRA2.0 ハンドブック』

未読ですが、上記の『モデルベース要件定義テクニック』で使われているRDRA1.0のバージョンアップのようですので、こちらを読んだほうがよいのかも知れません。

アジャイル

『アジャイルサムライ』 達人開発者への道


『アジャイルイントロダクション』 ソフトウェア工学分野の“大御所”バートランド・メイヤー博士の手によるアジャイル入門書にして具体的な開発手法にまで言及した一冊

あの『オブジェクト指向入門』の著者であるバートランド・メイヤーがアジャイル開発について解説している本です。


『レガシーコードからの脱却』 ソフトウェアの寿命を延ばし価値を高める9つのプラクティス

どういうコードを書いたらレガシーコードにならないかというのが主な内容です。『レガシーコード改善ガイド』とは異なり、既存のレガシーコードをどうするか?が主題の本ではありません(1章だけレガシーコードのリファクタリングについて記載はありますが)。


『エクストリームプログラミング』 アジャイル開発とは何だったのか、その原点を再考する新訳

ケント・ベックによるXPの原典です。


『アジャイルな見積りと計画づくり』 価値あるソフトウェアを育てる概念と技法

アジャイルでの計画・見積もり方法について解説した書籍です。


『アジャイルレトロスペクティブズ』 強いチームを育てる「ふりかえり」の手引き

アジャイルふりかえりに関する、たぶん日本語で唯一の商業出版された書籍です。


『モブプログラミング・ベストプラクティス』 ソフトウェアの品質と生産性をチームで高める

モブプロに関する、たぶん日本語で唯一の商業出版された書籍です。『Code with the Wisdom of the Crowd』の翻訳です。


『カイゼン・ジャーニー』 たった1人からはじめて、「越境」するチームをつくるまで

この本に興味があれば、最近出た姉妹書っぽい『チーム・ジャーニー』もオススメします。

『チーム・ジャーニー』 逆境を越える、変化に強いチームをつくりあげるまで


『Team Geek』 Googleのギークたちはいかにしてチームを作るのか

スクラム

『スクラムガイド』 スクラム公式ガイド

スクラムのルールブック。これを知らずにスクラムをやってる人はルールを知らずにプレイしていることになります。

https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Japanese.pdf


『アジャイル開発とスクラム』 顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント

平鍋さんと野中先生によるスクラムの概要の解説書。技術者向けというわけではないです。


『SCRUM BOOT CAMP THE BOOK』 はじめて「スクラム」をやることになったら読む本


『スクラム現場ガイド』 スクラムを始めてみたけどうまくいかない時に読む本

Tags: php, book, agile, scrum, tdd, ddd, programming, modeling, team