公正の意味をはき違えた会社2017年12月23日 23時50分33秒

■横並びの評価は行わない。努力・成果に応じた公正な評価を行う。

設立から7年程度の会社の採用情報での言葉。
現在社長含めて6人の会社で、一人は事務の女性なので開発ができるエンジニアとしては社長含めて5人です。
そもそも事業においての「公正な評価」ってなんだ?

(1) 売り上げへの貢献度
(2) 研究開発でのアウトプット量
(3) リリース後の不具合量の少なさ
(4) 作業効率の高さ(いわゆる生産性)
(5) 業務改善提案の量(いわゆるカイゼン)
(6) 勤怠
(7) コミュニケーション能力
(8) 従順さ(社畜度)

というようなところでしょうか。
そんなこんなを点数化して係数にして売り上げ計画を上回った分を配分するってことか?

さて、この会社の「こたえ」は概ね以下のような感じ。

(a) 毎月の給与では残業代は払わない。そもそも時間なんか管理しない。
(b) 評価は賞与で還元する
(c) 各自の評価は創業メンバーエンジニアAが「公正」に行う
(d) 賞与の額、できる人は120万円、できない人は5万円程度の場合も。

そのA氏の評価も聞いている範囲ではプログラミングの能力的なことのように感じた。
正直呆れて何も言えない。

■ソフトウェアエンジニアの「腕」と事業に対する貢献は違うということを知らない

プログラミングにおいてはコードの美しさ、実行速度の速さ、バグを回避するような記述、適切なコメントなどの最低限のこだわりは必要。
プロのエンジニアとしての誇りの部分でもある。
そうはいっても一方ではそこに全く関心がなく、「動けばいい」、冗長で速度も出ない結果だけど、このシステムでは問題にはなっていない、コメントなんてなくてもコード見ればわかるだろ、などなどの考え方を持ったエンジニアも存在します。
私も個人的にはそんなエンジニアは尊敬できないけど「コイツはコードが美しくないから5万円」なんて言えない。そんな権利もないと思う。

例えていうならば、「字がキレイなCさんは120万円で字が汚いDさんは5万円」って言ってるのと同じ。

会社としてプログラミングの質を上げたいのであればコーディング規約をきちんと作ってそれを遵守させて「教育していく」ことしかない。
年齢の割にとか経験年数の割にってフィルターが入っているのであればそれこそ「公正」ではない。

顧客との契約形態によっても違う。

準委任契約で時間単価で時間がかかればかかる程売り上げが上がる契約内容の場合、ヘタクソで効率の悪いプログラマが「稼げる」ことになる。

請負契約(いわゆる受託開発)や自社のプロダクト開発ならば短期間に質の良い成果物を上げれば評価は高いでしょう。この場合の「質の良い」はコードの美しさではなくブラックボックスでの性能や機能に問題がないことなどの基準での判断であるべきです。
もちろん、長期的にはコードが美しい方が将来的なメンテナンス性は上がるので生産性も高くなることになります。

■評価されるのは創業メンバー以外

創業メンバーA氏の評価はどうするのかは不明だった。
そもそも、「公正な評価」は特定の個人がやったらだめ。
技術を売る会社なら仮想的な第三者が客観的に評価できるような仕組みを構築できなければならないでしょうね。
「公正な評価」を公言するのであれば、例えばこういうことですよね。

■違法な裁量労働制

「公正な評価」の主張には「残業時間ではなく公正な評価で還元」という文脈でも表現されていた。
この会社は裁量労働制で勤怠管理をせず、実労働時間の把握もできていない状況。
実労働時間すら把握せずに「公正な評価」もあったものではないだろう。

それ以前に裁量労働制自体が違法。
この会社には就業規則がなく労使協定も未締結。
労使協定が締結されて労働基準監督署に届け出られていない場合は裁量労働制そのものが無効。
そもそも、専門型裁量労働制の要件に当てはまらないので労使協定を無理やり締結しても無効。

システムエンジニアやコンサルタントは裁量労働制の適用対象ではあるけどプログラマは適用対象ではないのでコードの美しさで評価している事実からそもそも裁量労働制にはできない。
時間で推し量れない創造的な仕事内容のみを担っている人物以外は裁量労働制にはできないのだ。
これが法の下での公正さであって、それすらできない会社に「公正な評価」を公言する資格はない。

■やりがい搾取

「逃げ恥」のみくりさんの言葉を借りればまさに「やりがいの搾取」状態の会社だと思われる。

