「 2012年06月 」一覧

長時間拘束の仕事はエンジニアの首を絞める

今やほぼ週1の更新さえもおっくうになりつつあるのが危険だと思いつつ。

書くネタはたまに思いつくけれど文章に起こすとなるとそれなりに時間かかるのでなかなか…。

最近は色んなことをインプットする時間がなかなか取れずに、ちょっと焦ったりしている。いちおう技術者の端くれとして生きているので、新しいネタなどは仕入れていかないと、どんどんついていけなくなるのでそういう時間を作りたいとは思っているものの、その気がある時は時間がない、時間がある時は気が乗らないという感じで日々過ぎているのがマズイなあと。

特に仕事面だと、毎日長時間会社に拘束されるような仕事の仕方は良くない。火消しだのデスマだのに突っ込まれたり遭遇したりすることが多いけど、そればかりやってると本当に自分の生活って何よ、って気になってくる。

30代になると今までの経験とかノウハウを切り売りして、インプットを怠ってもある程度までは仕事は回していけるのだけど、勉強とかインプットをしていないと気づかないうちに流れから遅れていくのよね。

気づいたときには歳だけ取って微妙に使えない人、ってなりそうで。私が働いているようなSIerだとただでさえ年齢上がると肩身が狭くなりがちだし。

私の場合は就職前と20代の時の経験と知識が、今はある程度貯金として機能しているので戦力外と言われることも無くなんとかやっているけれど、仮に20代でデスマとか火消しとかばっかりやってて得るものが少ないまま30代になったら、少なくとも技術者としては先が厳しくなるのかな、とは思う。

私が若い頃は会社も比較的自由で、会社のPCや設備使って業務外で実験させてくれたり、時々は日程に余裕のある仕事があってそういう時は2,3日休みを取って展示会に行ったりなどできてた。特に会社で勉強させてくれたのは大きかったかなぁ。昔は緩かったってだけではあるし、当時はサビ残もかなりやってたけど、仕事しながら勉強になることも多かったので辛かったけど経験値を積むには良かったのかもしれない。

今は忙しい割には得るものが少なそうな仕事が多いし、仕事のやり方にしても一部のプロジェクトは管理が変に厳しくなったせいかガチガチに縛られて監視される中で作業して、終わったら帰るみたいな「仕事」ではなくて「作業」になってる感がある。若い人がこんな毎日で20代過ごしたら、その後どうなるんだろうな、という一抹の不安はある。「後進が育たない」というやつですね。

計画立てて教育をする風土ではないとか、教育する余裕が無いとかOJTの名の下にデスマやらせてるだけとか、原因はいくつもあるのだけども。コストの数字を最優先にして色んなものを切り落としてる時代だけど、必要なものも随分たくさん切ってしまってるかも。

あと仕事が少なくなったからと言って、火消し案件やらデスマ確実な案件を自分からすすんで取ってきてしまうのも、仕事を取るという面では会社としては良いのかもしれないけど、それに投入される側は多大な犠牲を払って仕事することになるのよね。体力的、精神的、時間、家族、プライベートが全部犠牲になる。

仕事無くなってクビになるよりかはマシ、という言い方はできるとは思うのだけど最初から火消し案件狙いとかデスマ案件狙いしかできない、自分たちの組織としての弱さを考えたほうがいいように思う。要するに売れない程度のスキル、売れない程度のお客との信頼度、そしてコスト。

まぁ火消しとかは一度に大量の人員投入が見込めるから人売りSIerには「おいしい仕事」というのもあるのだろうけど、要員をそんな使い方でずっとやってると潰れるしレベルアップしない。いつも疲れた空気と諦め感が漂っていてモチベーションの低い職場とか嫌過ぎる。

自社でソリューションとか自社製品とか言ってはいるけど、受託、それもデスマ必至な案件取って糊口をしのぐしかできないのでは、組織の立て直しなんていつまで経ってもできないよな…。デスマ案件繰り返してたら2,3年なんてあっという間だもの。

