STAP and Sleep

去年あたりから忙しくなり、我が人生で4回目の炎上プロジェクトを絶賛体験中のところですっかり更新がご無沙汰になりましたが、少し余裕が出てきたところへ考えさせられるニュースが入ってきたので書いてみます。ちなみに、こういうニュースを聞くたびに、日本は衰退に向かっている、と感じてしまします。がそれは私だけでしょうか?

STAP細胞のニュースについて、経緯をざっくり説明しますと、iPS細胞に似た性質を持つSTAP細胞(STAP幹細胞)を理化学研究所の小保方氏らが作成に成功したと科学雑誌ネーチャーに1月30日に発表したのですが、その後、相次いで論文に対して疑義が出され理研が調査を行うことになりましたが、その後も色々な疑惑が出てきて、共同研究者の若山教授が撤回を呼びかけ、昨日(3月14日)に理化学研究所が中間報告を行いました。

同時に会見もありまして、その内容の一部が以下から見られます。

STAP細胞:会見(1)「論文の作成の過程に重大な過誤」野依理事長

STAP細胞:会見(2)「論文としてもはや存在すべきではない」竹市センター長

『論文の取り下げを視野に入れて検討する』というらしいですが、どこかのブログとは違って、論文の取り下げというのは研究を白紙にするということで大変不名誉なことで、それだけのことが論文の執筆過程で行われたということのようです。
まだ中間発表なので『STAP細胞は存在するのか?』とか『論文は捏造なのか?』といったことは今後の調査を待つことになりますが、インタビューで気になったのは責任者が他人事と受け取れるような発言をしたことにあります。

STAP論文:「切り張りダメとは…」小保方さん謝罪によりますと、事件に対して

『似たようなことが起こっているのであれば、時代のなせる業、カルチャーが変わったなと非常に心配している』

と発言されたのですが、仮にもマネジメント側の人間の発言としては、疑問を持たざるを得ないです。
世の中、信じられないことをする人は昔からいます。私の半径3メール以内の経験では、約15年ほど前になりますが当時の上司が顧客とのミーティング中に居眠りをしてました。
当時プロジェクトリーダーであった私はそれが理解不能で上司の足を蹴って起こし、ミーティングが終わってから叱責し、その後、続けて居眠りしたので、上の上司に話してプロジェクトから追い出しました。
もちろん、ここまでする必要はないかもしれませんが、人の上に立つ者としてはカルチャーのせいにしないで、きちんと対応をとるべきでしょう。というかこのような事態になった時点で『教育を徹底する』とかではなくまずはご自身の監督不行き届きを反省すべきだと思ってしまいます。そんなことだから、こういった声に耳を貸せないのか?と疑問に思ってしまいます。
実は、STAP細胞は存在しないと主張されている人が理研内部にいらっしゃるようです。ブログによるときちんと報告したにも関わらず政治的な力によりもみ消されたようです。もちろん私は専門家ではないので真偽を判断することはできませんが、理研にはこのブログの真偽に対してコメントしてほしいものです。

とかなり息巻いてコメントしましたが、まぁ歳をとると人は丸くなっていくもので、私の半径3メールの経験では、私自身が今となっては客先で居眠りしている人をみたとしても何とも思わなくなり、せいぜい飲み会のネタにするぐらいとなってしまったので、あまり人のことは言えないかもしれません。もっとも『居眠りできて天国です。』とか言われるとプロジェクトから追い出すかもしれません。

いずれにしても人の上に立つ人はきちんと人を見る目を養わないとダメということを思い知らされた事件です。

真のソフトウェアエンジニアに必要なモノ(SQLは銀の弾か?)

件の社長ですが、ブログで、まとめ記事を出しております。あれだけ口悪く私のことを煽っていたのにバツの悪い終わり方だと思いますが、まぁ、これ以上、『SQLはオブジェクト指向言語の数十倍の効率』の件を追求する必要もないのでその件は終わりにします。

ただ、私の方ですが、久しぶりに火がついたので気ままに書いてみます。もっとも粘着質といわれるのも嫌なので、件のブログ自体にはコメントしません。が別に書いていることが正しいとも思っていません。件のブログですが、コメント欄が消されていますので、疑問等ある人はこちらのコメント欄にでも書いて頂ければ『私に答えられること』でしたらコメントします。

素直さは如何に大切か、とか、騙されないようにする為に(適切な議論の方法)と記事を書いてきましたが、そもそも論として、ソフトウェア開発に関連した技術面で何か記事を書くのであれば、それは技術者を代表してという立場で発言することになるでしょう。ここでの技術者の代表とは、『ソフトウェア開発をリードし設計、開発、テスト、トラブルシュートを行い、単なる知識だけでなく頼れる技術を持った、顧客だけでなく共に働く人や競合他社からも一目置かれるような人』ということで話をします。お前はどうやねんとツッコミが来そうですが、私は僭越ながらその末席において頂いていると思っております。
というわけで、以下、真のソフトウェアエンジニアとって必要なモノについて語ってみましょう。

『銀の弾などない』ことを理解する

