No one sees the real me

クラウドサービス基盤 運用SE

test

[root@naoki105 sagyo2]# for i in {1..10} ; do uptime ; sleep 2; done | while read LINE ; do echo $LINE | awk '{ print $1,"----",$10"(1m)",$11"(5m)",$12"(15m)" }' ; done
09:15:49 ---- 0.06,(1m) 0.03,(5m) 0.00(15m)
09:15:51 ---- 0.05,(1m) 0.02,(5m) 0.00(15m)
09:15:53 ---- 0.05,(1m) 0.02,(5m) 0.00(15m)
09:15:55 ---- 0.05,(1m) 0.02,(5m) 0.00(15m)
09:15:57 ---- 0.05,(1m) 0.02,(5m) 0.00(15m)
09:15:59 ---- 0.05,(1m) 0.02,(5m) 0.00(15m)
09:16:01 ---- 0.05,(1m) 0.02,(5m) 0.00(15m)
09:16:03 ---- 0.05,(1m) 0.02,(5m) 0.00(15m)
09:16:05 ---- 0.04,(1m) 0.02,(5m) 0.00(15m)
09:16:07 ---- 0.04,(1m) 0.02,(5m) 0.00(15m)
[root@naoki105 sagyo2]#
[root@naoki105 sagyo2]# for i in {1..1000000} ; do uptime  ;sleep 2  ; done | while read LINE ; do echo $LINE | awk '{ print $1,$10,$11,$12 }' ; done
09:22:36 1.16, 0.38, 0.13
09:22:39 1.16, 0.38, 0.13
09:22:41 1.31, 0.42, 0.14
09:22:43 1.31, 0.42, 0.14
09:22:45 1.31, 0.42, 0.14
09:22:47 1.52, 0.48, 0.16
09:22:49 1.52, 0.48, 0.16
09:22:51 1.64, 0.52, 0.18
09:22:53 1.64, 0.52, 0.18
09:22:55 1.75, 0.56, 0.19
09:22:57 1.75, 0.56, 0.19
09:22:59 1.75, 0.56, 0.19
09:23:01 1.85, 0.60, 0.21
09:23:03 1.85, 0.60, 0.21
^C
[root@naoki105 sagyo2]#

2017.上期振り返り

■前進したこと/学んだこと

[思考面]

 ・やれること(特に時間的制約、スキル・能力、立場)に限りがある
  -すべての依頼に対応できるわけではない

 ・その中でうまくやる
  -他派遣会社メンバーが適切な動きをしてくれない
   -自分が言ってもやってくれない = 自分の業務負荷があがってしまった
    -同課の社員に一言掛け、社員から指示を出してもらったところ動いてくれた
    -別部署との(案件にもよるが)フロントに立った以上、表現は悪いがうまく社員を使って派遣を動かす

 ・自社研修
  コーピング研修の内容が役に立った
   メンタルリハーサル(MR)≒イメージトレーニング
   事前に、やっておくのとやっておかないのでは雲泥の差があった
   感情を自分のコントロール下に置く、というのは課題継続中

[技術面]

 ・監視実装の理解が深まった
  -統合管理ツール(Zabbix)見よう見まねだが狙った監視は実装できる
   (別課が監視専門だが仲の良い方がいるのでわからなかったら聞きにいける)

 ・仮想化技術
  -NSX 技術、バージョン毎に機能の差が大きい、とはいえこれまでのvCNSより遥かに優秀
   機能一覧や、連携、NSX Manager 上で管理できたり、xml で情報を保管している点など技術的な面が理解できた
  -vRealize Operations Manager
   -全機器の負荷状況や、障害予兆を検知できる万能ツール、大元のvCenterやストレージ機器を接続
    させるだけで配下の全VMやLUN情報を一括で拾ってくれる&監視実装が非常にしやすかった
   (下期)vRealize LogInsight を導入するということで、vRopsと組み合わせてさらなる自動化が期待できる

 ・スクリプトスキル
  -肝となるsyslogサーバ内の実装
   複数の機器ログを集約しているためセキュリティ的に甘くできないと考えている
   →イベントログの監視の際の工夫に手こずった、結果的にハードリンクとcronで対処
  -Windowsだがタスクマネージャーの実装とか(これは大した話しではない)
  -まだまだスクリプトスキルが足りない=狙った実装が即席で出来ない

 ・ITサービスマネジメント(ITSM)の大枠
  -ITILv3は若い頃、暗記で受かってしまったが、今読み返すと実務とリンクしてくる
  -継続中

