0
リーンスタートアップ x Java
山本 裕介 @yusuke

#ccc_h4
2012年9月
「日本でもっと普及させたくない?」!
「代理店よろしく」!
「・・・はい?」
代理店!
↓!
商品を右から左!

.。oO

↓!
在庫なし、リスクなし?簡単そう!!
うまくいかなければやめればいい
2012年12月 代理店契約締結

x
2013年2月 営業開始
10

発行ライセンス数

受注数

8

5

3

0

2月
200

発行ライセンス数

受注数

150

100

50

0

2月

3月
320

発行ライセンス数

受注数

240

160

80

0

2月

3月

4月

5月

6月

7月

8月

9月

10月
!

.。oO

在庫なし、リスクなし?簡単そう!

受注
ライセンス発行
請求
!

.。oO

在庫なし、リスクなし?簡単そう!

顕在化するリスク!
• キャッシュフロー!
• 為替リスク!
• 回収リスク
気をつけてきたこと
• 小さく始める!
• システム化を可能な限り「しない」!
• できる限り手抜き
リーンスタートアップ
• MVP!
• 価値仮説!
• 成長仮説!
• 構築 - 計測 - 学習!
• A / Bテスト!
• ピボット
リーンスタートアップ
• MVP!

• JetBrainsの製品!

• 価値仮説!

• 販売フロー

• 成長仮説!
• 構築 - 計測 - 学習!
• A / Bテスト!
• ピボット
リーンスタートアップ
• MVP!

• 日本で需要あるはず!

• 価値仮説!

• 日本語!

• 成長仮説!

• 日本円、銀行振込!

• 構築 - 計測 - 学習!

• お値頃

• A / Bテスト!
• ピボット
リーンスタートアップ
• MVP!
• 価値仮説!
• 成長仮説!
• 構築 - 計測 - 学習!
• A / Bテスト!
• ピボット

• マーケットサイズ!
→デベロッパ数
リーンスタートアップ
• MVP!
• 価値仮説!
• 成長仮説!
• 構築 - 計測 - 学習!
• A / Bテスト!
• ピボット

• あとで
リーンスタートアップ
• MVP!

• キャンペーン!

• 価値仮説!

• 販売方法

• 成長仮説!
• 構築 - 計測 - 学習!
• A / Bテスト!
• ピボット
リーンスタートアップ
• MVP!

• 生きていけない!

• 価値仮説!

• もっと良い製品が登場!

• 成長仮説!

• JetBrains Japan設立

• 構築 - 計測 - 学習!
• A / Bテスト!
• ピボット
システム化・自動化の目安
• 基本はコンシエルジュMVPで提供!
• 自動化・システム化は!
• 間違いを起こした時!
• 作業負荷が高いと感じた時
代理店の仕事(想像)
受注
ライセンス発行
請求
代理店の仕事(実態)
見積

受注

価格交渉
記帳

ライセンス発行
請求書送付
送金

プロモーション
資金繰り

消し込み

早期一括返済
(株)サムライズムを支える技術
Webサイト
• 当然なら事業をやる上で必要!
• Webサイト構築するならばCMSが必要!
• Javaベースが良い(自分でメンテしやすい)!
• でもWordPressが無難?!
• でもJavaがいい!
Webサイト
• quercus: JVMで動くPHP実装!
• WordPressも動作可能!
• ちょっと触ったけど時間切れで断念
Webサイト
• やっぱり無難にApache + WordPressで構築
Webサイト
• コンテンツの更新は?!
• 11の製品、128のSKU - 手動は無理
Webサイト
• 各製品ページはプログラムで生成

Apache Velocity

データソース

データアクセス

wordpress-java

HTMLに変換

