交流の多い休日
昨日は会社の有志でもくもく会(物理)というか、休日に外で集まってなんかしようみたいな会の初回をやった
数人だったけど、休みの日に会うのはなんか不思議な感じで、自社の業務に限らないいろんな話ができたなと
その後はまたべつの会社の人とライブに
the telephones 活動再開してよかったね☺️📞
何でもないことから価値を見出してそれを展開して世の中が良くなっていけば良いな
ラフな集まりの会話も、みんなは話しててくれて良いのでそこから何かきっかけとかできそうな事をピックアップしていく、のような事がやってみたい
どう残して共有するか、とそれをTodoに起こすのが課題だけど、まずはやってみる
昨日も楽しかった
感情に浸る
昨日はお休み
金夜に実家に帰って昼寝から大学時代からお世話になっている美容師さんのところへ
実家では、そろそろ家を買うとか住宅ローンの年数がどうとかいう話や祖父の体調の話をされ、そういう歳だよな、と段々と年齢を重ねることを感じる😑
とはいえ、あまり考えることもないのでありがたい
美容室では、たまたま大学の頃の友達が同じ時間に予約をしているというサプライズ
俺が先に予約していて、後からたまたま同じ頃に予約しようとした友人が、美容師さんと企んで驚かせたかったらしい
久々なので話も盛り上がり、そこでもその友達が結婚するとか、あの頃の友達今どうなってる?というような話を…
夜は学芸大学の寿司 新田中に初めて行った
回らないお寿司は数えるほどしか行った事がなかったのでこれもとても良い経験だったしおいしかった
カウンターのお寿司が4,000円で食べ放題! 都立大の「新田中」が素敵すぎた(http%3A%2F%2Fr.gnavi.co.jp%2Fg-interview%2Fentry%2F2127)
平日のドタバタがのんびりした雰囲気で癒された1日だった
昨日も楽しかった
バグ改修によるバグ
昨日は掛け持ち案件のプログラムレビューと結合テスト支援
(今は複数案件を掛け持ちしてる)
今まで見てたプログラムにバグがあったというので、どう直したのかなと見てみた
最初のバグは、TO_DATEでエラーになるというもの
あるあるだけど、文字型で日付値、年月値入る項目に、半角スペースが入っている事があったそうで、ORACLEの仕様で「こんなん変換できんわ」でエラーを返してくる
悲しいかな、ここの環境は何故か全カラムがNOT NULL制約付きなので、何も設定したくない時にこういう値を入れる事があるらしい
日付型に置換してセットするときは半角スペースは使えないので、
TO_DATE( NVL( TRIM( 文字型年月項目 ) ,'29991231') , "YYYYMM" )
としたらしい
これを見て、「あれ、年月文字列が入るべきところに日付文字列をNVLして大丈夫?」と思った
念のためにPMや基盤担当に聞いても、「ORACLEが変換してくれるから大丈夫」とのことだった
一応ORACLE Bronzeは持ってることもあり、怪しいなと思って FROM DUALで簡易検証したところ、予想通りエラーに…
このエビデンスを持ってPMにエラーを教えてあげたら、そもそもの仕様が…と違うところに文句をつけ始めた
(設計レビューしたのはPM本人)
今更そんな根本的な話をしても仕方ないので、
「そこ直すのもいいですけど29991231→299912に直すのと期間、工数考えてどちらが良いか選んでください」と言ったところ、
流石に直す気はないようで、丸く納まった
自分が全て正しいとは全く思ってないけど、
こういう些細な所が「こういうメインどころではない指摘は何も生まないし、禍根だけが残るな」という反面教師になった
メルカリに出向?した経産省の方の記事を見てから、
不満な点、嫌なこと、が改善すれば良くなること、というように着眼点が変わった
経産官僚の女性がメルカリで8カ月働いてみたら、見えたこと | BUSINESS INSIDER JAPAN
これは、今年の一番大きいトピックだった
人間も所詮動物なので、感情コントロール1つでこんなにもやりやすくなるんだ、と感動
昨日も楽しかった
板挟み感
昨日は案件の次フェーズ進行の打ち合わせだった
お客様と1次請け社の期間の認識などがズレていて、我々がそこのリカバリをすることに
向こうはまだ要件定義なのにこちらは設計に入っていて、
インターフェース決めたいんですけど、と言っても向こうはまだ設計を始めてないのでズルズルと向こうに引きずられる…
というよくある光景が目の前に
そのために、かっちり作り込まずにプロトタイプを重ねていって仕様が決まったらガッチリ作るという、ウォーターフォールなのにエセアジャイルなことをやってる
まあ、悪い人はいないと思ってできることはやろう
他に、先日のNTTコムの方のスライドを社内展開したら、
U35ぐらいで本音トークして会社を良くする会、みたいなのをやろうという話も出た
この流れがもし本当に会社を変えたなら、少しでも世界を変えたことになるかな
昨日も楽しかった
多重ネストマクロプログラムのデバッグつらい
PL業務ばかりやっていたけど、手を動かしたい&手も足りないのもあって、自分にプログラム開発タスクを振った
ここ最近は他の案件でもPLをやることが多く、正直自分でプログラムを書くのが何年ぶりか…という感じ
(前の案件はDIS、EGのGUIメインだったし)
それをやり始めたはいいけど、プログラム開発の勘所が自分から全く失われていることに気づく
これが、自分のずっとなりたくないと思っていたリーダーの姿、自分がそうなりつつあることにまた危機感を覚える
詰まったところは、既存のマクロのネストが深く、デバッグに苦労してる
知っている環境ならこれがここ読んでるのね、と分かるけど、あまり知らない環境だと、
このマクロはどこにあってどこで定義されてんのか、がいまいちよく分からない
例えば
◾️createList.sas
%macro main();
〜処理いっぱい〜
%macro step1();
%macro step1_1();
%let whereStr=%str(なんたら条件);
%commonExtract(data001,&whereStr);
〜処理いっぱい〜
%if &extractCnt. = 0 then do;
%goto :zeroEnd;
%end;%mend;
%step1_1();
%mend;
%step1();
〜処理いっぱい〜
%mend;
%main();
みたいなのがあって、&extractCntってどこで作ってんの…と見ると
◾️ batAutoexec.sas
%macro commonExtract(tabName,whereJoken);
proc sql noprint;
create table extractTab as
select count into:extractCnt
from &tabname.
where (1=1) &whereJoken;
;
quit;
%mend;
をsysinのプログラムからさらに%includeしてたりする
この辺りの値の遷移とかがどうしても脳内でマッピングできないし、プログラム間のCRUDみたいなのは本当はあるべきなのかな?
どれがどれ読んでるかみたいな紐付きがピンとこない
あとは、マクロが何層もネストされてるのでどこでエラー出てるのかもよく分かんないし、
ステップ実行でデバッグしたくとも、そこだけオープンコードで実行するもの比較的苦労する
せっかくEGで実装されたDATAステップデバッガもマクロ内には使えない…
オープンコードで書いてからマクロに起こす、が定石だけど、既存の知らないマクロゴリゴリプログラムを書き直すときのテクニックが知りたいところ
とはいえ、自分の課題、足りないところが分かったので昨日も楽しかった
P.S.
GMOさんのイベントも申し込んでたけど、この開発の遅れで行けなかった…
草の根コラボレーション
ようやくプロジェクトのWBSをざっくり、開発フェースは成果物レベルで作成した
これまで何回か作ってるけど、未だにWBS作るのは根気が要るし慣れない
特に、この人はこの日1人日超えてるよ…みたいな要因間の工数の整合性みたいなのが苦手、みんなどうやってるのか知りたい
また別の話で、こんなスライドをお見かけした
エンプラ系大企業でソフトウェアエンジニアリング文化を開花させるために
https://www.slideshare.net/iwashi86/ss-203448193
うちの会社はNTTコムさんほど大きくは無いけれど、まさにこの状況とマッチしてる
昨日書いた、辞める気になったら吹っ切れてやる気が出てきた…も、まさにこのスライドに書いてある通り
これを社内のSlackに載せたら反応してくれた人がいて、自社でどうやったらコラボレーションの文化が根付くかとか、
そもそも情報が上から降りてこない風通しの悪さもどうにかならないか、という話にまでなった
今までだと自分でぶつくさ言ってるだけだったのが、人を巻き込むと具体的な話にまでなり得るので良い
今後も嫌がられたとしても積極的に人を巻き込んで、手を上げていきたい
昨日も楽しかった