毎日、長時間拘束するような仕事を社員にずーっとやらせてると、社員は自分のレベルアップができないし結局は組織として弱っていく。組織が弱るだけならいいけど、社員その人の市場価値が上がらない=年齢が進んだ時にお荷物になる可能性大、で本人も苦しむことになりかねない。


仕事の近況

近況というわけでもないけど、週1くらいしか更新できないので。

仕事は何かよく分からないけど忙しい。朝8時半過ぎから夜9時くらいまでみっちり。夜9時あがりというと比較的早いような気はするけども、通勤時間が延びたことととか、朝早いことを考えると今までの忙しいプロジェクトと労働時間はあまり変わらない。

むしろ、今の仕事のほうが疲れる。

以前からブログに書いているように、作業環境が良くないのと「朝から夜遅くまで仕事するのが当然」のような空気感があるので妙にプレッシャーになること。作業が早めにキリがついても19時台、20時台には帰りづらい感じというか、とりあえず何はなくとも21時くらいまでは作業場所に残ってないと、みたいな。まぁ次の作業タスクは常にあるし、割り込みの作業もけっこう出てくるので暇してるわけではないけども。

この業界、客先常駐するケースも多いけど、自社から放置プレイされることもけっこう多いんじゃないかと思う。

特にセキュリティの関係で自社メールを見ることができない常駐先だと、自社の情報が何も流れてこなくて何がどうなってるのやら分からない、みたいなことに往々にしてなりがち。定期的に自社に戻って報告や状況を見る機会があればいいのだろうけど、作業が忙しいとそれもままならず。

うちの環境も上に同じく、すっかり放置プレイになってる感じ。まぁ…当初計画より増員できず膨らまなかった案件なので会社的には「ウマ味が無くなって」案件自体に興味が無くなったんだろうとは思うけど、そうだとすると分かりやすすぎるなぁ。仕事少ないから人売りしてまわるのにいっぱいいっぱいだからか…。

今、プロジェクトに投入されてる自分たちが今後どうなるのかよく分からないのが不安なんだけどもね。いつの間にか異動してたりしそうだしなぁ。

来年の初めまで、あの作業場所であの仕事を続ける気にはならないのだけども…。そっちで勝手にやってろって感じなのかな。

こっちはこっちで自社に作業を持って帰るタイミングを段々逃しつつあるのは事実だけど、それでいいんだっけか。他の客先に常駐していた経験は何度かあるけど、今回の現場は拘束感が強い場所でやりづらいのがネックだし、自社持ち帰りしたいのだが。


組み込みの現場でRTOSベースの既存システムをAndroidに移植しようとした時にありがちなこと

今の仕事は、いちおうAndroidをプラットフォームにした仕事ではあるのだけど、もともと組み込みのRTOSベースのシステムを移植するようなプロジェクトでシステムのアーキテクチャはAndroidというより”組み込み”の考え方。過去「スマートフォン開発もやっぱりデスマか」でも書いたのに似ていて以下のような感じ。

  • 他社から出てくるモジュールのJavaレイヤのI/FがC(Native)レイヤの関数をそのままラップしている
  • RTOSアーキ時代のタスクがそのままAndroidのSerivceになってる
  • Service間やActivityの間でやたらと非同期の呼出しや通知が多い
  • RTOS時代はこの方式で上手くいってたので、と押し切られる

他社から出てくるモジュールのJavaレイヤのI/FがC(Native)レイヤの関数をそのままラップしている

例えばJavaレイヤに、int xxxFunc(byte[] data) のようなI/Fが提供されて、引数byte[]に自分でバイナリデータを組み立てて(しかもビット単位で)呼び出さないといけない。nバイト目のn~mビット目にはxxを指定する、のような。

システム内で広く使われる予定のコアなモジュールの割にはI/Fが不親切。既存のNativeライブラリがそういうI/Fだからということらしいが、ヘルパーメソッドくらい用意すべきと思う。

こういうケースは、

  • 担当者がAndroid(というかJava)の経験が浅いか無い
  • 単に期間的、工数的に楽になる実装にしたかった(ラップするだけだものね)