■足りない部分

[対組織、対人]

 自分のことしか考えてこなかった人が、他人に教えるだの他人のために何かすることが出来るだろうか?
 →技術は自分で学べば身につき成長をすぐ感じられる、対人は一朝一夕で成長を感じることが出来ない

 現仕事において、
 組織、チームで動く、必要性はあるが直接的ではない=全く不要とはいかないが優先度は下がる
 ex. 他社メンバー育成、監視チーム依頼の切り分け手順書修正、ナレッジ化=要は他人のためになること

 自分のやりたいこととは異なる、ただし自身の成長のためにも必要であることは頭ではわかっている
 現在は積極的にはやっていない(やらない)
 ↓↓↓
 自分のことしか考えていない、自分自身の能力向上のみ考えている、
 これまではその結果が就業先業務と合致していたため業務が進められてきた
 別課からの信用?からか同課の人材不足からか個人的にお願いされるケースが増えた

 それは駄目なこと?

 環境の要因も一理在る
  -上司・部下の概念が無いことで注意や助言がない=自分のやりたいようにやってきた

■下期に向けた課題

[技術]
 #今やらなければ困ることを最優先
 -Comptia Cloud+ を利用して全体概要を再認識 (10/09 受験予定)
 -最低限のNW知識(CCNAを再取得しようと思う)
 -ストレージ基礎(スーパーブロックだの何だのイメージが沸き辛い)
 -これまでの知識と、実務を頭の中でリンクさせる

 #上記が進んだ上で+αとしてやりたいこと
 ・シェルスクリプト応用+シェル芸
 ・FP学習

 #仮想化技術
 -実務のみで十分、補足があれば書籍で補う

[その他]
 ・運動を続ける(継続中)
 ・ストレス対処方

オペミス・ヒヤリハットについて

エンジニアなら知っておきたい障害報告&再発防止策の考え方

オペミスに関して個人的な考え

・気持ちに訴えかけるだけでは同じミスは再発する
 →ミスを恥じず、堂々と共有し合える文化を作る、出来ないなら自分のミスをさらけ出す
・規律を厳しくすればするほど、変に恐怖心を煽り逆にオペミスは増える
・些細なヒヤリハットに対しても、なぜなぜ分析を行うクセをつける
 →共有し合うのが望ましい、ナレッジが企業の財産になる
・作業内容の理解、誤った際の影響度合いを考えながら手を動かす
 →正直これに尽きる
・顧客影響の無い、内々でリカバリがきくオペミスなんてミスじゃない、反省して終わり、引きずらない
・オペミスした本人を責めるような職場ならお察し企業だと思う

下請け企業がオペミスした場合

・下請け管理職の仕事、報告書提出とあとは元請けとのネゴ
 →元請けの事業がでかければでかいほど、大きく取り上げらてしまうが、
  個人的には異動にさせてもらってちゃら
リスクヘッジ
・大事なのは本人のメンタル

総合として

・オペミスが怖くて運用なんてやってられるか(^ω^ )
・慎重になる局面と、そこまで切り詰める必要が無い局面とを見極めないと、余計な時間を食って作業が進まない
 →判断できないうちは聞いて良いと思うが、自分で決断・判断することが大事

2017年01月 面談用に作った資料…

わたしは半年間何をやっていたのだろう、何も変わっちゃいない →自分ひとりでは捌ききれない

社内の方の発言コピペ(↓他人の言葉であり今後自分版を書く)

運用は何のためにするのか意識は合っているか

  • サービスを継続するための取り組み
    – 機能の修正・改善
    – バグの修正
    – 性能の改善
    – OS/ミドルウェアやアプリケーションのバージョンアップ