恐らくソフトウェアエンジニアだけでなく、顧客の情報システム部の方や、現代では企業経営者全ての人に教養としてお薦め本に『人月の神話』があります。私はざっと一読しまいたが、ソフトウェア開発の真実をみることができるでしょう。ちなみに訳本のせいか私にとっては少々読みにくい(というかくどい)です。
その中にある、『銀の弾などない』という章で著者のフレデリック・ブルックス氏は『ソフトウェア開発においては○○を使えば生産性や信頼性、安全性が著しく向上したりするという特効薬は存在しない』という趣旨のことを主張しています。この主張は約25年前になされましたが、今でも充分に通用するでしょう。つまり、「○○を使えば生産性がX倍向上します。」ということを耳にするかと思いますが、『そんなものはない』というのが氏の主張で、私も自身の体験からこの主張は現在のところ正しいと思っています。
ひょっとしたら経験は浅いが技術力のある方の中には「そんなことはない、銀の弾はある!」と思うかもしれません。一経験者から言わせてもらうと恐らくそれは思い込みです。
ただ、この主張が将来に渡っても正しいかどうかは解りません。なぜかというとこの主張は現在のソフトウェア開発の弱点とそれが将来に渡って解消されないという予測を行っているだけだからです。人間という生き物は欲深いものでこの弱点を克服しようと多くの人が日々努力しています。私がADPを開発しているのもまぁそういう努力の1つです(と言っておきましょう)。
当然ですがフレデリック・ブルックス氏もその点はきちんとフォローされており、約25年前に、銀の弾の候補の一つとしてオブジェクト指向プログラミング(OOP)を挙げておられます。ただ、その約10年後に出された『「銀の弾などない」再発射』ではオブジェクト指向が本来使われるべき領域(業務ロジックにオブジェクト指向の適用)ではなく低レベルな部品レベル(リストクラスやGUI等)にとどまっていると指摘しています。
現在ですが残念ながら状況はあまり変わっていないでしょう。オブジェクト指向はだいぶ浸透してきたかと思いますが、現在ではソフトウェア開発期間に求められる時間が短くなってきています。つまり顧客はカジュアルにサービスを立ち上げたがります。そうなるとじっくりと開発するというわけではなくありものでちょちょっと作ることになり、OOPといっても『ライブラリを使う』ということはあっても業務ロジックを作ることはそう多くはないでしょう。また何よりOOPを使った失敗プロジェクトも多かったのも事実です。

そして、件の社長ですが、『少なくともRDBを使う業務アプリの開発において、データを操作する部分に関してはSQLは銀の弾になりうるのではないか』と主張しているのかと想像します。

行間を読む

 ソフトウェアエンジニアは普段コンピュータばかりを相手にしているのでどうしても理屈っぽくなり、言葉を額面どおりに取る傾向にあります。がソフトウェアエンジニアたるものコンピュータばかりでなく人間も相手にしなければなりません。行間を読むことは人間同士のコミュニケーションで重要なことです。がもちろんですが相手に行間を読んでもらう前提で話をしてはいけません。コミュニケーション能力は技術者というより人間としての経験値が必要ですが、幸い今ではインターネットを使ったコミュニティが豊富にあります。行間を読む訓練は昔より遥かに簡単にできるでしょう。

SQLは銀の弾になりえるか?

という訳で、まとめ記事ありました、件の社長が本当に言いたかったことを推測してみますと、
『少なくともRDBを使う業務アプリの開発において、データを操作する部分に関してはSQLは銀の弾になりうるのではないか? 銀の弾ではなかったとしてもオブジェクト指向プログラムより使える技術だろう』
ということが某社長が言いたかったのかと仮定します。
で『その根拠』について私の経験を元に考えてみましょう。ちなみに、『人月の神話』にはSQLは銀の弾の候補に上がっていませんでした(間違っていたらコメント欄にご指摘下さい)。

この点については社長自信、色々上げておられるのですが、私の経験上一番納得できるポイントは

・オブジェクト指向技術を使ったプロジェクトが失敗したときの被害

・SQLに頼ったプロジェクトが失敗したときの被害
とを比較した場合、どちらがより被害が大きくなるか?です。

件の社長が言いたいのは(というか過去の議論で私が理解できた社長の主張は)『OOPを使ったプロジェクトが破綻した場合の方がより被害が大きい。』ということでした。私の中では『どっちもどっち』と思う面もなくはないですが、確かに実際に聞く話は『OOPを使ったプロジェクトの破綻』が多いし深刻度が高いです。もっとも私の周り3メートルの範囲ですが。

この事実は、単純に『OOPが銀の弾候補』になり、それ以外にもオブジェクト指向がバズワードとして色々宣伝されたので、多くのチャレンジャーが集まり、壮大な実験の結果、失敗例が集まったということかと思われます。

その他、OOPが思ったほど実力がないということの例を挙げますと統合開発環境の存在があるでしょう。本当にOOPが銀の弾なら統合開発環境は要らないでしょう。皮肉な話ですが統合開発環境が高機能になればなるほどOOPがそれ程たいしたことではないという風に聞こえてしまいます。例えば、「統合開発環境のリファクタ機能を使えばそんなの簡単です。」という話を聞きますと、すごいのは統合開発環境であって言語ではないということでは?と疑問が出てきます。ちなみに「統合開発環境がないと開発できない」とか言われると『本末転倒やん』と嘆きたくなります。

