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

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

Upload: yusuke-yamamoto

Post on 17-Dec-2014

3.469 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

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

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

#ccc_h4

Page 2: リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
Page 3: リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4

「日本でもっと普及させたくない?」!

「代理店よろしく」!

「・・・はい?」

2012年9月

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

.。oO

代理店!

↓!商品を右から左!

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

うまくいかなければやめればいい

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

x

2012年12月 代理店契約締結

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

2013年2月 営業開始

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

0

3

5

8

10

2月

発行ライセンス数 受注数

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

0

50

100

150

200

2月 3月

発行ライセンス数 受注数

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

0

80

160

240

320

2月 3月 4月 5月 6月 7月 8月 9月 10月

発行ライセンス数 受注数

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

.。oO!

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

受注

ライセンス発行

請求

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

顕在化するリスク!

• キャッシュフロー!

• 為替リスク!

• 回収リスク

.。oO!

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

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

気をつけてきたこと• 小さく始める!

• システム化を可能な限り「しない」!

• できる限り手抜き

Page 13: リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4
Page 14: リーンスタートアップ x Java #jjug #jjug_ccc #ccc_h4

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

• 価値仮説!

• 成長仮説!

• 構築 - 計測 - 学習!

• A / Bテスト!

• ピボット

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

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

• 価値仮説!

• 成長仮説!

• 構築 - 計測 - 学習!

• A / Bテスト!

• ピボット

• JetBrainsの製品!

• 販売フロー

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

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

• 価値仮説!

• 成長仮説!

• 構築 - 計測 - 学習!

• A / Bテスト!

• ピボット

• 日本で需要あるはず!

• 日本語!

• 日本円、銀行振込!

• お値頃

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

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

• 価値仮説!

• 成長仮説!

• 構築 - 計測 - 学習!

• A / Bテスト!

• ピボット

• マーケットサイズ!

→デベロッパ数

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

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

• 価値仮説!

• 成長仮説!

• 構築 - 計測 - 学習!

• A / Bテスト!

• ピボット

• あとで

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

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

• 価値仮説!

• 成長仮説!

• 構築 - 計測 - 学習!

• A / Bテスト!

• ピボット

• キャンペーン!

• 販売方法

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

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

• 価値仮説!

• 成長仮説!

• 構築 - 計測 - 学習!

• A / Bテスト!

• ピボット

• 生きていけない!

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

• JetBrains Japan設立

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

システム化・自動化の目安• 基本はコンシエルジュMVPで提供!

• 自動化・システム化は!

• 間違いを起こした時!

• 作業負荷が高いと感じた時

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

受注

ライセンス発行

請求

代理店の仕事(想像)

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

代理店の仕事(実態)

見積 受注 ライセンス発行

記帳 消し込み

請求書送付送金

資金繰りプロモーション

価格交渉

早期一括返済

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

(株)サムライズムを支える技術

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

Webサイト• 当然なら事業をやる上で必要!

• Webサイト構築するならばCMSが必要!

• Javaベースが良い(自分でメンテしやすい)!

• でもWordPressが無難?!

• でもJavaがいい!

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

Webサイト

• quercus: JVMで動くPHP実装!

• WordPressも動作可能!

• ちょっと触ったけど時間切れで断念

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

Webサイト• やっぱり無難にApache + WordPressで構築

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

Webサイト• コンテンツの更新は?!

• 11の製品、128のSKU - 手動は無理

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

Webサイト• 各製品ページはプログラムで生成

wordpress-java

データソース データアクセス HTMLに変換Apache Velocity

http://samuraism.com/

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

受注• 確実に受注したい!

• ショッピングカートシステム?

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

受注• 実装 - Google Docsのフォーム

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

Google Docsフォームを使って• 良い点!

• 手軽でセキュア(デフォルトでSSL)!

• 悪い点!

• 見た目がしょぼい!

• 条件別のフォームなど実装できない!

• 金額計算、自動折り返しメールなどできない

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

帳票• 法人との取引には大事!

• 見積書!

• 納品書!

• 請求書!

• 領収書

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

帳票• 当初: Excelで記入、PDF化!

• 金額ミス等が時折発生!

• めんどくさい

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

帳票生成自動化• iText - JavaからPDF生成するライブラリ!

• PDFで出来ることはだいたいできる!

• 一からPDFを作るのはめんどくさい

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

(株)サムライズムにおける帳票生成• Excelで作る!

• PDF化!

• Acrobatで読み込む!