開発から運用の流れ

  • 要求の取りまとめ
    – サービス側から (新機能、外部サービスとの連携)
    – 開発側から (保守性の向上、新しいミドルウェアへの対応)
    – 運用側から (障害頻度の軽減、性能向上、可視化)
  • 開発項目の確定と優先度付け
  • リリース時期を確定
  • 開発、テスト
  • リリース

システムの運用は何から始めるか (開発から引き渡された後)

  • サービスの把握
  • 構成の把握 (ハードウェア(仮想)、OS、ミドルウェア、サービス、アプリケーション)
  • 通信の把握 (ネットワークセグメント、IPアドレスプロトコル、データ)
  • リソースの把握 (CPU、メモリ、ディスク、プロセス、ネットワーク)
  • 冗長性の把握 (想定する障害や高負荷、対策)
  • アクセス制御や権限の把握 (ユーザ、グループ、秘密鍵/公開鍵証明書、ドメイン名、期限)
  • ユーザ管理 (追加、削除)
  • 外部接続 (他サービス、アクセスキー、期限)
  • ログ (アクセスログ、エラーログ、アプリケーションログ、ローテーション、保持期間)
  • ベンダー情報 (サポートサイト、連絡窓口、ライセンス)
  • 構成管理 (上記全て)

環境

  • 商用環境
  • ステージング環境
  • 開発環境
  • 環境差分の把握
  • リリース手順
    – リリース対象を確定
    – ステージング環境への配置、テスト
    – 不具合の修正、再配置、テスト
    – 商用環境への反映

監視

  • 何の情報を取得するために監視するか
  • 障害が発生したときに何をするか
  • 監視設定は何を契機として見直すか

ログ

  • ログの種類
    – OSのログ
    – サービスのログ
    ミドルウェアのログ
  • ログレベル (緊急度、詳細度)
  • 分析
    – 入力、出力
    – 処理の前後関係
    – 頻度
    – エラーコード
    – キーワードでの絞り込み – 統計的解析

DB

  • バックアップ、リストア/リカバリ
  • パフォーマンスチューニング
  • リソース監視
  • 権限管理 (ユーザ、パスワード、権限付与、権限剥奪)
  • アクセス制御 (DB、スキーマ、表)
  • 初期化パラメータ
  • ログ

ベンダー情報の追跡

  • バージョンアップ情報 (新機能、削除された機能、互換性)
  • 製品のロードマップ (チケットシステム、公開されたバグ情報、ソースコードの履歴管理情報)
  • 組織としての安定性 (買収、解散、放置)

システムの更新

  • サービスへの影響を把握 (停止、縮退、想定時間)
  • 更新対象を把握 (サーバ、ネットワーク、設定、データ)
  • 作業に影響する監視の抑止
  • 更新作業を実施
  • 監視の再開
  • 構成管理への反映

インシデント管理 (障害からの回復、サービス要求への対応)

  • 既知の障害かどうかの判断
  • 脆弱性の分析と対策
  • ベンダーへの問い合わせ
  • 対応履歴の管理
  • データの受け渡しと消去

レポート

  • サービスからの要求
    – バッチで作成して提供
    – 要求を受けて随時作成して提供
  • 運用レポート
    – サービスの利用状況
    – リソースの利用状況
    – インシデントの発生状況
    稼働率
    – ログ解析
    – 状況の把握から
    — 運用コストの見直し
    — 設備投資の見直し
    — 開発項目の優先度の変更

以上を踏まえて、普段何をするか (運用メンバーの1日)

  • 日次
  • 週次
  • 月次

他にいい方法ないかな?

[root@naoki105 20170807]# cat a
-----mon1-----

192.168.0.1
192.168.11.1

-----mon2-----

192.168.0.2
192.168.11.2

-----mon3-----

192.168.0.3
192.168.11.3
[root@naoki105 20170807]#
[root@naoki105 20170807]# csplit a /^-----.*/ {*} | for i in `ls -ltr xx* | awk '{ print $9}' | sort -n` ; do paste -d, -s $i ; done

-----mon1-----,,192.168.0.1,192.168.11.1,
-----mon2-----,,192.168.0.2,192.168.11.2,
-----mon3-----,,192.168.0.3,192.168.11.3
[root@naoki105 20170807]#
[root@naoki105 20170807]#

体調不良の数々(仮病含む)