さらに別の例ですが、私が関わったプロジェクトでC++を使ったものがあったのですが、バグ入りのものをリリースしたが、既に担当者がいなくなったので修正が出来ないということで私に助けを求めたものがありました。単純にOOPで作られたというだけでなく、マルチスレッドで動作していたのでバグの原因が不明で誰も手が付けられなかったということでした。OOPの思想の1つにカプセル化(隠蔽、ブラックボックス化)があります。確かにバグがないプログラムを再利用する場合はカプセル化は理想的です。しかし、そのカプセルの中にバグがある場合は否応なく内部を調べる必要があり、これにプラスして経済的な制約が加わると大変なことになることは想像できるでしょう(まぁ私は儲かるのですが・・・ちなみにこういうことでお困りの方がおられたら私ならなんとかできるかもしれません)。

ここまで言いますと『じゃなんでお前はC++を使っているんだ』とツッコまれそうですが、道具はあくまでも道具で、適切に使えば良いという話だけです。長所、短所を理解した上で使えばよいでしょう。ちなみに私が単独でプログラムを記述する場合はC++をメインで使いますが(もっとも最近はADPがメインですが)、誰かに引き継ぐ前提のプログラムの場合、関わるメンバを見て言語を選択します。そして、私の半径3メートル以内ではC++を使うことは残念ですがあまりなかったです。

一方でSQLに関してですが、さすがに長年の実績がある言語で、例えばパフォーマンス上で問題が発生した場合、様々な解決策(ノウハウ)があります。また私の半径3メール以内でも多くの人がSQLを使っています。SQLが出来ない人は少ないです。最近では、あるSQLが遅くて色々試行錯誤していましたら、一緒に働いている方から「何か知らんがこうすれば速くなった」とアドバイスを受け実際に速くなったケースがあります。大人の事情で具体的な詳細は明かせませんが、そういうことは皆様の回りでも現実に多々あるでしょう。こういうことを言うと「実行プランをきちんと解析せいや」とかお叱りを受けますが当然そんなこともしております。
もちろん、SQLをどうこねくり回しても解決できないこともありますが、その場合でも案外ベタな解決方法(私のブログで紹介しているようにJOIN崩しとか、その他非正規化とか)があり、この辺りに関しては知る人ぞ知るという感じで、私の回りでは結構あるあるネタになっています。
このような言語自体の性質および実績から来る信頼性は追い込まれたエンジニアにとってはありがたい存在で、「SQLは良い」という意見については反対する気はないです。ただ、「SQLが効率的」といわれると普段から遅いSQLを速くするという作業も行っている身としては?と思うわけです。
またMDXという言語を知ってからは、JOINしながら集計することに関してはMDX(OLAP)の方がSQL(RDB)より強力という認識でおります。道具はやっぱり適材適所で過信はいけません。

業務アプリ限定で言いますと、SQLとOO言語を混ぜて使う必要があるために、SQLとOO言語のパラダイムの差を吸収する必要があるでしょう。いわゆるインピーダンスのミスマッチで、その解消策の1つとして『OO言語で統一する』という試みが昔から行われています。古くはオブジェクト指向DBなどで、今ではO/Rマッパーなんかですね。ここで某社長の思いの行間を読むと「OO言語に統一できるという考えがファンタジーだ!」ということで、その根拠にN+1問題をあげておられます。ちなみに「SQLはオブジェクト指向言語の数十倍の効率」自体は間違った主張ですが、その行間を言い直すとN+1問題ということになります。N+1問題はググれば出てきますし、私がSQLの実行パフォーマンスについて 2010で指摘した実験2は原理的にN+1問題と同じになります。
そして社長は「オブジェクト指向側に寄せるより混ぜて使うことを前提に上手く開発できるようなスタイルを確立すべし」ということが言いたいのでしょう。まぁ適材適所ですね。
ちなみに『OO言語とSQL(リレーショナルモデル)とのパラダイムの差を吸収することは難しいが、述語理論とSQL(リレーショナルモデル)との差はあまりないのでSQLを呼び出す言語を述語理論に基づいた言語にすれば上手くいくのでは』というのが私の仮説になります。
もう1つうんちく次いでに語りますと、「SQL系の言語で統一する」という試みもありました。4GLとか言っていたものです。これは早々に消えたかと思います。4GLが宣伝されていたとき、私はあまり関わっていませんでしたが「SQLでGUI」と言われても『どう組むんや!』ということは明白で、まぁやっぱり道具は適材適所なのでしょう。

「オブジェクト指向プログラミングが銀の弾かどうか?」というのはまだ結論が出ていないかと思いますが、最近では関数型の言語が一部ではクローズアップされています。ちなみにADPがベースにしているPrologという言語は述語理論を基礎においています。私は述語理論を押しているわけです。先のことはわかりませんが、オブジェクト指向プログラミングが昔の構造化プログラムと同じ道を行き、将来別のパラダイムがスタンダードになっているかもしれません。もちろんRDBが駆逐されているという世界もあるかもしれません。つまらない意見ですが、まぁ先のことはわかりません。

そして「SQLは銀の弾か?」と言われると『データを扱う上では候補ぐらいにはあげてもよいけどSQLはそもそもドメイン固有言語ではなかったですか?』。というのが私の意見になります。

以上、行間を読んで書いてみましたが、如何でしたでしょうか? がんばりましたがさすがにSQLを持ち上げるのは厳しいです。つまらない結果ですがまぁ現実はこんなもんです。

最後に1つだけコメントしますと、このように書けば炎上はしませんが、多くの共感は得られるのではと思うのですが、まとめ記事では残念なことに主張すること自体を取り下げたようです。
いったい、彼は何が言いたかったのでしょうか?

