Upgrade to Pro — share decks privately, control downloads, hide ads and more …

内製化にまつわるちょっと技術的なはなし@BizRobo!LAND 2018

Katsuya Ishii
September 12, 2018
74

内製化にまつわるちょっと技術的なはなし@BizRobo!LAND 2018

Katsuya Ishii

September 12, 2018
Tweet

More Decks by Katsuya Ishii

Transcript

  1. 3/45 当社の内製化状況 2年前 半年前 現在 開発者 4人で スタート 内製 絶滅

    内製:9名 外部:3名 年間100業務 10,000時間削減 のロボ作成体制
  2. 6/45 ことば 設計者 開発者 • 業務ヒアリング • 業務ドキュメント化 • As-Isフロー

    • To-Beフロー • ロジック発案 • BizRoboで開発 • テスト 平行検証 • 業務切り替え • 保守 メンテ
  3. [email protected] sagamiya 20/45 内製化の手順 - どう内製化するか 仮説 • 開発工程のすべてが難しいわけではない •

    内製スキルでできる部分が半分以上ある • 内製工程と外製工程に分割できる ⇒できること・できないことをベンチマーク
  4. [email protected] sagamiya 21/45 内製化の手順 - どう内製化するか できる できない できる •

    業務フローを書く できない • フローチャートを書く できる • 業務フローを書く • サンプルを見て再現 できない • フローチャートを書く • リファレンスマニュアル利用 できる • 業務フローを書く • サンプルを見て再現 • テスト できない • フローチャートを書く • リファレンスマニュアル利用 • デバッグ できる • 業務フローを書く • サンプルを見て再現 • テスト • 運用 できない • フローチャートを書く • リファレンスマニュアル利用 • デバッグ • トラブルシューティング
  5. [email protected] sagamiya 22/45 基本的な役割分担 内製メンバー • 業務ヒアリング • 業務フロー作成 •

    業務説明 • パーツ組み立て • テスト・運用切り替え エンジニア • ロジック立案 • 共通部品仕様立案 • 共通部品作成 • デバッグ支援
  6. [email protected] sagamiya 30/45 内製時の役割分担 部品の作成 業務を 再利用可能 な部品 に分解 部品を利用した

    ロボットの組立 ITエンジニア 内製メンバー 分業 内製メンバーの作業から 複雑さの排除が必要
  7. [email protected] sagamiya 33/45 1.部品化を阻む変数スコープ 2.try/catch によるエラー処理 • 再利用可能パーツの前後でパラメータを内部変数に変換 • エラー処理(try/catch)は後処理内に隠蔽

    ⇒ コピペ感覚の組み立てが可能に Data Converter Data Converter 外部変数1 → 入力パラメータ1 外部変数2 → 入力パラメータ2 外部変数3 → 入力パラメータ3 外部変数4 → 入力パラメータ4 エラー処理 出力パラメータ1 → 外部変数A 復帰値 → 外部変数B 異常があればエラー番号をセット して冒頭のTryブロックに飛ばす
  8. [email protected] sagamiya 34/45 3.複雑な条件 例)昨年1年間のデータにおいて • 偶数月にはレポートAを要す • 奇数月にはレポートBを要す •

    四半期末にはレポートCを要す • レポートCがある月にはレポートA、Bは不要 • レポートAがない月にはレポートDを要す
  9. [email protected] sagamiya 35/45 3.制御表 レポートA レポートB レポートC レポートD 1月 ◦

    ◦ 2月 ◦ 3月 ◦ ◦ 4月 ◦ 5月 ◦ ◦ 6月 ◦ ◦ 7月 ◦ ◦ 8月 ◦ 9月 ◦ ◦ 10月 ◦ 11月 ◦ ◦ 12月 ◦ ◦
  10. [email protected] sagamiya 37/45 4.表データの変形 例)ジャーナル レポート 販売月 支店 コード 販売員

    番号 商品 カテ ゴリ 商品 サブカ テゴリ 売 上 数 量 売上 金額 201803 6600 910336 7711 243193 2 21,019 201803 4400 910910 7711 259181 2 22,900 201803 4400 910315 7711 243193 2 22,518 201803 7700 910012 7711 243193 1 9,167 201803 2200 910335 7711 243193 4 12,418 201803 1100 910392 7711 244442 1 20,000 201803 6600 910222 7711 243193 13 114,935 201803 7700 910050 7711 243193 1 11,500 201803 4400 910008 7711 243193 1 10,000 201803 4400 910465 7711 243193 2 21,945 201803 2200 910109 7711 243193 35 365,076 201803 3300 910023 7711 243193 6 58,297 201803 1100 910018 8811 243193 4 37,316 201803 6600 910356 8811 259181 3 53,000 201803 2200 910002 8811 243193 3 39,260
  11. [email protected] sagamiya 38/45 4.表データの変形 SQLなら order by … asc distinct

    left outer join select * from jurnal … オートフィルター を使う手も
  12. [email protected] sagamiya 39/45 4.表データの変形 SQLなら order by … asc distinct

    left outer join select * from jurnal … オートフィルター を使う手も どちらも、非エンジニアには難しい
  13. 41/45 5.レビューの難しさ 一般的なソースコード • 学習コストが高く、難易度が高い • 一度慣れてしまえば生産性は高い BizRobo • プログラミング言語の習得必要なし

    • 習熟しても生産性は上がらない • プログラムの見通しが悪い この例では1ブロックの内容確認に120回のクリックを要する
  14. [email protected] sagamiya 43/45 その他 OCRパーツ クレジットカード管理ASPなど セキュリティ要件が厳しいもの ↓ Webアプリケーションでも 表示されているデータをロボットに取り出せない

    web画面を キャプチャ ⇒画像で保存 Call REST Web Serviceで GoogleAPI呼出し • 画像ファイル • 文字認識する矩形の座標 • 課金キー を渡す 文字列 取り出し Extract Screenshot