自分のプロフィールページを作っているときに、職業欄で手が止まった。 一言で伝えられる言葉が思いつかないので頭の中を整理するために書いてみる。

そういえば、去年Japan Product Manager Conferenceに行ったのだけど、 Googleの人の発表でSlackのPMの人が 「8年間PMやったけど、いまだに自分がなにをしているのか分からない。」 といっていると聞いて、ちょっと安心したことを思い出した。 (見つけたのでリンクしておく。)

とりあえず、やっていることを書き出してみる。過去1年の作業ログを確認だ。。

マネジメントより

  • 年間予算(売上、経費、利益)の作成
  • 業務目標(売上、品質)の作成
  • 組織体制、人員表の作成
  • 人事評価。各個人の目標のすり合わせ。定期的に1on1。推薦状書いたり。
  • 勤怠管理
  • 採用活動(募集、面談、インターン受入)
  • 稟議書作成(新規取引先や金額が大きいもの)
  • 請求書の処理や検収処理
  • ライセンス等の管理(VMware、SSL証明書、セキュリティソフト)

技術より

  • システムの作成・改修要望に対して実装の方向性を固めてからエンジニアに作成依頼を出す。または自分で作る。(入口をおさえる。)
  • DB設計とかもする。
  • コードレビュー、リリース前の再チェック(出口をおさえる。)
  • ドキュメントがあまりないので、全体像が分るような地図(資料)を作る。
  • コーディングガイドラインを作る
  • 開発環境の改善(wiki、Fess、Git、hipchat)
  • 新しい技術の調査(楽天API、lets encrypt、iOS URL scheme調査、S/MIMEなど、必要になってから調べることが多い)

社外調整

  • サーバー移管に関する調整
  • 役所の入札資料の要件を満たしているかの確認
  • VPN開通や新規システム連動の調整

運用保守

B2Bのサイトがほとんどで、ドメインが20くらいある。 問い合わせがあった場合は回答スピードが要求されることや早めに火消ししたほうが良いものが多いので、自分で対応することも多い。 作業ログのうち4割くらいは問い合わせ対応だった。どうやらシステム関係で困ったら聞く人になっている模様。

  • 障害対応(WEBサーバ、DBサーバ、メール、ネットワーク関係が多い)
  • 年に数回データセンターに入って作業
  • サーバの監視、負荷調査(Zabbix)、空き容量確保したり。
  • カスタマーサポート(お客様や社内のシステム利用部門からの問い合わせ)
    • データメンテナンス 注文データの削除やキャンセル、内容変更 マスタの一括更新(価格、カテゴリ、フラグ、管理コード等の更新)
    • 仕様の確認 更新手順はこれで問題ないかとか、キーワード検索の参照先項目を教えてとか色々。
    • その他 発注データの確認、登録処理したらエラーになったとか、バッチまわしてとか、カートから消えないとか。
    • WEBアプリのパフォーマンス改善
      • 処理の遅い箇所を書き直したり、インデックス貼り直したり。
      • bot対策
  • 不具合対応(Backendより)
    • Segmentation fault調査 gdb入れたり
    • 発注処理のINSERTエラー修正
  • 不具合対応(Frontendより)
    • IE10で真っ白になる
    • Edgeでリダイレクト処理が動かない、表示崩れ
  • データメンテナンス
    • 注文データや仕入先データから統計情報の抽出
    • 過去データの退避
    • $Recycle.Bin削除
    • シーケンス上限チェック
    • 発注件数チェック

見積作成

営業部門や企画部門、お客様からシステム作成・改修依頼がくるので、見積書を作る。要望の確認や打ち合せ、技術的な裏付けをとることも含まれる。去年1年で見積書を107作っていた。。(108じゃなくて良かった。)作業ログのうち4割くらいは見積のためのものだった。この作業がなければもっと色々作れたはず。ちなみに提案依頼書(RFP)なんてものは存在しない。

ISO/ISMS/Pマークの活動

  • 定例委員会、品質会議、分科会
  • 教育資料、教育記録の作成
  • 活動記録の作成
  • 被監査員
  • 外部ブレーン評価

職種についてぐぐってみる

会社によって呼び方や定義が違うことが多いようだった。
Developer vs Programmer vs Software Engineer
Product Manager vs Engineering Manager vs Tech Lead