騙されないようにする為に(適切な議論の方法)

素直さは如何に大切かという記事を書いたのですが、考えてみれば『それは私自身にも当てはまるのでは?』というツッコミがきそうですし、何よりこれはエンジニア向けに書いているので『判別つかない議論をどうすれば見極めれるのか?』とか『自身がどういう姿勢で臨めばよいのか?』という全うな質問もあるかと思います。
そこで、ITエンジニアが適切に議論(主張)を行う方法をメモしてみます。

1.自分の主張が正しことの裏を取る
もっとも大事なことは自分できちんと根拠を示すことです。では根拠となるのはどういったものでしょうか?
 (1) 実験する
  例えば、『○○の方が速い』ということでしたら実際に実験してみればよいのです。実験というのは何より客観的ですのでその結果は事実として受け止める必要があるでしょう。ただ、実験では『たまたま自分のマシンでは速かった』ということもあるでしょう。したがってその実験が再現できるよう環境もあわせて提示しましょう。
SQLの実行パフォーマンスについて 2010ではこの方針にのっとって主張を行っています。

 (2) 論理的な考察
  実験にプラスしてそれを補う理論的な考察も必要でしょう。ここで重要なことは、IT周りの議論が起こったとき理論的な考察というのに無理がある場合があることです。つまりITの世界は数学のように割り切れない面もあります。パフォーマンスという一見簡単な問題にしても純粋な数学からすれば充分に複雑です。いわゆる複雑系というやつです。それ以外でも例えば、工数が少なくなるというのはそもそも主観が入るでしょう。そのような場合は出来るだけ問題を簡単にして説明可能な実験に分割してそれぞれ実験を行えばよいでしょう。
[ADP開発日誌]SQL(JOIN)の実行パフォーマンスについて2011ではこの方針にのっとって主張を行っています。

 (3) 他のソースの引用
  確からしい他のソースから引用するのももちろん良いでしょう。その場合引用元を開示すれば他の人が検証可能となります。この場合注意したいのはインターネットの情報はウソもあるということです。騙されないようにする必要があるでしょう。

2.騙されない為のテクニック
ITエンジニアたるもの技術的な論争についてはきちんと処理をしたいところです。口頭での議論だとついつい煙に巻かれることもありますが、ネット上ですと文章として残っていますので冷静に対応すればよろしいかと思います。
 (1) 発言者の過去の発言を検索し矛盾がないか検証する
  残念ながら論理的に筋道が通った話ができない人がいます。また人というのは時間と共に考え方が変わります。相手の発言はそのようなことを考慮しているかどうかを検証する必要があります。その際にあらかじめ公開の場で質問をしておくと後々それが助けになります。

件の社長は、炎上したのでまとめ
で、
 『SQLはオブジェクト指向言語の数十倍の効率』
という発言し、その根拠にコメント欄で、JOINの例を挙げたが、その一年後にツイッターで、
『JOINをなくすならAPサーバでキャッシュする。 集計関数をなくすなら、ORDER BYを禁止する。 SQLがイヤならRDBMSは使わないこと。 何度も書いているけれど、SQLで出来ることをAPサーバでやっても、【絶対に】DBサーバの負荷は減らない。 ただし、下手糞を除く。』
と発言しています。そしてそれを指摘すると今度は、シビアな設計で、
『JOINするしないでは、トレードオフの関係は、すべてのリソースに対して技術者の技量しかありません。』
といっています。発言に矛盾があることはもうお分かりでしょう。

 (2) 質問に答えない
  少なくとも明らかな素人を除いて、質問に答えない(そして中傷してくる)相手はその質問自体に答えたくないのでしょう。
SQLの実行パフォーマンスについて 2010で私は件の社長本人に『SQLはオブジェクト指向言語の数十倍の効率』の考えは変わったのか質問しましたが、件の社長はそれには直接答えていません。逆に質問してきたり、独自の認定を行い、議論を終わらせたりします。少なくとも自己の主張が正しいとするならば質問には答えられるはずです。

 (3) 綺麗な図に惑わされない
  これは一部の方に行われているが綺麗な図や表を用いてさも正しいという風に見せ付けることがあります。いくら綺麗にまとまっていても真のITエンジニアたる者だまされてはいけません。よーく検証しましょう。

例えば、以下の図ですが、

一見綺麗にまとまっているでしょう。しかし、データ転送量の欄を見てみましょう。
『データ転送量  トラフィックに影響  JOINした方が少ない 』
とあります。これが成立しないことは、[ADP開発日誌]SQL(JOIN)の実行パフォーマンスについて2011で指摘しています。一見すると綺麗な表でまとめられているので気がつかないかもしれませんが、きちんとみれば分かります。また他の項目についてもきちんと説明せずに結果だけが表になっていることが分かります。