http://samuraism.com/
受注
• 確実に受注したい!
• ショッピングカートシステム?
受注
• 実装 - Google Docsのフォーム
Google Docsフォームを使って
• 良い点!
• 手軽でセキュア(デフォルトでSSL)!
• 悪い点!
• 見た目がしょぼい!
• 条件別のフォームなど実装できない!
• 金額計算、自動折り返しメールなどできない
帳票
• 法人との取引には大事!
• 見積書!
• 納品書!
• 請求書!
• 領収書
帳票
• 当初: Excelで記入、PDF化!
• 金額ミス等が時折発生!
• めんどくさい
帳票生成自動化
• iText - JavaからPDF生成するライブラリ!
• PDFで出来ることはだいたいできる!
• 一からPDFを作るのはめんどくさい
(株)サムライズムにおける帳票生成
• Excelで作る!
• PDF化!
• Acrobatで読み込む!
• フォーム要素埋め込み!
• iTextで動的に値を埋め込む
fields.setField(key, value);
デモ
iTextで大事なこと
• フォームエレメントのflatten : 編集不可に
Set keySet = fields.getFields().keySet();
if (fieldsLeftUnflatten != null) {
for (S...
日本で大事なこと
• 角印!

xxxxx
日本で大事なこと
• 角印 - 帳票をそれらしくするのに必要!
• スキャンして白い部分を透過処理!
• 朱の部分は幾分透明度を与える
郵送に備えて
• 窓付封筒に宛名が収まる

ASKUL - 今村紙工 窓付封筒 長3 横型 100g/m2 白ケント MD-05 1パック(200枚入)!
http://www.askul.co.jp/ctg/itemdetail/itemEn...
メール送信
• メール「注文承りました。こちらにお振り込み
を・・」!
• すること!
• 製品名、価格、宛先、宛名確認&メール送信!
• めんどくさい
メール送信
public class SendPersonalLicenseInvoice {
public static void main(String... args) throws UnsupportedEncodingExceptio...
メール送信を自動化して
• 金額・宛名の間違いがなくなった!
!

• 今後!
• 見積書送付の自動化!
• ライセンス送付の自動化
ライセンス発行
• 代理店向けサイトで発行
ライセンス発行
• 発行時の入力項目:!
• 顧客情報(名前、住所等々)!
• クレジットカード番号!
• 売上の記録:!
• 法人 - 売掛、個人 - 売上として記録!
• 問題: めんどくさい、遅い
ライセンス発行
• Seleniumで自動化

コントロール

ライセンス

売上記録
ライセンス発行を自動化して
• 圧倒的に楽になった!!
• JetBrainsサイト(GWTベース)の自動操縦大変!
!

• 今後!
• ライセンスの送付まで自動化したい
消し込み
• 消し込み: 売掛金の入金確認、記帳!
• やりかた: 売掛と通帳明細の比較!
• めんどくさい
法人向けインターネットバンキング
• とあるメガバンク

https://bizstation.bk.mufg.jp/service/kankyou.html より
法人向けインターネットバンキング
• とあるメガバンク!
• Windowsのみ対応!
• 要クライアント証明書!
• めんどくさい
最初:UserAgent偽装でSafariからアクセス
最初:UserAgent偽装でSafariからアクセス
• 手動でポチポチ操作してCSVダウンロード!
• めんどくさい
消し込み
• Selenium + Firefoxである程度自動化

コントロール

UA偽装してアクセス

CSV形式
Seleniumを使って
• 銀行口座の明細CSVダウンロードを自動化!
• 便利!!
• 消し込みはまだ手動!
→ 振込名義人名を特定できない!
• 新規入金の通知(メールやTwitter等)は未実装
Seleniumによる消し込み
• 便利!
• どこかのタイミングでOSSにします!
消し込み後
• 記帳!
• 通帳の明細を会計ソフトに記入!
• 売上、水道光熱費等々仕訳をしながら・・!
• めんどくさい
Yayoi4J
• 通帳明細CSVを弥生で読み込めるよう変換!
• CSVの読み込み: OpenCSV!
http://opencsv.sourceforge.net
!

• 弥生用CSV形式で書き出し: String.format();
S...
Yayoi4J
• デモ
Yayoi4J
• どこかのタイミングでOSSにします!
経費 - 通信費
• 毎月一度エビデンスをプリント!
• オフィスインターネット代金!
• 携帯・PHS代金!
• WiMAX代金!
• めんどくさい
(株)サムライズムを支える技術

wordpress-java
Yayoi4J
• デモ
まとめ
• 日々の、月々の業務を見直してみましょう!
• 無駄な手動作業!
ある意味リーンスタートアップ!
(コンシエルジュMVP)!
• 自動化できる単調作業を探して実装!
• 実装付加と手動作業負荷のバランスを考えて
もちろんJavaで!
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
Upcoming SlideShare
Loading in...5
×

リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4

3,727

Published on

Published in: Technology

Transcript of "リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4"

  1. 1. リーンスタートアップ x Java 山本 裕介 @yusuke #ccc_h4
  2. 2. 2012年9月 「日本でもっと普及させたくない?」! 「代理店よろしく」! 「・・・はい?」
  3. 3. 代理店! ↓! 商品を右から左! .。oO ↓! 在庫なし、リスクなし?簡単そう!! うまくいかなければやめればいい
  4. 4. 2012年12月 代理店契約締結 x
  5. 5. 2013年2月 営業開始
  6. 6. 10 発行ライセンス数 受注数 8 5 3 0 2月
  7. 7. 200 発行ライセンス数 受注数 150 100 50 0 2月 3月
  8. 8. 320 発行ライセンス数 受注数 240 160 80 0 2月 3月 4月 5月 6月 7月 8月 9月 10月
  9. 9. ! .。oO 在庫なし、リスクなし?簡単そう! 受注 ライセンス発行 請求
  10. 10. ! .。oO 在庫なし、リスクなし?簡単そう! 顕在化するリスク! • キャッシュフロー! • 為替リスク! • 回収リスク
  11. 11. 気をつけてきたこと • 小さく始める! • システム化を可能な限り「しない」! • できる限り手抜き
  12. 12. リーンスタートアップ • MVP! • 価値仮説! • 成長仮説! • 構築 - 計測 - 学習! • A / Bテスト! • ピボット
  13. 13. リーンスタートアップ • MVP! • JetBrainsの製品! • 価値仮説! • 販売フロー • 成長仮説! • 構築 - 計測 - 学習! • A / Bテスト! • ピボット
  14. 14. リーンスタートアップ • MVP! • 日本で需要あるはず! • 価値仮説! • 日本語! • 成長仮説! • 日本円、銀行振込! • 構築 - 計測 - 学習! • お値頃 • A / Bテスト! • ピボット
  15. 15. リーンスタートアップ • MVP! • 価値仮説! • 成長仮説! • 構築 - 計測 - 学習! • A / Bテスト! • ピボット • マーケットサイズ! →デベロッパ数
  16. 16. リーンスタートアップ • MVP! • 価値仮説! • 成長仮説! • 構築 - 計測 - 学習! • A / Bテスト! • ピボット • あとで
  17. 17. リーンスタートアップ • MVP! • キャンペーン! • 価値仮説! • 販売方法 • 成長仮説! • 構築 - 計測 - 学習! • A / Bテスト! • ピボット
  18. 18. リーンスタートアップ • MVP! • 生きていけない! • 価値仮説! • もっと良い製品が登場! • 成長仮説! • JetBrains Japan設立 • 構築 - 計測 - 学習! • A / Bテスト! • ピボット
  19. 19. システム化・自動化の目安 • 基本はコンシエルジュMVPで提供! • 自動化・システム化は! • 間違いを起こした時! • 作業負荷が高いと感じた時
  20. 20. 代理店の仕事(想像) 受注 ライセンス発行 請求
  21. 21. 代理店の仕事(実態) 見積 受注 価格交渉 記帳 ライセンス発行 請求書送付 送金 プロモーション 資金繰り 消し込み 早期一括返済
  22. 22. (株)サムライズムを支える技術
  23. 23. Webサイト • 当然なら事業をやる上で必要! • Webサイト構築するならばCMSが必要! • Javaベースが良い(自分でメンテしやすい)! • でもWordPressが無難?! • でもJavaがいい!
  24. 24. Webサイト • quercus: JVMで動くPHP実装! • WordPressも動作可能! • ちょっと触ったけど時間切れで断念
  25. 25. Webサイト • やっぱり無難にApache + WordPressで構築
  26. 26. Webサイト • コンテンツの更新は?! • 11の製品、128のSKU - 手動は無理
  27. 27. Webサイト • 各製品ページはプログラムで生成 Apache Velocity データソース データアクセス wordpress-java HTMLに変換 http://samuraism.com/
  28. 28. 受注 • 確実に受注したい! • ショッピングカートシステム?
  29. 29. 受注 • 実装 - Google Docsのフォーム
  30. 30. Google Docsフォームを使って • 良い点! • 手軽でセキュア(デフォルトでSSL)! • 悪い点! • 見た目がしょぼい! • 条件別のフォームなど実装できない! • 金額計算、自動折り返しメールなどできない
  31. 31. 帳票 • 法人との取引には大事! • 見積書! • 納品書! • 請求書! • 領収書
  32. 32. 帳票 • 当初: Excelで記入、PDF化! • 金額ミス等が時折発生! • めんどくさい
  33. 33. 帳票生成自動化 • iText - JavaからPDF生成するライブラリ! • PDFで出来ることはだいたいできる! • 一からPDFを作るのはめんどくさい
  34. 34. (株)サムライズムにおける帳票生成 • Excelで作る! • PDF化! • Acrobatで読み込む! • フォーム要素埋め込み! • iTextで動的に値を埋め込む fields.setField(key, value);
  35. 35. デモ
  36. 36. iTextで大事なこと • フォームエレメントのflatten : 編集不可に Set keySet = fields.getFields().keySet(); if (fieldsLeftUnflatten != null) { for (String exclude : fieldsLeftUnflatten) { keySet.remove(exclude); } } for (Object keyobj : keySet) { String key = (String) keyobj; stamper.partialFormFlattening(key); } stamper.setFormFlattening(true); stamper.setFreeTextFlattening(true); stamper.close();
  37. 37. 日本で大事なこと • 角印! xxxxx
  38. 38. 日本で大事なこと • 角印 - 帳票をそれらしくするのに必要! • スキャンして白い部分を透過処理! • 朱の部分は幾分透明度を与える
  39. 39. 郵送に備えて • 窓付封筒に宛名が収まる ASKUL - 今村紙工 窓付封筒 長3 横型 100g/m2 白ケント MD-05 1パック(200枚入)! http://www.askul.co.jp/ctg/itemdetail/itemEnlargedImageView/?ctgItemCd=260968
  40. 40. メール送信 • メール「注文承りました。こちらにお振り込み を・・」! • すること! • 製品名、価格、宛先、宛名確認&メール送信! • めんどくさい
  41. 41. メール送信 public class SendPersonalLicenseInvoice { public static void main(String... args) throws UnsupportedEncodingException, MessagingException { String[] columns = "...".split("t"); ! ! ! String endUserName = columns[0]; String email = columns[8]; String sku = columns[2].substring(0, columns[2].indexOf(":")); Price theItem = Price.getPrice(sku); String finalPrice = theItem.getPriceWithComma(); if(null != WordPress.priceOverride.get(theItem.getSku())){ finalPrice = String.valueOf(WordPress.priceOverride.get(theItem.getSku())) +"円"; } String body = String.format(endUserName + "様nn" + "サムライズム山本です。nnご注文ありがとうございます。n" + "代金" + finalPrice + "を以下の口座へお振り込みの上メールにてご連絡ください。n" + String subject = theItem.getTranslated() + " のご注文"; GMail.sendMail(subject, body, "sales@samuraism.com", email, null, "yusuke@samuraism.com"); } }
  42. 42. メール送信を自動化して • 金額・宛名の間違いがなくなった! ! • 今後! • 見積書送付の自動化! • ライセンス送付の自動化
  43. 43. ライセンス発行 • 代理店向けサイトで発行
  44. 44. ライセンス発行 • 発行時の入力項目:! • 顧客情報(名前、住所等々)! • クレジットカード番号! • 売上の記録:! • 法人 - 売掛、個人 - 売上として記録! • 問題: めんどくさい、遅い
  45. 45. ライセンス発行 • Seleniumで自動化 コントロール ライセンス 売上記録
  46. 46. ライセンス発行を自動化して • 圧倒的に楽になった!! • JetBrainsサイト(GWTベース)の自動操縦大変! ! • 今後! • ライセンスの送付まで自動化したい
  47. 47. 消し込み • 消し込み: 売掛金の入金確認、記帳! • やりかた: 売掛と通帳明細の比較! • めんどくさい
  48. 48. 法人向けインターネットバンキング • とあるメガバンク https://bizstation.bk.mufg.jp/service/kankyou.html より
  49. 49. 法人向けインターネットバンキング • とあるメガバンク! • Windowsのみ対応! • 要クライアント証明書! • めんどくさい
  50. 50. 最初:UserAgent偽装でSafariからアクセス
  51. 51. 最初:UserAgent偽装でSafariからアクセス • 手動でポチポチ操作してCSVダウンロード! • めんどくさい
  52. 52. 消し込み • Selenium + Firefoxである程度自動化 コントロール UA偽装してアクセス CSV形式
  53. 53. Seleniumを使って • 銀行口座の明細CSVダウンロードを自動化! • 便利!! • 消し込みはまだ手動! → 振込名義人名を特定できない! • 新規入金の通知(メールやTwitter等)は未実装
  54. 54. Seleniumによる消し込み • 便利! • どこかのタイミングでOSSにします!
  55. 55. 消し込み後 • 記帳! • 通帳の明細を会計ソフトに記入! • 売上、水道光熱費等々仕訳をしながら・・! • めんどくさい
  56. 56. Yayoi4J • 通帳明細CSVを弥生で読み込めるよう変換! • CSVの読み込み: OpenCSV! http://opencsv.sourceforge.net ! • 弥生用CSV形式で書き出し: String.format(); String.format(“"2000",,"","%s","%s","","","%s ",%s,0,"%s","","","%s",%s,0,"%s","","", 0,"","","0","0","no"", parsedDate, 借方勘定科目, tax1, amount ,貸方勘定科目,tax2,amount,摘要);
  57. 57. Yayoi4J • デモ
  58. 58. Yayoi4J • どこかのタイミングでOSSにします!
  59. 59. 経費 - 通信費 • 毎月一度エビデンスをプリント! • オフィスインターネット代金! • 携帯・PHS代金! • WiMAX代金! • めんどくさい
  60. 60. (株)サムライズムを支える技術 wordpress-java
  61. 61. Yayoi4J • デモ
  62. 62. まとめ • 日々の、月々の業務を見直してみましょう! • 無駄な手動作業! ある意味リーンスタートアップ! (コンシエルジュMVP)! • 自動化できる単調作業を探して実装! • 実装付加と手動作業負荷のバランスを考えて
  63. 63. もちろんJavaで!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×