• フォーム要素埋め込み!

• iTextで動的に値を埋め込むfields.setField(key, value);

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

デモ

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

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();

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

日本で大事なこと• 角印!

xxxxx

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

日本で大事なこと• 角印 - 帳票をそれらしくするのに必要!

• スキャンして白い部分を透過処理!

• 朱の部分は幾分透明度を与える

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

郵送に備えて• 窓付封筒に宛名が収まる

ASKUL - 今村紙工 窓付封筒 長3 横型 100g/m2 白ケント MD-05 1パック(200枚入)!http://www.askul.co.jp/ctg/itemdetail/itemEnlargedImageView/?ctgItemCd=260968

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

メール送信• メール「注文承りました。こちらにお振り込みを・・」!

• すること!

• 製品名、価格、宛先、宛名確認&メール送信!

• めんどくさい

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

メール送信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 + "様\n\n" + "サムライズム山本です。\n\nご注文ありがとうございます。\n" + "代金" + finalPrice + "を以下の口座へお振り込みの上メールにてご連絡ください。\n" +

String subject = theItem.getTranslated() + " のご注文"; GMail.sendMail(subject, body, "[email protected]", email, null, "[email protected]"); } }

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

メール送信を自動化して• 金額・宛名の間違いがなくなった!

!

• 今後!

• 見積書送付の自動化!

• ライセンス送付の自動化

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

ライセンス発行• 代理店向けサイトで発行

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

ライセンス発行• 発行時の入力項目:!

• 顧客情報(名前、住所等々)!

• クレジットカード番号!

• 売上の記録:!

• 法人 - 売掛、個人 - 売上として記録!

• 問題: めんどくさい、遅い

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

ライセンス発行• Seleniumで自動化

コントロール ライセンス

売上記録

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

ライセンス発行を自動化して• 圧倒的に楽になった!!

• JetBrainsサイト(GWTベース)の自動操縦大変!

!

• 今後!

• ライセンスの送付まで自動化したい

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

消し込み• 消し込み: 売掛金の入金確認、記帳!

• やりかた: 売掛と通帳明細の比較!

• めんどくさい

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

法人向けインターネットバンキング• とあるメガバンク

https://bizstation.bk.mufg.jp/service/kankyou.html より

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

法人向けインターネットバンキング• とあるメガバンク!

• Windowsのみ対応!

• 要クライアント証明書!

• めんどくさい

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

最初:UserAgent偽装でSafariからアクセス

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

最初:UserAgent偽装でSafariからアクセス• 手動でポチポチ操作してCSVダウンロード!

• めんどくさい

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

消し込み• Selenium + Firefoxである程度自動化

コントロール UA偽装してアクセス CSV形式

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

Seleniumを使って• 銀行口座の明細CSVダウンロードを自動化!

• 便利!!

• 消し込みはまだ手動!

→ 振込名義人名を特定できない!

• 新規入金の通知(メールやTwitter等)は未実装

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

Seleniumによる消し込み• 便利!

• どこかのタイミングでOSSにします!

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

消し込み後• 記帳!

• 通帳の明細を会計ソフトに記入!

• 売上、水道光熱費等々仕訳をしながら・・!

• めんどくさい

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

Yayoi4J• 通帳明細CSVを弥生で読み込めるよう変換!

• CSVの読み込み: OpenCSV!

!

• 弥生用CSV形式で書き出し: String.format();

http://opencsv.sourceforge.net

String.format(“\"2000\",,\"\",\"%s\",\"%s\",\"\",\"\",\"%s\",%s,0,\"%s\",\"\",\"\",\"%s\",%s,0,\"%s\",\"\",\"\",0,\"\",\"\",\"0\",\"0\",\"no\"", parsedDate, 借方勘定科目, tax1, amount ,貸方勘定科目,tax2,amount,摘要);

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

Yayoi4J• デモ

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

Yayoi4J• どこかのタイミングでOSSにします!

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

経費 - 通信費• 毎月一度エビデンスをプリント!

• オフィスインターネット代金!

• 携帯・PHS代金!

• WiMAX代金!

• めんどくさい

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

(株)サムライズムを支える技術

wordpress-java

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

Yayoi4J• デモ

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

まとめ• 日々の、月々の業務を見直してみましょう!

• 無駄な手動作業!

ある意味リーンスタートアップ!

(コンシエルジュMVP)!

• 自動化できる単調作業を探して実装!

• 実装付加と手動作業負荷のバランスを考えて

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

もちろんJavaで!