3.議論をする上での心構え
本来議論というのは、炎上をねらったり、闇雲に自己主張をするのではく、自己の見聞を広めたり、起こった事象に対して深い考察を行ったりするものであると考えます。

 (1) 議論は勝ち負けではない
  これがぜんぜん解っていない人がいます。議論で相手を言い負かすとか論破するとかは少なくともITの分野では意味がありません。

 (2) 相手の主張に耳を傾ける
  自己の主張に反論してくる人は、ある意味ありがたい人です。相手の主張を受け入れ真摯に答えましょう。私は、SQLの実行パフォーマンスについて 2010で、「OO言語側の最適化が不十分である可能性がある」と結論付けていますが、これはつまり一見すると『SQLはオブジェクト指向言語の数十倍の効率』ということが正しいと思える場面が存在することを認めています(その上でそれは視野の狭い経験にしか基づかないという指摘を行っています)。

 (3) 相手に感謝する、発言を憎んで人を憎まず
  議論を行った後は相手に感謝の意を表する必要があります。私自身、SQLの実行パフォーマンスについて 2010という記事を書くにあたって再度勉強になりました。そういう意味では件の社長には感謝したいですが、それを『文盲のサル』と言われてしまっては腹も立ちますがそのような感情は捨てて、この場で感謝の意を表明しておきましょう。

素直さは如何に大切か

ちょっとADPの記念記事からは外れますが思ったことがありますので記事にしてみます。

技術的な論争を行ったときにどうしても、ご自身の主張(例えば『SQLはオブジェクト指向言語の数十倍の効率』)が否定されたことを認めたくないばかりに、『サルに何を言っても意味がないので、次に来ても消します。』等と言って自説を強弁したり相手を中傷したりすることがあります。
ちなみに、ここで私を文盲のサル扱いしていますが、そういうこと自体が褒められたことではないし見る人がみれば議論から逃げているとして取られないかと思います。

私も含めて人間誰しもそういう面があります。ので、そんなことをいちいち追求しても仕方がないことだと思っていましたし、それを追求すること自体あまり程度のよいものではないと思っている面もありました。

要するに零細企業の一社長が何をいっても社会にはあまり影響がないので言わせておけと思っていましたが、私はこの『事実より自分の主張を優先する』という性が少なくとも日本人の特性として思った以上に根ざしており、零細企業の一社長だけでなくそれなりの企業や組織にもそういうことがあるのではないかと心配しております。

私はこの議論を行っているなかで、『仮にこれが今の原発事故の話ならどうだろう』と思って寒いものを感じました。

つまり、原発事故で某電力会社は事故から2ヶ月後にメルトダウンしたことを認めています。記事

最終的に某電力会社はメルトダウンを認めたから事故の重大さが周知され、我々国民も対応について選択が出来る(または覚悟が出来る)ようになったかと思います。当初はメルトダウンはないといっていたり、発表が2ヶ月後になったということを考えると充分ではないことも明白で、ここでも事実を素直に受け入れることの重要性がわかります。

また、他の電力会社のやらせメールもありましたが、これに関しても『技術的には取り扱いを慎重に行わなければならないのに一方の考え方を押し通す為に、一見技術的には正当とみえるような議論を行う。つまり煙に巻く。』ということで、そう多くないとしても私の回りでもしばしば見受けられる現象です。

ここで重要な点は、技術的な内容についての真偽は技術者しか分からないということで、もし議論する一方が事実をありのまま受け入れずにそれを隠したりねじ曲げたりすると場合によっては大変な過ちを生み出すことになるということです。つまり議論を見ている専門知識を持たない観衆は判断がつかないところで勝手に誤った方向に持っていかれるということです。

私も過去に議論に巻き込まれて事実を受け入れることから逃げたくなったり逃げたこともありますし、やり込められると徹底的に逃げる人もみてきました。さらに裏で手を回して私を追い落とそうとした人もいます。
今回はただの議論なので『まぁいいか』ですみますがそれでも『SQLはオブジェクト指向言語の数十倍の効率』という間違った知識を若い人に伝えたくないのでがんばりましたが、私は今回のことは改めて如何に技術者として特に重要な技術的な内容については正直でなければならないと思い知らされました。

私も頭の体操ということで議論していまし今後も議論を行うでしょうが、こういうことを肝に銘じて技術的な事実関係は真摯に受け止めるように勤めたいですし、相手がそういう態度に出るのなら厳しく追求したいと思います。と同時に権力者が同じように国民を煙に巻いてこの国を誤った方向に持っていこうとしないようにしっかりと見ていきたいと思います(まぁこれには限界があるのですが・・・)。

e-Taxで個人の確定申告

 確定申告の時期ですが、今年はe-Taxで申告しました。という訳で今回はそのレポート。
いきなり結論ですが、個人の確定申告の場合、e-Taxは便利かと思います。特に良いところは、いちいち手で書かなくてもよく、ほとんど自動で転記してくれるので手間がかかりません。また今年(?)まで、初めてe-Taxで申告する方は、5,000円の税額の控除があります。いくつか準備が必要ですし、こういう話もありますが、準備は1回ですみますし、それを補ってあまるぐらい便利でしたので、今からでも間に合いますのでよろしければご参考にしていただければと思います。
もっとも、今まで確定申告をご自身でやったことない方(税理士等にまかせっきりで内容を確認していないとか初めての確定申告とか)はちょっと厳しいかと思いますのでそのあたりは充分にご検討された方がよろしいかと思います。
 
※注意! 私と当局の方とはまったく関係がございません。本ページの記載内容はあくまでも個人が試した結果であり、間違い等がありましても著者は一切責任を取りませんのであらかじめご了承ください。
 