確かに技術的に面白い、技術力も高い、人月商売をやっていないので業界的には外側からみれば良い会社だろう。
やりがいもあるし、技術者としては携わりたいテーマがたくさんあった。
そのエンジニアの「やりがい」を餌にして結果的に労働力を搾取して、客観的な評価をせず非公正な評価をしていることに気付きもしないでいるのだ。
実はそういう意味では昨今多くなっているスタートアップのベンチャー企業にも同様のことが言える。
起業のハードルは確かに下がっているけど従業員は必ず必要になるわけで、労働基準法や関連法令は避けては通れないはず。
にもかかわらず、無関心なのは無能であるのと同義。
高い技術力を公言するのなら労働基準法遵守なんて簡単なお仕事のはず。
優秀なんだからさらっと解決して見せなさいよ。

■自信過剰な世間知らず

ある程度の違法状態は指摘させてもらって今後対応していくようなことを社長は話していたが信用できない。
この社長は大手電機メーカであるH社の出身。
労働組合もあっただろう。組合員の経験だってあるはずだ。
それが全く身についていないのは「労働問題に全く関心がない」証拠。
設立から7年も放置していたのにこれから対応するなんて言葉には全く説得力がない。

「公正な評価」は客観的な事実の積み上げで行うべきだと思っているので主観的な評価を公正と思い込んでいて、法律違反を7年もやり続けているという客観的な事実からこの社長を「公正な評価」で判断すると「自信過剰な世間知らず」ということになる。

コピペ記事が技術をダメにする2017年09月28日 06時25分30秒

■きっかけ
最近IoT関連の技術開発のスタートアップの会社を取材しました。増資もして勢いがあるように見えます。若いけど優秀なエンジニアも揃っていて、と自信満々。いわゆる、はんだ付けカフェやレーザーカッター、3Dプリンタもそろえた「工作室」も一般に開放しました。
ところが、この会社のホームページのエンジニアが書いたArduinoでの温度センサーを使う記事が他のサイトのコピペ記事で、しかも、他の記事よりも質が悪い始末。
この記事は公開されてから4ヶ月以上放置されており、書いた当人以外のエンジニアもお粗末さを指摘していないということになります。
私はこの会社の技術力には疑問を持たざるを得ず、社長の資質にも疑問を感じる次第となりました。
社長に指摘の連絡をしましたが、「本人に伝えておきます」程度の反応でした。

■コピペ記事の弊害
コピペ記事の弊害はいわゆる検索エンジンに引っかかる複数の記事が「同じ」だということです。正しい内容ならもちろん問題ありません。
いくつかの主張のうちの一つを自分の考えで選択しているのならまだしも、無理解、無思想でコピペしてあたかもそれが正解かのような印象を持たせる。
間違っているのに数多くの記事で同じことを言っているのでそれを正しいと鵜呑みにする。
そこが問題です。

■技術の基本は考察と実験による実証
コピペ記事は書いてあることを鵜呑みにしてそれがソフトウェアであればコピーして実行して試しますが、それが正しい結果なのかの検証をしません。
なぜ、そのような計算をして、そのような結果が得られているのか。
それらを自分自身の頭で考えて検証してこその技術です。



ADCの出力値をアナログ値に換算する考え方2017年09月25日 15時11分05秒

■ADC出力値からアナログ値を求めるやり方の問題
ADCから量子化されて出力されるデジタル値をアナログ値への換算を行う時に2^nで割るのか、2^n - 1で割るのかの問題ですが、ADCの内部の仕組みとしては以下図の左側で示したような配列とその要素のインデックスだと考えると問題が整理しやすくなります。
2^nとか2^n-1の代わりにここでは10bitADCを前提として1024と1023という数値でどちらかを表すことにします。

ADC出力値の換算方式の比較図


この図の左側で示した配列の条件は以下です。
(1) メモリ上の通常の配置とは逆のイメージ
(2) 10bitADC
(3) 基準電圧(VREF)は5.0V
(4) 1LSB = 5.0/1024.0 = 0.004882813V
(5) 上限(n) = 下限(n+1)未満の値

■1024で割る派の問題
ADCから出力されたデジタル値からアナログ値に換算するやり方で、1024で割る派の人たちは上記の「仕組み」を前提に話をしているわけですが、常に配列インデックスに対応したアナログ値の範囲の下限のデータを拾ってくることになります。
理屈から言えば上限を拾ってきても良いはずだし、下限と上限の中間の値を採用しても良いはずです。
この点が1024で割る派の人たちのおかしなところです。
現実的には下限であることは非常にまれでしょう。
シフト演算して処理を高速化するために1024で割るという主張の方がよっぽど説得力があります。

