Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

世界中のユーザーに愛される ソフトウェアを作りたい!!

.NETラボ 勉強会 2018年8月 ~本格的なアプリ開発を勉強する一日~
https://dotnetlab.connpass.com/event/97932/
で発表させていただいた資料となります。世界中のユーザーに愛されるソフトウェアにするために心がけていることを紹介します。

  • Login to see the comments

  • Be the first to like this

世界中のユーザーに愛される ソフトウェアを作りたい!!

  1. 1. 1 @.NETラボ 勉強会 2018年8月 2018/8/25(土) 世界中のユーザーに愛される ソフトウェアを作りたい!! 宮崎 典行 Twitter: @openlibsys https://crystalmark.info/ 80 PAGES
  2. 2. 2自己紹介 名前:宮崎 典行, hiyohiyo/ひよひよ 年齢:39歳 家族:愛妻, 愛娘, 愛息子 出身:北海道 趣味:ソフトウェア開発 (約20年) 所属:CLR/H Microsoft MVP (Jan. 2014 – June 2019)
  3. 3. 3Crystal Dew World 20年の軌跡 98 99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 大学 大学院 修士 埼玉勤務 札幌勤務 東京 勤務 CrystalMark CrystalCPUID CrystalDiskMark CrystalDiskInfo HiyOS WinRing0 CrystalRes
  4. 4. 4 開発で心がけていることを共有 CrystalMark CrystalCPUID CrystalDiskMark CrystalDiskInfo 水晶雫 本日内容
  5. 5. 5 ベンチマークソフトで 一番になりたい!! 大学生になった時の目標
  6. 6. 6 チャレンジ1 ~総合ベンチマークソフト~
  7. 7. 7Crystal Dew World 20年の軌跡 98 99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 大学 大学院 修士 埼玉勤務 札幌勤務 東京 勤務 CrystalMark CrystalCPUID CrystalDiskMark CrystalDiskInfo HiyOS WinRing0 CrystalRes
  8. 8. 8【伝説】WindSock (Win16用総合ベンチマーク)
  9. 9. 9【目標】HDBENCH http://www.hdbench.net/ja/
  10. 10. 10ベンチマークソフトで一番を目指してやったこと ハードウェア情報ソフト(総合ベンチマーク) CPU情報 GPU情報 ベンチマークストレージ情報 CrystalMark08 CrystalMark 2004CrystalMark06 ベンチマークランキング
  11. 11. 11CrystalMark06 ? なぜこんなUIになったかは本当に謎!?
  12. 12. 12CrystalMark 2004 人生を変えた代表作!!学生時代最後の日にリリース!!
  13. 13. 13 頑張ってはみたものの グローバル知名度は ほぼ0
  14. 14. 14 • 全てにはフォーカス出来ない • クオリティが低い 世界一にはなれませんでした・・・ ハードウェア情報ソフト(総合ベンチマーク) CPU情報 GPU情報 ベンチマークストレージ情報 ベンチマークランキング
  15. 15. 15私のソフトウェア開発における基本戦略 特定領域に特化し、その中で世界一を目指す!!
  16. 16. 16 チャレンジ2 ~CPU情報ソフト~
  17. 17. 17Crystal Dew World 20年の軌跡 98 99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 大学 大学院 修士 埼玉勤務 札幌勤務 東京 勤務 CrystalMark CrystalCPUID CrystalDiskMark CrystalDiskInfo HiyOS WinRing0 CrystalRes
  18. 18. 18CrystalCPUID の戦略 ハードウェア情報ソフト CPU情報 GPU情報 ベンチマークストレージ情報 大好きなCPUで世界一を目指す!!
  19. 19. 19【目標】WCPUID 1996年から2004年頃まで 世界中で広く利用された日本発のCPU情報ソフト
  20. 20. 20CrystalCPUID 主な特徴 • 独自のクロック周波数制御機能 一瞬だけ世界中のオーバークロッカー& アンダークロッカー(省電力化)が活用!! 2002年から2008年頃まで 世界一を目指して私が開発していたCPU情報ソフト 新CPUに対応し続けることができずフェードアウト・・・
  21. 21. 21【参考】プロジェクト LoveHammer AMD Athlon 64 (K8) の倍率変更機能をユーザーを人柱 (ブルースクリーン連発)になってもらい、実機なしで実装!! 約半年後の 2004/03/10頃ようやく購入!! 開発資金超重要!!
  22. 22. 22CPU-Z 圧倒的シェアNo.1のCPU情報ソフト ※月間ダウンロード数220万回以上(公式情報) https://www.cpuid.com/
  23. 23. 23なぜ勝てなかったのか? ハードウェア情報ツールの開発に必要なこと 高度な技術力 (リバースエンジニアリング力) 潤沢な資金力 (新製品が出たら検証用に買う) ※配偶者の理解も超重要 ベンダーの サポート (詳細仕様は一般的に非公開) 私には情熱だけしかなかった そしてCPU-Zとの圧倒的な差に情熱も潰えた
  24. 24. 24致命的な一撃 CPU-Z が Intel/AMD をパートナーに迎える
  25. 25. 25圧倒的敗北 ~開発終了時の市場シェア(推定)~
  26. 26. 26 1番を目指しても 1番になれるとは 限らない!!!!!!!!! 失敗から得られた教訓
  27. 27. 27 チャレンジ3 ~ストレージベンチマーク~
  28. 28. 28Crystal Dew World 20年の軌跡 98 99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 大学 大学院 修士 埼玉勤務 札幌勤務 東京 勤務 CrystalMark CrystalCPUID CrystalDiskMark CrystalDiskInfo HiyOS WinRing0 CrystalRes
  29. 29. 29【目標】FDBENCH http://www.hdbench.net/ja/
  30. 30. 30 ストレージに特化 すればイケるかも
  31. 31. 31CrystalDiskMark の戦略 総合ベンチマーク GPU ベンチマーク ストレージ ベンチマーク メモリー ベンチマーク CPU ベンチマーク 世界で一番愛される ストレージベンチマークソフト を目指す!!
  32. 32. 32CrystalDiskMark の戦略 • スクリーンショットがすべて ※CrystalMark の反省を生かして… • 多言語対応(40カ国語以上) ※CrystalMark の反省を生かして… • オープンソース(MITライセンス) とにかくシンプル シンプルさを損なう機能追加はしない
  33. 33. 33CrystalDiskMark と言えば・・・ https://forest.watch.impress.co.jp/article/2008/01/15/crystaldiskmark200.html https://forest.watch.impress.co.jp/article/2008/02/04/crystaldiskmark210.html https://forest.watch.impress.co.jp/article/2008/09/16/crystaldiskmark220.html こんなにバグバグな ベンチマークソフト見たことない!!
  34. 34. 34CrystalDiskMark 3, 4-6 でリカバリー https://forest.watch.impress.co.jp/docs/news/356338.html https://forest.watch.impress.co.jp/docs/news/701198.html https://forest.watch.impress.co.jp/docs/news/1089912.html NCQ対応(Ver.3) DiskSpd採用(Ver.4-6)
  35. 35. 35CrystalDiskMark 4 リリース秘話 インテル様からご提供 いただいた検証用機材 あのインテル から連絡がきた!!
  36. 36. 36CrystalDiskMark の戦略 全領域テストなどは 専門的なソフトで!! とにかくシンプル 国内外から多数の要望をいただいておりますが…
  37. 37. 37CrystalDiskMark 7 -Marginality- 鋭意開発中!! CDHtmlDialog はトラブルばかり!! 脱HTML UI!!
  38. 38. 38CrystalDiskMark 7 -Marginality- 鋭意開発中!! MFC + GDI/GDI+
  39. 39. 39CrystalDiskMark の戦略 • スクリーンショットがすべて ⇒ ユーザーにとってはUIがすべて • 多言語対応(40カ国語以上) ⇒ ユーザーは母国語で使いたい!! • オープンソース(MITライセンス) とにかくシンプル シンプルさを損なう機能追加はしない
  40. 40. 40【参考】ユーザーにとってはUIがすべて ユーザーにとってはUIがすべて:UIデザイン原則をソシオメディアが語る ユーザーにとってはUIがすべて 検索 【2008年9月29日】 出典 https://builder.japan.zdnet.com/ria-ajax/20381259/
  41. 41. 41【参考】ユーザーにとってはUIがすべて ユーザーにとってはUIがすべて 検索
  42. 42. 42【余談】Crystal Dew World パクリリスペクト伝説 EP82改/かず氏 H.Oda! 氏 CrystalRes QuickDes
  43. 43. 43 チャレンジ4 ~ストレージ情報ソフト~
  44. 44. 44Crystal Dew World 20年の軌跡 98 99 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 大学 大学院 修士 埼玉勤務 札幌勤務 東京 勤務 CrystalMark CrystalCPUID CrystalDiskMark CrystalDiskInfo HiyOS WinRing0 CrystalRes
  45. 45. 45CrystalDiskInfo 開発のきっかけ CrystalCPUID の開発も頓挫したし、 CrystalMark の次期バージョンも作れそうにないし、 一体私はどうしたら良いんだorz 1.年末のある日 「月のお姫様がホームステイ」 という設定のゲームプレイ動画 に偶然出会う(謎 2.一番良いところ(一般ゲーです) で動画が終了!! 3.大急ぎで PS2 版を買いに走る!! 4.年末年始を萌え過ごす!! 5.ストレージ情報ソフトを作ろう!!
  46. 46. 46 人生何が転機か わかりませんね!!
  47. 47. 47CrystalCPUID 5 -Estel- vs CrystalDiskInfo -Feena- 司祭のお嬢様 月のお姫様
  48. 48. 48某巨大掲示板での出来事 CrystalCPUID 5 -Estel- も頑張ることにしたし、 CrystalDiskInfo -Feena- は、ディスクの情報を 一覧できるだけのシンプルなソフトにしよう!! https://pc11.5ch.net/test/read.cgi/software/1173061928/ 某巨大掲示板での評価 S.M.A.R.T.値を表示するだけ だとなあ、一工夫ほしいところ S.M.A.R.T.そのまま表示する だけであんまし意味ねえ。w
  49. 49. 49 S.M.A.R.T.情報を 表示するだけのソフト を作って誰が喜ぶの?
  50. 50. 50 サンプルレベルではなく本気で取り組もう!! CrystalDiskInfo -Feena- リリース!!
  51. 51. 51ネ申降臨によるUSB-HDD対応!!(ちょうど10年前) 神パッチ いわゆるネ申降臨 キタ━━━━(゚∀゚)━━━━!!
  52. 52. 52SCSI/ATA Translation (SAT) シリアルATA /パラレルATA USB-ATA 変換チップ USB パケット or IEEE 1394 パケット 特殊な SCSI コマンド (ベンダー固有) 普通の ATA コマンド
  53. 53. 53情熱の新規USB-HDD対応作業
  54. 54. 54窓の杜大賞受賞(2008年) https://forest.watch.impress.co.jp/prize/2008/result.html
  55. 55. 55 名無しさんの一言が 人生を変えた・・・
  56. 56. 56 人生何が転機か わかりませんね!!
  57. 57. 572015年私は悩んでいた・・・ NVMe SSD の S.M.A.R.T. 情報が Windows 上から読めない!! 日本語の (*´Д`)ハァハァ ツイートに韓国の神から反応が!! グローバルな活動が呼んだ奇跡か!?
  58. 58. 58 https://naraeon.net/ https://github.com/ebangin127/nvmetools ネ申再臨によるNVMe対応!!(約3年前)
  59. 59. 59夏休みの自由研究 出典 https://www.cnx-software.com/2018/06/11/asm2362-usb-pcie-nmve-ssd-chip/ 出典 https://www.golem.de/news/jmicron-jms583-der-erste-usb-auf-nvme-pcie- controller-ist-da-1806-134868.html ベンダーからの要望を受けJMS583とASM2362に世界初対応!! JMicron JMS583 ASMedia ASM2362 ダウンロード数 400万回以上/年
  60. 60. 60SCSI/NVMe Pass Through USB-NVMe 変換チップ USB パケット 特殊な SCSI コマンド (ベンダー固有) NVMe コマンド NVMe SSD (M.2)
  61. 61. 61SCSI/NVMe Pass Through (ASMedia) sptwb.Spt.Length = sizeof(SCSI_PASS_THROUGH); sptwb.Spt.PathId = 0; sptwb.Spt.TargetId = 0; sptwb.Spt.Lun = 0; sptwb.Spt.SenseInfoLength = 24; sptwb.Spt.DataTransferLength = 512; sptwb.Spt.TimeOutValue = 2; sptwb.Spt.DataBufferOffset = offsetof(SCSI_PASS_THROUGH_WITH_BUFFERS, DataBuf); sptwb.Spt.SenseInfoOffset = offsetof(SCSI_PASS_THROUGH_WITH_BUFFERS, SenseBuf); sptwb.Spt.DataIn = SCSI_IOCTL_DATA_IN; sptwb.Spt.CdbLength = 16; sptwb.Spt.Cdb[0] = 0xE6; // NVME PASS THROUGH sptwb.Spt.Cdb[1] = 0x02; // GetLogPage sptwb.Spt.Cdb[3] = 0x02; // S.M.A.R.T. sptwb.Spt.Cdb[7] = 0x7F; length = offsetof(SCSI_PASS_THROUGH_WITH_BUFFERS, DataBuf) + sptwb.Spt.DataTransferLength; bRet = ::DeviceIoControl(hIoCtrl, IOCTL_SCSI_PASS_THROUGH, &sptwb, length, &sptwb, length, &dwReturned, NULL);
  62. 62. 62CrystalDiskInfo がうまくいき始めている理由 ハードウェア情報ツールの開発に必要なこと 高度な技術力 (リバースエンジニアリング力) 潤沢な資金力 (新製品が出たら検証用に買う) ※配偶者の理解も超重要 ベンダーの サポート (詳細仕様は一般的に非公開) 神待ち お仕事頑張る!? 連絡待ち ユーザーが増えることでチャンスが広がる!!
  63. 63. 63 ユーザー増 神降臨 (開発協力者) 対応ハード ウェア増 ユーザー増 ベンダー サポート 対応ハード ウェア増 圧力 世界一を目指し続けることで生まれた好循環 これでNVMe対応 イケるんじゃね!! ※韓国人、当時大学院生 ⇒ SAMSUNG 新製品を出すので 対応お願いします!!
  64. 64. 64 チャレンジ5 ~水晶雫~
  65. 65. 65 オープンソースカンファレンス 2011 北海道 (2011/6/11)
  66. 66. 66 ①メール設定 ②メール通知をチェック CrystalDiskInfo 4 の新機能メール通知機能をアピール
  67. 67. 67懇親会にて 橘べるちぇ氏 メール通知なんてレガシー技術!! 時代は音声通知ですよ・・・そうだ!! 声優さんに喋ってもらいましょう!! そっ、それはいいですねぇ(棒) 軽く流しておくか
  68. 68. 68 橘べるちぇ氏 声優さんに喋ってもらったから これを使ってください。 あっ、ありがとうございます・・・ ネタじゃないw こっ、これはネ申降臨なのか???
  69. 69. 69CrystalDiskInfo 5 Shizuku Edition 爆誕
  70. 70. 70 人生何が転機か わかりませんね!!
  71. 71. 71まじめなふりしてたんで・・・大反響 ひよひよ氏どうした? 出典:http://gigazine.net/news/20120620-crystaldiskinfo-5-shizuku-edition/出典:http://www.forest.impress.co.jp/docs/news/20120618_541019.html HDDが壊れて悲しい気持ちになってた けどこれを導入したら今度はHDDの異 常が楽しみになってきててやばい コレはよい和服美少女。 CrystalDiskInfo愛用してるけどこんな 路線になるとは思わなかったww 結構お固いソフトだと思って ただけに意外。でもかわいい。 なにこれやたらかわいい (:.;゚;Д;゚;.:)ハァハァ 可愛すぎて導入したい
  72. 72. 72 お堅いプログラマ だと思われていた ようですが・・・
  73. 73. 73CrystalDiskInfo の開発コードネーム 1.0: Feena 2.0: Earthlight 3.0: Moonlight 4.0: Licia 5.0: Cynthia 6.0: Freesia 7.0: Marguerite 8.0: Marginality 第 一 世 代 第 二 世 代 ©AUGUST
  74. 74. 74CrystalDiskInfo 9 の開発コードネーム【予定】 ©DMM GAMES ©AUGUST アルファベット表記わからんorz
  75. 75. 75 http://www.slideshare.net/hiyohiyo/mddwin32 ソフトウェア開発で一番大切 なことを紹介しています!! 【宣伝】第二世代萌え駆動開発 第二世代萌え駆動開発 検索
  76. 76. 76 8K(7680x4320)他 40種類以上の壁紙サイズを用意!! https://水晶雫.com/ 壁紙
  77. 77. 77水晶雫プロデュースで一番意識したこと もの凄く良いものにすること ちょっと良い程度では寧ろマイナス • 皆が萌えたいわけではない • そもそも萌えようがない 世界展開を見据える • 和服美少女+黒髪+清楚 • 17歳 (X18ダメ絶対!!)
  78. 78. 78 まとめ
  79. 79. 79愛されるソフトウェアになるために心がけていること • もの凄く良いものにすること ちょっと頑張った程度では選んでいただけない • コミュニケーションを大切にすること 要望に耳を傾け決断する(取捨選択が重要) • 継続すること ユーザーからの評価は積み重ね
  80. 80. 80継続するために心がけていること • エゴサーチ 好意的な記事やツイートを見つけると嬉しい • ユーザーの声に振り回されないこと ユーザーサポートに疲弊して開発終了・・・割と良くある • 開発資金を確保すること お金がなければハードウェア系ソフトは書けない

×