であることが多いように思う。

でもそのI/Fの使用者がシステム内の各所にいるような重要なモジュールなら多少はヘルパーなり呼び出しやすいI/Fで提供して欲しいところなのだが、要請しても必要性が分からないとか「今までのシステム(RTOS)はこうだったから」と言われてお終い。

経験上、こういうひどいI/Fを出して来るときの一番多い言い訳が「呼び出し側の実装の自由度を考えた」というのだけど、いちいち引数組み立てたりしないといけない実装を各モジュールで作らせるのが自由度とは思わないけどもね。

こういうひどい設計は、上手く呼び出し側の他社も巻き込んで「使いにくいから考え直せ」と攻めてみるのが筋だろうけども…。

RTOSアーキ時代のタスクがそのままAndroidのSerivceになってる

xxxxTask -> xxxxServiceに名前が変わって再実装。

モジュール分割がRTOSと同じ感覚でちょっと細かすぎやしないだろうか、というケース。AndroidのServiceが乱立するのもね。RTOS時代から関わってる人には同じ感覚で仕事できるからいいのかもしれないけど。

Service間やActivityの間でやたらと非同期の呼出しや通知が多い

RTOSのタスク間メッセージと同じ感覚でI/F設計してしまうから。

→”xx要求”
←”xx受付通知”(相手側が受け付けましたという非同期通知)
←”xx応答”(相手の処理が完了して結果が乗ってくる通知)
でワンセットになってたりするケース。

応答を受けるまでは次の要求を投げてもエラーになります、キューイングはしないので呼び出し側で管理してください、が割合多い。

確かに、ハードウェアまでアクセスするために応答時間が数100msかかる可能性があるので非同期処理、というのは組み込みでは多い。

RTOSならセマフォやシグナルとか駆使して実装するのがセオリーだろうけど、Androidだとメインスレッドはブロックできないし、I/Fを使う側としては呼び出しと応答後の続きの処理がソースコード内の離れたところになってしまう。なのでソースコードを見たときに処理が見通しにくい。

多少、ブロッキングするメソッドであっても同期型でI/Fを用意してもらって、使う側でスレッド立ててその中で呼び出すなりできるけどなぁとは思うけれど正解がよく分からない。

ただ、コールバックやスレッドを上手く設計しておかないと後からバグだらけの懸念。内部の状態管理もきちんとしないといけないだろうし。

RTOS時代はこの方式で上手くいってたので、と押し切られる

…今回のプラットフォームはAndroidなんですけど…?

開発メンバーにRTOS時代からずっと関わってる人が多いと、「今までのやりかたが最強」ということになりがち。上に書いてるように、モジュール構成とかI/Fの考え方を既存のRTOSでのシステムからそっくり持ってくるからってことなんだろうけど。

でもAndroidのアーキテクチャと合わない設計をして無理やり作り込んで後で火を噴かなければいいけども…。ActivityとかServiceのライフサイクルは考え方としてそれなりに特殊だし、Android Frameworkとの兼ね合いもどう付けるのか…。たぶん火を噴いた時にはさらにパッチ的な回避をしてどんどん複雑化していくのだろうな。

こういう感じのシステムだと

もはや作っているものはAndroidというよりRTOSの仕事をしているのと大差が無くなってしまっている。よく分からないxx管理タスクと先にやりとりしないとアプリの起動ができないとか、シーケンスを引いていくとアプリ層やService層でやたらとあちこちの”タスク”に対して複雑なシーケンスをこなさないと処理が進まない仕組みに。

いろいろ改善を試みて一部はとりあってもらったものもあるけど、もう既に各社で設計が進んでしまっててひっくり返すには遅すぎるし、プロジェクト内のパワーバランス的にこちら側の力が足りない。

たぶんこれは結合試験以降の工程で大変なことになりそうだ…。

1つの処理に対してシーケンスが多いからユーザ目線でのレスポンシビリティーが心配だとか、クロスシーケンスを各社どこまで事前にケアできてるかとか(下位レイヤは単なるラッパーレベルでしか作ってこないだろうから期待薄)、どこかにしわ寄せが来そうな気がする。