■1023で割る派には問題はありません
あえて問題があるとすればシフト演算での高速化はできません。
あくまでもブラックボックスとしてのADCを扱うため、出力値が0なら0Vだし、1023なら5Vとして係数を求めて度量換算する算数の問題として計算するだけです。
結果的に中間値を採用することになり、フルスケールに達すると確実に5Vになります。
もちろん、中間値とはいっても0の時は下限値を採用し、1023の時は上限値を採用するような変則的な対応付けが自動で行われることになります。
図の右側で示した通り左側の配列の下限値から上限値の間に換算値は収まっていることが分かります。
無思想でコピペ増殖で1024で割る派が多い中、数少ない1023で割る派の書籍はこちら

とは言え、実験してみるのは筋なので、実際のセンサーでの実験結果はこちら

1日程度の遅れで問題視してはいけない2017年09月23日 10時48分52秒

ある会社の社長さんの言葉。

「1日の進捗遅れでも叱らないとダメ」

最近の若い人は叱られ慣れていないし、仕事の厳しさを教えるためにそのように思っているようです。
また、若い世代は怠けることを先に考えるという先入観を持っているようで、「遅れるのは」「怠けている」「本人の問題」だと決めつけているようでした。

この社長さん、別に高齢者の昭和の社長さんではなく、IoT関連のビジネスを展開しようとしている人です。

しかし、ここにはいくつか疑問があります。

(1) そのスケジュールは適正なのか(誰がスケジュールを立てたのか)
(2) 遅れている背景を探る必要はないのか
(3) 担当者の認識と依頼側の認識はあっているのか

例えばAという課題があった時にある人はAならB、BならCという段階的な課題の連鎖を考えてAという課題には複数の課題をクリアしてZまでの作業工数を見積もってスケジュールを立てるでしょう。
でも経験の少ない人はAという課題に対してBまでの作業しか想定しておらず、Bまでの作業工数でスケジュールを立てます。
Zまで考えられる人とBまでしか考えられない人とでは作業量も品質も全く異なります。

担当者本人にスケジュールを立てさせていざ作業を始めてみたら本人も「あ、Bまでではだめだ。Cまで考えないと」と思ったら、当然当初のスケジュールからは遅れます。しかもZが本当のゴールだとしたら結果も依頼者とは食い違うので、Cまでの結果で「出来ましたぁ」とか言おうものなら叱られることになります。

このような認識の違いがあるということを前提にしてそれを俯瞰した上で全体スケジュールを管理するような認識ができない人はマネージメントの立場になったらだめです。
技術がよくわかっている人が依頼者の場合はこの乖離は大きくなりますので、十分なすり合わせは必要だと思います。

一律に冒頭の言葉が出るようだと論外だと思います。
さぞ、息苦しい会社なのではないでしょうか?


有給休暇付与条件を勝手に変える労働基準法違反の会社2017年04月26日 08時21分30秒



あるロボット開発会社の就業規則の一部です。
有給休暇に関する規定ですね。

労働基準法違反部分は以下です。
1.9.5割以上の勤務条件(労働基準法では8割以上)
2.6ヶ月経過後の付与日数5日(労働基準法では10日)
3.1年6ヶ月経過後の付与日数10日(労働基準法では11日)

どんな些細なことでも法律違反する会社には存在意義がありません。違反する意味がないにも関わらずわざわざ違反するという労力をかけてそれがその会社にどんなメリットがあるのか。デメリットしかないことが判断できない「無能な経営者」というところに問題があるのです。

6ヶ月の勤務日数を120日とすると0.5割は6日ですね。2割だと24日です。現実的に6日という数字は多い感じもします。月に1回は欠勤しているということです。
労働基準法通りだと月に4日欠勤しても有給休暇は付与されます。欠勤多すぎですよね。
気持ちはわかりますよ。
でも現実的には健康でまじめな人ならそんなには休まない。
現実的には大抵は多くても0.5割も休まないのですから、わざわざ労働基準法を違反する内容の就業規則にする必要なんかありません。機械的、事務的に労働基準法を逸脱しない内容にしておけばいいのです。
就業規則なんてひな型がどこにでも転がっています。
この就業規則も元はどっかからひな型を拾ってきて、そこには8割となっていたはずです。それを「変えても良い」と思い込んだところが「バカ」だということです。
そんな頭の悪い人間が社長の会社が創造的で先進的な開発を行うと言ったって信用できません。