■必要(使った)なもの
 ・ICカードリーダー(私が使ったもの
 ・住民基本台帳カード
 ・電子証明書(住民基本台帳カードにインストールする)
 
ICカードリーダーは3千円で購入しました。住民基本台帳カードと電子証明書は役所で入手できます。手数料は、それぞれ5百円(計千円)掛かりました。カードと証明書は、即日発行できるところや2週間程度かかるところ、住民基本台帳カードのみ取り扱うところとかありますので役所のホームページで確認した方がよろしいでしょう。今からでしたらぎりぎり間に合うかと思います。
  

■環境の構築(事前セットアップ)
 詳しくはe-Taxのページを読んで頂くことになりますが、事前にソフトウェアをインストールする必要があります。ちなみに私はWindows7 64bit ulitimateで環境を構築しましたが正常に動作しました。
 
■私がはまったところ
 詳しい使い方は、e-Taxのページを見ていただければと思いますが、数年間に渡りいろいろバージョンアップを重ねたようで個人の確定申告に関してはだいぶ使いやすくなったかと思います。通常の給与所得者の申告もできますし、青色申告にも対応しています。
一応私はソフトウェア関係のプロですし、確定申告も何回かやっているので要領はわかっているつもりですが、それでもいくつかはまりました。以下、私がはまった点を紹介します。

  • 番号取得時(初回)のリンクと、作成再開のリンクが異なる - 当たり前かもしれませんが、初回のリンクと作成再開のリンクが異なります。この画面の大きなボタンの『作成開始』というのが初回にクリックするボタンで、『作成再開』が2回目以降にクリックするボタンです。ちなみに、2回目以降に使用するというのは入力処理を中断して再開する場合を指し、その際にデータを保存しておく必要があります。
     
  • カードリーダー周りのトラブル - カードリーダー周りで2つ程、軽微なトラブルがありました。1つは事前セットアップ後に、プログラムグループの『公的個人認証サービス』から『ICカードリーダライタ設定』を実行しておく必要があるがその説明がFAQにしかないのでカード読み込み時にエラーになる点と、もう1つは、設定後でもカードリーダーが上手く読み込めないことがありその場合に一旦「戻る」をクリックし画面を戻し、もう一度進めると上手くいくことがありました。
     
  • ヘルプデスクの担当者について - 2回程電話をしましてあくまでもその範囲内での意見ですが、ヘルプデスクの人に当り外れがあります。確定申告の規則がややこしいので全部を覚えきれないのでしょうが、いい加減と受け取れる回答をする方がいらっしゃいましたのでその場合は、1.『そんなはずはない』と言って上の人に調べてもらう(エスカレーションしてもうらう)か、2.かけ直して知っていそうな方に当たるまでがんばるか、しましょう。
     
  • 間違えて申告した場合 - 一旦送付した後に間違いに気づいたのですが、ヘルプデスクに確認しましたところ電子申告自体は何度でもでき、最後に申告したものが有効になるとのことで、そのままもう一度申告しました(データを保存していたので修正して電子申告しました)。
     

 
とまぁ、こんなところで私と嫁の確定申告が2時間半で終わりました(去年は半日かけました)。
 

ITエンジニアにとっての円高のメリット

最近円高のニュースが続きますが、まぁ日本経済にとっては円高はよろしくないかと思いますが、あまり悪いことを考えてもなんなので、ITエンジニアにとっての円高のメリットを紹介します。
 
現在のPC関連のパーツですが、基本輸入品になりますので、円高のメリットを受けられます。
ちなみに、某価格比較サイトによりますと、1枚4GBのDDR3のDIMMが6千円を割り込むぐらいの値段になっていますし、6コアのCore i7 – 980Xが8万円台で買えます。これを軸にシステムを組みますと、
 
CPU:6コア、論理12スレッド(Core i7 – 980X)
メモリ:総合計 24GB(DDR3 4GB × 6 )
 
ちょっと前のサーバーなんか目じゃない、なんていう夢のマシンが20万円までで組めるのですごい時代になったもんだと感心します。
私もどうしようかと悩んでいるところです。もっとも今はメモリ24GBを使って何をしようかと思案中なのですが・・・。

中小企業実態基本調査

ここのところ更新をさぼっていましたオオフジです。書くネタがないことはなかったのですが、今月、英検がありまして勉強で地味に急がしいので更新をさぼってました。といってもあまりにも更新しないとアクセス数が下がるので更新します。
 
10月に入りまして国勢調査の時期になりましたが、一般的でないと思われる調査に、中小企業実態基本調査というのがあります。
詳しくは、このページを参照頂ければよいのですが、平成16年から毎年行われているらしく今年はうちの会社にも調査がありました。
調査内容は、いわゆる決算の内容にプラスして、従業員の数やその他の質問があります。印象に残ったのは、『貸し渋りにあってますか?』とか『電子商取引の売上に占める割合は?』とかがありました。
 
調査結果もみることができまして、例えば、平成21年確報で
・売上高の内訳、産業別・従業者規模別表をみますと、情報通信産業の一人当たりの売り上げ高が、
 法人企業 約1400万円
 個人企業 約 500万円
 
となっているようです。IT産業の場合、個人企業というのはほとんどフリーランスのエンジニアだと思われますので、フリーランスのエンジニアの収入が約500万円といったところになるようです(もちろんあくまでも平均になります)。また法人企業の場合では外注やハードウェアの仕入れ等も行っていると思いますので一人当たりの売上高を計算すると個人企業よりも高くなるかと思います。
 
また、先ほど出てきました、電子商取引についてですが、
・電子商取引 産業別・売上高階級別表をみますと、全体的には、概ね

実績が上がらなかった  10%
売上高に占める割合が10%未満  50%
売上高に占める割合が10%以上  25%
まだやっていない  15%

 
とのことで、ECサイトに関してはこれからは、新規開発というより、売上アップの為のコンサル的な仕事の需要が増えるかと思われます。
 
もちろん私もその手のご相談にのることができますので、相談毎などありましたらこちらにアクセス下さい(って最後の締めが宣伝か・・・)。

弱者マーケティング

最近、インターネットで記事を見ていると以下のようにいわゆる非正規雇用者に迎合するようなメッセージが多いように感じたりします。
 
職場の“身分格差”がフリーライドの温床に!「タダ乗り正社員」に搾取される非正社員の悲鳴

上司と部下の力学 “正社員様”に見下される非正規社員の憂鬱 安易な正社員化ではどちらも救われない

解雇自由化は日本経済復活のための一丁目一番地 – 藤沢数希

 
私は、紙媒体のニュースは、いわゆるゴシップ雑誌のSPA!しか読んでいないのですが、そのSPA!もここまで露骨に正社員に対するバッシングは行っていないので、ひょっとしたら、これらの記事は『WEB向け』に最適化されているかと勘ぐってしまう。
 
つまり、言い方は悪いですが、
 金を払って記事を読まない層 → 非正規雇用者
のような読者層をメディアが予想して、それに対してヒット数を上げる為の記事構成を考えたと思われます。ので、普通の週刊誌や新聞を買ってみたい今日この頃です。(ってこれが目当てか!)
 
ちなみにですが、正社員のフリーライドに関する件ですが、『正規・非正規に限らず働かないヤツや働かない』という教科書的なコメントは置いておいて、働かない正社員というのは確実に減っているというのが正直な感想です。つまり企業もそんな余裕は無くなりつつあるのではと思われます。
また、
解雇自由化は日本経済復活のための一丁目一番地 – 藤沢数希
ですが、
コメント欄やはてなブックマークで、すごい勢いで反対している方を見ると、『あ~解雇が自由化されると自分の首が飛ぶって心配している人がこんなにいるんや~まだまだリストラが進むな~』と思ったりします。まぁ気持ちは分からなくもないですが、終身雇用制度はもう神話になりつつあるという状況は正社員の皆様も理解された方がよろしいかと思ったりします。
あと、企業が解雇をやるのは構わない(というかもうやっている)ですがパフォーマンスの悪い社員を解雇するなら景気の良い時にやれば良いかと思います。働かない従業員なので繁盛記に辞めてもらっても企業は困らないし、一気に失業者が溢れることもないし、景気が良いので再就職もしやすいかと思います。
 
とまぁ、このような記事をアップして、アクセス数アップを図る私もあこぎかもしれません(^^;。

テレアポオペレーターを笑わせる

先週の更新から、夏カゼをこじらせてしまい。さらに寝違えがあったらしく肩が痛くて更新がままならなかった。オオフジです。
 
書くネタに困っているのですが、今回は、最近私が開発したテレアポの撃退手法でも紹介します。
 
最近の営業の電話ですが、『営業の電話です』と名乗らない悪質なものがあります。良くあるのは、
NTT東日本マイラインフィージョンコミュニケーションの代理店の○○(会社名)です。本日は電話の請求書の件で・・・』
と一見訳が分からなく、冷静に考えれば、「何でよその会社がうちのNTTの請求書の話をするんじゃ!」という冗談みたいな事をおしゃって来るのですが、以下対策を
 
(1)営業の電話か確認する
「これは営業のお電話でしょうか?」と聞き返すと真面目なテレアポは『そうです』と言いますので、「要りません」と続けることができます。
女性のテレアポに多いですが、50%程度はこのレベルの応対で済ます。
 
(2)切る口実を作る
「営業のお電話でしょうか?」と言うと『いいえ違います』と堂々という兵もいます。そのような場合は、「じゃNTTに確認しますので・・・」と言えば切ることが可能です。
 
(3)テレアポを認めさせる。
 最近、偶然開発した技ですが、結構兵でなかなか営業と認めませんでしたので、逆に営業の電話ということを認めさせたくなりました。
私:「営業のお電話ですよね。」
営業:『違います。○○です。』
私:「だから営業の電話でしょ」
営業:『いえいえ○○です。』
私:「解ったわかった。そこでは営業の電話と認めるわけにはいかないよね。これからは「はい」か「いいえ」で答えてくれたらいいのでちょっと聞いてね。」
営業:『はい』
私:「こういう電話っておおいのよ。で、一見何の電話か解らないんだけど、こういう勧誘って良く売れるの?」
営業:(笑いながら)『はい』
私:「あ、そう。お宅も大変そうだけど、私からしたら、ものすごくイライラするから出来ればやめてほしいのよね。」
営業:(笑いながら)『はい』
私:「あなたに言っても仕方ないことだし、あなたも仕事でやっているのは解るのだけど・・・」
営業:(笑いながら)『はい』
ここから都合、4,5分程度、逆に苦情の話をしましたとさ。
 
よろしければ皆様もお試しあれ。

ITエンジニア向けの個人旅行入門

 私の会社ですが、知っている人は知っているのですが海外旅行が専門の旅行会社になります。私はそこのシステムを開発、運営しております。
もっとも、零細なのでシステム担当者を一人抱えるのも厳く、糊口をしのぐ為に他社さんへ仕事をしたりしております。
このブログですが、少しは会社の売上に貢献しようという意図の元で、会社のリンクを張っていたりするのですが、思わぬ効果か最近ITエンジニアと思しき人からの問い合わせが増えたようです。
それ自体は良いことなのですが、弊社は個人旅行を専門に扱っており、つまりパソコンでいうところの自作専門店のような感じになります。ちょいと敷居が高く、つまりお客様に多少の知識というか作法が要求される訳です。
もっとも『客に向かって作法とは何ぞや!』とまでは思わなくても『なんか面倒だな~』と思った方は、オオフジのブログを見た!と言えば、親切にするように担当者には伝えておりますのでよろしくです。

お暇な方は、以下の説明を読んで頂ければと思います。

弊社の旅行部門の状況
  • 旅行会社は薄利多売
     私も若かりし頃、いわゆるJ○Bが就職ランキングのNo1になっている様を見て、『旅行会社の社員って楽しそうやな~』とか思ていましたが、2010年現在、旅行会社というのは儲かりません。私はITエンジニアで良かったとつくづく思うぐらいに薄利多売です。例えば50万円の旅行の手配を行っても旅行会社には10%(つまり5万円)も手に入りません。ひどい時はマジで数千円の時があります。恐らく多くのITエンジニアは『そんなん簡単やん。数千円で充分やん』とか思われるかと思います。繰り返しになりますが、弊社の場合は単純に売れば終わりではなく、飛行機やらホテルやら鉄道やらをお客さんと相談しながらになります。つまりコンサルタントが入るわけですが、当然にコストがかかる事は理解していただけるかと思います。
    多くのITエンジニアの方は、客先に常駐すると仕事があろうがなかろうが1万円は手元に入るかと思います。会社の売上で言えば1日、数万円になるかと思います。何故、日本のIT業界で人売りビジネスが横行するのかが良く解ります。マジで手間なく儲かるからです。
     
  • ネットのお客は対面販売のお客と比べると厳しい
     もちろんこのブログを見ておられる方はそうでもないかと思いますが、ネットのお客は対面販売のお客と比べると厳しいです。大分前に『私の身近なモンスター』でも紹介しましたが、ここまでの人はマレなのですが、ネットのお客は合見積が当たり前で、色々やり取りをしていきなり音沙汰が無くなるということも日常茶飯事です。そのようなことが1日に何件もあると、担当者も学習し儲かりそうもないお客様が解るようになり、冷たくなるのですが、その判断というのは完全ではない為、素人のお客様には冷たくなりがちになります。で、ITエンジニアのお客様は結構この例外に該当したりします。
     
    ITエンジニアの言葉を借りますと、
    お客:「お宅のパソコンにCentOSを入れたら動かなくなった直してくれ!」
    的な質問が来るとどうしても
    担当者:「オープンソースは自己責任なので御自身で処理して下さい。それとも弊社のPCのハードが壊れましたか?」
    お役:「いや、CentoOSを入れたらお宅のパソコンが動かなくなったんで!』
    担当者:「・・・」
    という噛み合わない話になりますとお客も担当者もストレスしか残りません。
     
    当然に客商売であればそのようなことが無いようにしなければなりませんが、いかんせん人間がやることなので相性もあり、ネットというコミュニケーションにワンクッションある媒体を使うと齟齬が出てきます。
     
厳しいお客様の例
  • 商売でやっていることを理解していないお客様
     当たり前ですが、弊社は商売で旅行会社をやっております。一部HP等で無料の情報提供を行っていますが、基本的にボランティアではありません。その部分を充分にご理解頂ければと思います。
    希にですが利益を出す行為に関して『悪徳業者』のようなお叱りを受けることがあり、『サービスすれば良いやん』とご指導を頂くことがございますが、特定のお客様だけ優遇することはできません。それは他のお客のご迷惑になるからです。
     
  • 値切り交渉を楽しまれるお客様
     特定の地域で、提示された価格をそのまま鵜呑みにせずに『そこから幾ら値切れるか?』というゲームを楽しまれる方がいらっしゃいますが、再度申し上げますとおり、弊社は薄利多売で値切り交渉を行うコストも厳しい状態にあります。値切り交渉を楽しまれたい方はあらかじめ、『俺は30%値切りたいからそれだけ値段を盛っておけ!』と申し出て下さい。
     
  • 聞くだけ聞いたら終わりのお客様
     旅行の素人が恥を忍んで、専門家に色々聞きたいことがあるでしょう。そのような場合は、バラで購入するのではなくまとめて買って頂ければと思います。これも希にあることですが、一通り質問を聞いた後に『こっちの方がホテルが安いからこっちで買います』というのがあります。実はこのようなお客様が一番ご迷惑なのですが、お互いに気持ち良くお取引させて頂きたいものです。
     

実際は、多くのITエンジニアの方は上記のタイプに当てはまらない方の方が多いです。なので上記のお客様の例をみてもピンとこないかと思います。ただ、この様なお客様もいらっしゃるということを雑学程度に知識として入れておいて頂ければと思います。
なので、オオフジのブログを見た!と言えば、親切にするように担当者には伝えておりますのでよろしくです。