携帯電話開発の現場でも、ガラケーからAndroidスマホに開発がシフトしていく時に通った道ではあるけど、これからAndroidの採用が見込まれている色んなデバイスの開発現場は「Androidでの初物」の開発では同じ道を通っていくのだろうか。

せっかくAndroid経験のあるメンバーを投入しても、もう少しアーキテクチャや設計の考え方には、既存システムの開発に長けていて自負があったとしても耳を傾けたほうが良いと思う。数年前と違ってAndroidのエンジニアは大きく増えているしAndroidのノウハウを持った人間もたくさんいるのに、その意見を頭から潰していたら良い物はできないと思う。

既存のRTOSの資産やノウハウを流用するとしてもAndroidに載せたときにどうするのが良いのか折衷案は出せると思うし、あとあと火を噴かないために注意すべきこととかは上流工程で検討しておくのが良いはずだけど。

往々にして開発スケジュールに余裕が無いからなどの理由で既存をベースに流用すればなんとかいけるだろう、というのはどこでもある話だけれども、それで進めると設計、実装、単体テストあたりまでは一見うまくいく。けど、各モジュールを結合していくとシーケンスの不備、Android特有の動作、動いてもモッサリ、メモリ食い、Low Memory Killerで殺される現象などにきっと泣くことになる…と思うなぁ。


ASUSから実売3万円を切るWUXGA 24インチIPS液晶モニタ PA248Qが出る

直近で次に液晶モニタ買うとしたら、これが候補かなぁ。珍しいWUXGA(1920×1200)の解像度でノングレア、IPS液晶。ピボットは個人的に使わないかもしれないけど。

6/20発売予定で、Amazonでは予価3万円を切っている。

とりあえずどこかでレビューが上がるまでは様子見だけど…。16:9では無いので、HDMIとかで映像ソースが16:9のを入れた時にどう表示されるのかとかは気になる。

ASUS – 液晶/プロジェクター- ASUS PA248Q

ASUS PAシリーズ PA248Q 24.1型液晶ディスプレイ ブラック PA248Q
Asustek (2012-06-20)
売り上げランキング: 3008

Brompton輪行:篠栗~志免~福岡空港など

梅雨入りしたもののまだ実感は無いので、梅雨の晴れ間…と言うべきかどうか迷うけれど、天気が良かったので久しぶりのBrompton輪行。

今日は篠栗まで電車で移動してそこから志免を通って帰ってくるルート。

篠栗も何度か通りがかったり、駅に降りたことはあるはずなんだけど周辺を散策した記憶が無い。

駅を降りてあてもなくブラブラしてみると、ちょうど田植えの時期。確かにうちの近所の田んぼも梅雨入りくらいに田植えしてるな。うちの近所の田んぼはだいぶ家や店が建って無くなってしまったけど。

DSCN0672

DSCN0682

粕屋町には駕与丁公園っていう整備された公園があるのね…。

DSCN0694

たまたま通りかかった志免の竪坑跡。初めて見たけど思ってたより大きい。

DSCN0697

夕焼けはだいたい何時だれが撮っても画になる。

DSCN0710

帰りがけに月隈の空港滑走路へ。ここも久しぶりに来た。

日没前後の暗さとコンデジだと、ピント合わせが間に合わず飛行機の写真は全部失敗。飛行機撮るなら一眼は必須…。仕方ないのでここでも夕空を撮ってお茶を濁す。

DSCN0717

DSCN0718

今回の行程は約26km、3時間半くらい。Bromptonが思ったより良く転がるので乗りやすい。

しばらくは梅雨だろうから、輪行もお預けか。夏休みがちゃんと取れたら、旅行がてら輪行かなぁ。その前に夏休みが取れるかは別の話だけど。


アキレス腱炎

先週の土日に久しぶりに自転車に長い時間乗ったら、どうも左足のアキレス腱に違和感があった。