2015年1月~2017年8月31日

日時 種別 日数 理由
2015/2/13 欠勤 1日 体調不良
2015/4/9 欠勤 1日 体調不良
2015/4/21 欠勤 1日 体調不良
2015/5/28 欠勤 1日 体調不良
2015/6/12 欠勤 1日 体調不良
2015/7/24 午前半休 0.5日 体調不良
2015/7/31 有給休暇 1日 体調不良
2015/10/15 午前半休 0.5日 体調不良(すいません)
2015/10/21 有給休暇 1日 体調不良
2015/10/23 午前半休 0.5日 体調不良
2015/12/3 欠勤 1日 体調不良
2015/12/11 欠勤 1日 体調不良
2016/1/21 欠勤 1日 体調不良
2016/6/22 有給休暇 1日 体調不良
2016/6/24 有給休暇 1日 体調不良(メモ:偏頭痛)
2016/8/4 午前半休 0.5日 腹痛のため午前半休
2016/9/28 有給休暇 1日 体調不良
2016/11/15 有給休暇 1日 体調不良
2017/2/22 午前半休 0.5日 体調不良のため
2017/2/28 午前半休 0.5日 体調不良のため
2017/3/29 有給休暇 1日 通院のため
2017/4/13 午前半休 0.5日 体調不良
2017/4/21 有給休暇 1日 体調不良
2017/5/9 有給休暇 1日 体調不良
2017/6/30 有給休暇 1日 体調不良
2017/8/25 有給休暇 1日 病院

[2017/08/24]初てんかん発作 [27歳9ヵ月]

<事象>
2017/08/24 23:30頃
自宅アパート一室で
てんかん発作を起こし意識を失い、救急搬送された
08/25 1日入院し退院

<同居している彼女の証言>
・白眼を剥き、口から泡を出していた
・頭部がガクガクと痙攣していた
・呼びかけると眼を開き、その後すぐ眼を閉じた

<自身の記憶>
・救急隊員の声が聞こえたが何の話しかは記憶にない
・異常なほどの吐き気があった
・熱がいきなり出始めた

<検査>
・CT
・脳波検査
・血液検査
→すべて異常なし

<処置>
・点滴(水分補給)
(・看護)

<原因>
複数の要因が重なったことで発症したと考える
・第一は、睡眠不足
 3~4時間程度の睡眠が1~2週続いていた
・第二は、過労
 脳が活動状態で休まらなかった(≒ストレス負荷)
・第三は、自己要因
 栄養不足/運動不足
 数年間運動は皆無、基礎体力がない
 食事も不規則で適当

<対策>
・睡眠時間を意識して確保する
・てんかん発作防止で薬を飲む
 →副作用があるので続くか不明
・意識して残業を抑止する(20:00、遅くても21:00を目途にする)
・食べるものを意識する
 →糖質、甘いものを避ける、缶コーヒーの量を減らす、食べ方
・上記が担保できてから運動不足を解消する活動

<所感>
・生まれて初めてのことでびびった
・目撃して119してくれた彼女はもっとびびったと思う
・ストレス負荷は自覚無し、睡眠不足のみ自覚有り
 →睡眠不足が続く≒脳が休まっていない、脳細胞?

<精神科医の話し>
・患者の中にも少なからず事例有り、検査では異常なくても起きる
・リラックスの重要性、脳の興奮を抑える
・一に睡眠、二に栄養、三に運動

お遊び1

[root@naoki105 ~]# for i in {1..10} ; do uptime ; sleep 2; done | while read LINE ; do echo $LINE | awk '{ print $1,"----",$10"(1m)",$11"(5m)",$12"(15m)" }' ; done
10:32:49 ---- 2.53,(1m) 0.70,(5m) 0.24(15m)
10:32:51 ---- 2.53,(1m) 0.70,(5m) 0.24(15m)
10:32:53 ---- 2.57,(1m) 0.74,(5m) 0.25(15m)
10:32:55 ---- 2.57,(1m) 0.74,(5m) 0.25(15m)
10:32:57 ---- 2.60,(1m) 0.78,(5m) 0.27(15m)
10:33:00 ---- 2.60,(1m) 0.78,(5m) 0.27(15m)
10:33:02 ---- 2.72,(1m) 0.83,(5m) 0.29(15m)
10:33:04 ---- 2.72,(1m) 0.83,(5m) 0.29(15m)
10:33:06 ---- 2.72,(1m) 0.83,(5m) 0.29(15m)
10:33:08 ---- 2.90,(1m) 0.90,(5m) 0.31(15m)
[root@naoki105 ~]#

