HIGH OUTPUT MANAGEMENTを読み、今の自分がどのような尺度でシステムエンジニアを評価できるかを試し書き。 結論、やや古めのWebアプリケーションエンジニア・アーキテクトに関する評価表になった。 何か本を読むなり手を動かすなりで知識を取り入れて更新していきたい。
設計者(システムエンジニア)としての指標
- 指標(グランドデザイン)
- 業務領域に関する知見の深さ。
- 様々なミドルウェア・ソフトウェアの特性の把握。
- システムを構築する要素の物理(サービス)的・論理(サービス)的観点の知見。(実例を知れば知っているほどよい)
- 運用時、各アクター(ユーザー、特権ユーザー、ヘルプデスク、エンジニア)がそれぞれできることと権限制御を含めたデザインができる能力。
- 外部システムとの依存関係の構築に関する知見。
- 個人情報やシステム監査など、社会的に要求される仕様に関する知見。
- 指標(詳細デザイン)
Webエンジニア(フロント)の指標
- HTML・CSSデザインに関する知見・習熟度。テンプレ的な配色比率やレイアウト(ex:グリッドレイアウト)に関する知見。(鮮度あり。長めに見て直近5年)
- UI・UX視点での知見。(ex:PC向けサイトをスマホで見るとどうなるか?)
- 素材をベースとした画像加工技術やロゴなどの画像制作技術。
- CSSの命名規則など、中長期に渡るCSSの保守に関する知見。(鮮度あり。長めに見て直近5年)
- JavaScriptの習熟度・DOMなどの機構の理解度。
- SPA(Single Page Application)や各フレームワークに関する習熟度。
- WebAPIの呼び出しなどに関する知見。
- 実装が及ぼす性能・処理速度への影響に関する知見。
- デバッグやプロファイルによるアプリケーションの挙動観測技能。
- ほか特定ケースの技能。
Webエンジニア(バック)の指標
- HTTPプロトコルとWebサーバーの仕組みに関するコンピュータ・サイエンス観点の知識。(リクエスト、レスポンスがそれぞれ何なのか。ブラウザはどう受けるのか)
- データストア(データベースなど)の更新特性に関する知見。
- 認可・認証に関する知見。
- トランザクション設計・エラーハンドリングにおける知見。
- 一般的な脆弱性対策に対する知見。(○○インジェクション、認証認可なしでパラメータ次第で不正操作できてしまうかの検出)
- 実装が及ぼす性能・処理速度への影響に関する知見。
- アプリケーション・サーバーが実稼働したときの物理構成に関する知見。(リバースプロキシやロードバランサ、CDNなど)
- デバッグやプロファイルによるアプリケーションの挙動観測技能。
- ほか特定ケースの技能。
テスト計画者・テスターとしての指標
- 一般的なテスト工程に関する知見。(単体テスト、結合テスト、総合(システム)テストはどんな性質の品質を検証するか?)
- テスト工程において期待されていることや作用の理解。(品質確認、ビジネスとしての品質保証、メンバー間の認識統合など)
- 仕様に適合しているかを検証するテストだけでなく、QA(品質保証)観点でのテストに関する知見があるか。
- テスト自動化における前提・弊害の理解。CI(Continuus Integration)実運用の知見。
- 境界値テスト・最大値・ゼロデータなどの一般的なテスト観点の知識。
- 正常系(想定している仕様に適合したケース)、準正常系(想定していない状態だが正常に稼働すると保証するケース)、異常系(処理継続困難となるケース)の理解。
- 状態を持つ実装(JavaScriptを駆使した動的な機能、スタンドアロンexeによる実装など)における検証の知識。(機能を連続して動かした時や、戻ったときに不正な表示や挙動をとるかの検証)