気にしつつもさらに月曜日にちょっと長い距離を歩いたら、足首が腫れたように痛んできた。

最初は捻挫と区別がよく分からず、捻挫ともちょっと違う痛みだなぁと思って症状から調べてみると「アキレス腱炎」らしい。

アキレス腱を使いすぎた場合などに起きる症状で、要は炎症を起こしているのだと。私の場合は過去のうっかりから痛めた古傷が元になってるのだと思う。

湿布を貼ったものの、その後2日間くらいは歩くのもやっとの状態でその後はだんだんと落ち着いて来ている。いちおう、意識的に歩きすぎない、自転車でも力を多くかけてペダリングしないなど気をつけてはいるものの、再発しやすいらしいので心配。

自転車も通勤で乗らなくなって週末だけ急に長時間、重めのギアで乗ったりしたのが良くなかったんだろう。普段から乗っていればそこまで負荷にならなかったのかもしれないけど。

しばらくは脚への負担を考えながら生活しないと…。


IKEAのデスクとチェアの組み立て

昨日IKEAで買ってきたデスク(VIKA AMON)とチェア(MARKUS)の組み立て。

まずはデスクから。

IMG_20120603_160634

梱包に使われてる段ボールはそのまま作業用の下敷きに使える。フローリングを傷つけないためにもそのまま敷いて作業すると良い。

IMG_20120603_160651

脚を取り付ける台座をネジで固定するための下穴が最初から空いているので、

IMG_20120603_160947

まずは台座を取り付ける。空いているのはあくまで下穴なので木ネジを脚1本につきネジ5個を締めて行く必要がある。

IMG_20120603_161541

今回はIKEAでついで買いした電動ドライバー FIXAを使って。このドライバーは安いだけあって回転速度も変えられないけど、今回の組み立て程度なら特に問題は無かった。木ネジを締める時は両手でしっかりと木ネジを押さえつけるようにしてドライバーを回すことさえ気をつければスムーズ。逆にきちんと押さえておかないとネジの頭を舐めてしまう。

IMG_20120603_162504

このデスクは5本脚なので5カ所に台座を付けたら、脚の取り付け。これは台座にねじ込むだけ。ただし、脚と台座のネジのかみ合わせが良くなくて、真っ直ぐにかつゆっくりとねじ込んでいかないと斜めになるしネジ山も舐めそうな感じがした。ネジ山を舐めると脚が付かなくなるのでここは慎重にしたい。

IMG_20120603_162847

MARKUSチェアのほうは説明書を読みながら組み立てればそれほど問題はない。ただしこれもネジの噛み合わせが悪いところがあるのでネジ締めはネジをまっすぐゆっくりと締める、電動ドライバーである程度締めたら付属のレンチで今度は手でしっかり力を掛けて増し締めしておく。体重のかかる家具なのでネジ締めはしっかりと。

DSCN0661

予定していた場所に配置して簡単にPCなどを仮置きしてみる。だいぶすっきりとした感じになって満足。横幅が200cmあるのでスペースも十分だし。

組み立てに要した時間はデスクが40分くらい、チェアが30分くらい。どちらも持ったり運んだりするときは重かったり取り回しづらいので、二人で作業するのが良さそうだけど一人でもなんとかなる。

これでセカンドハウスもまた少し部屋らしくなってきた。

VIKA AMONの天板はそこそこ塗装もしっかりしてそうで、使うのにそこまで神経質にならなくても良さそう。ただ天板が大きいのに対して脚が細いのが5本付いてるだけなので、少し安定性に欠けて揺れる時はある。特にキーボードを打ってるときは気にならないけど、人によっては気にするかも。

そういうときは脚の種類を架台付き引き出しユニットの上に天板を載せるようにすれば安定性はもっと良くなると思う。私はとりあえず手っ取り早くデスクが欲しかったので今はこの構成にしてるけど、もし不満が出てきたら脚だけ変えることも考えるつもり。


タイムズプラスのカーシェア使ってIKEAで買い物

何週間にもわたってウダウダと悩んでたデスクとチェア。