メモリ負荷メモ

① 負荷コマンド

[root@naoki105 ~]# /dev/null < $(yes)

② ①実行後

[root@naoki105 0816]# vmstat 2
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 398444   5544  31156    0    1     1     2   38    1  0  0 100  0  0
 1  0      0 198276   5544  31156    0    0     0     0 1015 50072 72 28  0  0  0
 1  2  30500  63228    604   7484    0 15250     2 15250  992 44311 73 27  0  1  0
 3  1 162216  65468    456   5180    0 65692   256 65694  691 24133 39 19  0 41  0
 1  1 319128  63024    144   4724    0 78454    42 78454  991 37973 60 23  0 17  0
 0  3 508924  49216    144   4700    0 95062     0 95062 1167 44649 71 28  0  1  0
 9  1 574460  71460    144   5924   32 32770   630 32770  475 12407 50 36  0 14  0
 4  0 617280  49228     76   5636    0 21412   104 21420  787 33117 73 27  0  0  0
 3  0 693684  53428     76   5672    0 38202     0 38202  600 16031 57 40  0  3  0
 3  0 768284  61584     76   5628    0 37300     0 37300  539 14657 48 35  0 17  0
 2  0 820956  50084     76   5628  344 26384   344 26384  480 14770 60 37  0  4  0
 4  0 874660  49188     76   5660    0 26852     0 26852  420 11574 54 32  0 15  0
 5  4 922060  49228     76   5660   32 23696    32 23696  117 2326  8  7  0 85  0
14  2 981336  63416     76   5540   16 29646   130 29646  289 3792 20 45  0 35  0
 7  0 1018664  51480     76   6708  106 18688   702 18688  731 28244 69 29  0  2  0
12  1 1099972  53408     88   6740   16 40656    22 40656  495 10852 57 43  0  0  0
 3  2 1204784  65844    176   6348  592 52966   636 52966  505 13908 60 38  0  2  0
 1  0 1211648  66380    304   6732   48 3478   392  3478  551 18090 63 34  0  3  0
 3  0 1270168  53688    436   6496  112 29328   296 29328  544 17567 61 35  0  4  0
 7  0 1330900  48964    436   6520   16 30432    16 30432  579 14953 60 40  0  0  0
 6  0 1413192  64868    436   5824    0 41146     0 41146  609 14605 60 40  0  0  0
^C
[root@naoki105 0816]#
[root@naoki105 0816]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        183        796          0          1         14
-/+ buffers/cache:        168        812
Swap:         1983        122       1861
[root@naoki105 0816]#

①をとめたあともswpd は残り続ける

[root@naoki105 0816]# vmstat 2
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 125380 815796   1836  14416    0    3     1     4   38    3  0  0 100  0  0
^C

② swapを無効化にする

[root@naoki105 ~]# swapoff -a
[root@naoki105 ~]#

③ ②実行後

[root@naoki105 0816]# free -m
             total       used       free     shared    buffers     cached
Mem:           980        308        671          2          2         21
-/+ buffers/cache:        284        695
Swap:            0          0          0
[root@naoki105 0816]#
[root@naoki105 0816]# vmstat 2
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 688216   2348  22028    0    3     1     4   38    3  0  0 100  0  0
 0  0      0 688160   2348  22028    0    0     0     0   46   82  0  1 99  0  0
^C
[root@naoki105 0816]#

④ swap有効に戻す

[root@naoki105 ~]# swapon -a
[root@naoki105 ~]#

シェル1

[root@naoki105 0816]# cat ip_sam
255.255.255.255
999.999.999.999
111.111.000.111
000.000.000.111
111.111.111.111
[root@naoki105 0816]#
[root@naoki105 0816]# cat ip_sam | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | while read line ; do echo $line | grep -v ^000 ; done | tee result
255.255.255.255
999.999.999.999
111.111.000.111
111.111.111.111
[root@naoki105 0816]#
[root@naoki105 0816]# diff ip_sam result
4d3
< 000.000.000.111
[root@naoki105 0816]#

