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

4,555 views
4,359 views

Published on

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,555
On SlideShare
0
From Embeds
0
Number of Embeds
1,294
Actions
Shares
0
Downloads
23
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

リーンスタートアップ 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で!

×