いつまでもフローリング床に座って、というのもアレなので、IKEAで買うことにした。

IKEAで大きな物を買う場合、車を持たない自分は基本的に配送を頼むことになるけれど

・20kgまでは配送料999円だけど、それ以上は2999円とけっこう高い
・配達指定は買った日の3日後以降しか指定できない(土曜に買って日曜日に配達は無理)
・配達の時間帯が午前か午後かくらいしか選べない(細かい時間指定ができない)
・ネットを見てると、傷が入ってたとか時間が守られないなどトラブルも…

というのがあって、私の場合は買っても届くのは次の週末まで待たねばならない。しかも午後のいつかの時間にくるのをボーッと待つのも時間がもったいない。

なのでもう一つの選択肢は車を借りて行くこと。

実は去年の12月にカーシェアリングのタイムズプラスに会員登録しているので、それを使うという手がある。ただ、タイムズプラスは配備されてる車種が福岡エリアの場合ほとんどデミオなので(横浜行った時はいろいろあった)、今回買おうとしてる200x60cmの長いデスク天板って載せられるんだっけというのが気になってた。

特に買った物が載るかどうかは、いろいろネットで調べてみてもなかなか分からずに迷っていたのだけど、どうやらギリギリ200cmは載せられそうなのでまずは車を借りて寸法測ってみて、ということにした。

思い立ったのが土曜日の18時頃。一番近いカーシェアのステーションまでは自転車で15分(中心部には多いけど市内南部にはほとんど無い…)だけど埋まってて空いてない。さらに探して見ても週末はけっこう空きが少なくて結局、博多駅の近くのステーションしか空いてなかったのでそこまで自転車で移動。とりあえずデミオのシートを倒して搭載スペースを作って測ってみると220cmくらいまでなら入りそうだったのでそのままIKEAまで出発。

車の空きを探したり、ステーションまで移動していたりしてそこからIKEAまでさらに45分くらい、と時間がかかって着いたのは20時過ぎ。こないだからすでに3度目のIKEA、何回来てるんだという話もあるけども。

閉店まで1時間も無いので急いで店内をまわって買い物。せっかく車でIKEAに来たのでいろいろ大きめな物も買いたかったけど…。

とりあえず、決めていたデスクのVIKA AMON天板 200×60 ブラックと、脚 VIKA ADILS シルバーを5本(天板が長いので5本脚が推奨されてる)、それからチェアもついでに買ってしまえとMARKUSを。

あとは買ったものを家の駐車場から部屋に運ぶためのトロリー FRAKTAも。VIKA AMON天板が重量15kg、MARKUSに至っては23kgと一人で抱えて部屋まで持って上がるのは無理なので。ほか小物などもついで買い。

店内のピックアップエリアで重い商品をカートへ載せるのに苦労…。下手すると腰痛めるわ…。

IMG_20120602_204341

買った物をデミオに積む。一人では重労働ね…。

IMG_20120602_205524

IMG_20120602_205542

天板はほぼ車内ギリギリ。なんとか載せて帰宅。そこからトロリーに載せて部屋までを3往復して運び込み完了。一人でよく頑張った。疲れた。

IMG_20120602_231829

これで終わったわけでは無く、車を返却しに行かないといけないので20分かけてステーションに戻って車を返却。停めてあった自転車に乗り換えて再び帰る。家の近くにステーションできないかな…。

普段ほとんどしない運転をしたり、荷物の積みおろし、カーシェアのステーションまでの往復でかなり疲れる。

とりあえずカーシェアの料金は、18~24時までの6時間パックプラン(基本料2000円+15円/km)で計2720円だったのでIKEAで配送頼むより少しだけど安くついた。体力消耗するのは別として…。20kg超える買い物するなら車借りてもほぼ配送料と同じか少し超えるくらいで収まるのではなかろうか。いちおう買ったその日に持って帰れるメリットはあるし。

全部終わって帰り着いたのが23時過ぎだったので買った物の組み立ては明日以降へ…。また組み立てるのに体力使いそう。


スポンサーリンク