CPU1

CPU負荷を掛ける

↓ 手軽い

# yes | tac

↓ 足りないならこんな感じに。killする必要ない手軽感

#for i in seq 1 100 ; do yes > /dev/null ; done

[root@localhost mariadb]# vmstat 2
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
12  0      0 120916 128688 421664    0    0     0     0 1025  645 100  1  0  0  0
12  0      0 120916 128688 421664    0    0     0     0 1019  632 99  1  0  0  0
12  0      0 120916 128688 421664    0    0     0     0 1019  622 99  1  0  0  0
12  0      0 120916 128688 421664    0    0     0     0 1024  647 100  1  0  0  0
13  0      0 120916 128692 421664    0    0     0     6 1012  646 100  1  0  0  0
13  0      0 120916 128692 421664    0    0     0     0 1010  637 99  1  0  0  0
13  0      0 120916 128692 421664    0    0     0     0 1025  665 99  1  0  0  0
 1  0      0 122968 128692 421708    0    0    22     0  322  258 29  1 71  0  0
 0  0      0 122968 128692 421708    0    0     0     0   58   93  0  1 100  0  0
 0  0      0 122968 128692 421708    0    0     0     0   41   76  1  0 100  0  0
 0  0      0 123108 128696 421708    0    0     0     6   56   84  0  2 98  0  0
 0  0      0 123108 128696 421708    0    0     0     0   41   75  0  0 100  0  0
 0  0      0 123108 128696 421708    0    0     0     0   39   69  0  1 100  0  0
 0  0      0 123124 128696 421708    0    0     0     0   40   72  0  0 100  0  0
^C
[root@localhost mariadb]#

↓ (メモ)Diks I/O 確認 vmstat -d 2

grep -o -P

[root@naoki105 0816]# grep -oP "(?<=「).+(?=」)" samplist
aiueookami
matane
[root@naoki105 0816]# cat samplist
「aiueookami」


「matane」

[root@naoki105 0816]# cat sam3
[naoki]

        [yuuka]

--------------------------------------
[kento]
[root@naoki105 0816]#

結果

[root@naoki105 0816]# grep -oP '(?<=\[).+(?=\])' sam3
naoki
yuuka
kento
[root@naoki105 0816]#
``
  • grep -oP “(?<=[).+(?=])” hogehoge *

UP

出来ないから、やらない、任されない

なら、いつ出来るようになるのか

半年後?1年後?3年後? できないから、やらないっていってたら一生できないですは

・追い込まれないと動かない
・他の人がやってくれる
・そもそも追い込まれない環境
・そもそも任されない


いつになっても育たない

成長したい・変わりたい・努力をするにあたって最も弊害となる壁は、
他者の自分に対する批判

→必ず邪魔が入る(生意気だの、意識高い系だの、嘲笑れたり) →これを乗り越えなければ、現状のまま
→他人の目を気にしないようにする、は不可能
 →他人の批判的な言動を受け入れつつ、自分のやり方を貫く




ポイント

  1. 能動的に動けているか
  2. +α(120%)のアウトプットを意識しているか
  3. できる他者と比較していないか(劣等感を感じていないか、己の実力を卑下する必要は無い)
  4. 己に嘘をついていないか
  5. 今自分が出来ないスキルを自覚しているか、出来るようになりたいと思うのか
  6. 他人が自分に求めるレベルを達成して満足していないか

挫折のレベルが高ければ高いほど、乗り越えたときの自分は強い
失敗するなら大失敗、大泣きして数ヶ月休んで、辞表だすぐらいのレベルで
自分を追い込んで、反省して、猛勉強して、実践して、その先に己の成長が有るのではないか

己がそれでいいと思うなら、他者が何と言おうと関係ない
己がエンジニアと思うならば、堂々とエンジニアと名乗ればいいように
己の評価も他人が決めることではない
己が決めること


・・・技術スキル云々以前の話し、わたしの課題