あとSystem Engineerは和製英語だから使わないほうが良さそう?SE/PGという分け方についても体が拒否反応を起こすので、Programmerとは名乗れない。

higeponさんのブログを読んで Tech LeadとEngineering Managerの中間(ややEngineering Managerより)みたいな気がしてきた。 以下は結構意識していると思う。

  • Product の Launch に責任を持つ
  • Product の Launch 後のメンテナンスに責任を持つ
  • エンジニアを過負荷から守る
  • 「誰がボールを持っているか不明なアイテム」に必ず対処する

あと「なんとかする」。
誰かが「ものづくりではない、再現性のない問題解決である」と言っていた気がする。わりと近いと思う。

Engineering Managerが近い気がしてきた。でもボール拾いしすぎな気がする。 うーん、今の部署がITソリューションの部署なので、その部署の責任者というのが合っているといえば合っている。 ということで、IT Solutions Managerで良いのではないだろうか。

Install

$ gem install sass
$ sass -v
Sass 3.4.23 (Selective Steve)

Partial Sass files

A partial is simply a Sass file named with a leading underscore. You might name it something like _partial.scss. Sass partials are used with the @import directive.

Sass Command

basic

$ sass style.scss:style.css

with watch option

$ sass --watch style:scss:style:css
$ sass --watch main.scss:main.css

Other

.map file

The .map file is a reverse map for the resulting CSS file, showing where each declaration came from in their original SCSS file. They are used be tools like Chrome’s DevTools when you are viewing the resulting web page. https://teamtreehouse.com/community/when-i-type-sass-watch-it-creates-a-maincssmap-file-not-sure-what-that-is

hugo.el

http://www.holgerschurig.de/en/emacs-blog-from-org-to-hugo/

I changed the following parts.

- (setq blog (org-export-as backend t))
+ (setq blog (org-export-as backend))

theme

$ cd themes
$ git clone https://github.com/dldx/hpstr-hugo-theme.git hpstr

write

* Blogging with Org-Mode and Hugo
   :PROPERTIES:
   :TITLE:    Blogging with Org-Mode and Hugo
   :HUGO_TAGS: hugo, emacs
   :HUGO_TOPICS: tech
   :HUGO_FILE: tech/hugo.md
   :HUGO_DATE: [2017-02-09 Thu 21:43]
   :END:
** hugo.el 
    ....

** theme
    ....

export

M-x hugo

check

$ hugo server --theme=hpstr --buildDrafts --watch

http://127.0.0.1:1313

deploy

deploy.sh

#!/bin/bash

rm -rf public/post/*

hugo -t hpstr

cd public

git add -A
git commit -m "Update public files"
git push

Welcome to RubyMotion http://www.rubymotion.com/developer-center/guides/getting-started/

$ sudo motion update

motion –version

Hello World

$ motion create Hello

Sample

https://github.com/HipByte/RubyMotionSamples

Developer Center

http://www.rubymotion.com/developer-center/

http://tutorial.rubymotion.jp/

Rakefile

プロジェクトの設定はRakefileに書くらしい。

パスの設定をしているっぽい。 $:.unshift(“/Library/RubyMotion/lib”)

frameworks

app.frameworks += [‘AVFoundation’] デフォルト値は [“UIKit”, “Foundation”, “CoreGraphics”] です。

ios

UIViewController

microphone input

http://stackoverflow.com/questions/4239073/how-to-listen-to-mic-input-and-analyse-in-real-time

aurioTouch2というサンプルプログラムがある Remote IOというのを使っているらしい。

Core Audio の中にAudio Unitがある。

実機

rake device

コーディングメモ

これでログが出せるらしい。 puts “Hello again!”

Read-Eval-Print-Loop (REPL)

Auto Layout

Visual Format という記法が用意されている RM にはそのVisual Formatをラップした motion-layout という Gem がある

Visual Format

Motion::Layout.new do |layout|
  layout.view self.view
  layout.metrics height: 120
  layout.subviews yellow: @yellowView
  layout.vertical   "[yellow(height)]|"
  layout.horizontal "|[yellow]|"
end

Motion::Layout.new do |layout|
  layout.view @yellowView
  layout.subviews red: @redView,  blue: @blueView
  layout.vertical   "|-[red]-|"
  layout.vertical   "|-[blue]-|"
  layout.horizontal "|-[red]-[blue(==red)]-|"
end

AAA