ソフトウェア開発」カテゴリーアーカイブ

一言多い人になっていないかを気をつける

少し前にオルタナティブブログにてこんな記事を見かけた

実際にあった怖いバグ票(バグレポート)
http://blogs.itmedia.co.jp/morisaki/2012/08/post-a506.html?ref=rssall

見ながら、「あ〜、あるある」と思った節が何度となくあった。

指摘している内容や、考えている方向性だったりするものはしっかりとしていて、
それ自体は本当は評価されるべき内容なのにも関わらず、
最後に余計な一言が書いてあるせいで読み手にものすごい不快感を与えている。

それでいて、その人にとってはその一言こそが言いたい事だと考えている。
そこがまた一際厄介なんですよね。

言っている事がわからなくはない。
背景を教育しなければ、今回の問題はクリアされてもまた別の形で現れるかもしれない。

ただ、それはバグ票という媒体の役目かというとちょっと違う気もする。
その辺りの交通整理を、プログラマ以外の人に対してもわかる形で行えるようにならなければダメだと思う反面、
自分自身がそういう動きをとっていないかを気をつける必要がある。

なんだかんだ言って、私がメインでプログラムを書く機会というのは減って来ている。
どちらかというとチェックする側に立っているわけで、文句を付けたい衝動に駆られる機会も多い。
ううむ、少し自信無くなって来たぞ

お客様と直接話す機会を

今日は一日、東京ビックサイトで行われた展示会イベントに行って来ました。
毎年行われているこのイベント。
時々見学に行く事はあったのですが、今回の目的は自社ブースへの接客要員としての参加です。

私自身、これまでこういう接客業務をやった経験を多く持っている訳ではないので、
実際には営業部メンバーのサポートに類する行動が主なものになります。
しかし、直接お客様(候補)とお話をする機会というのは、通常業務ではまず無く、
非常に貴重な経験になると考えて営業部に申し入れた訳です。

始まる前までは、何とかなると結構楽観的に考えていたものの、
実際に立ってみると、やはりなかなかうまく喋れないもの。
喋れないのはわかっていて、いかに相手から話を聞き出すか?だとはわかっていても出来ない。
本当は、開発している立場からお客様がどういうところを気にしているのかなど聞きたい事はあるのだが、
そこまで話を持って行く前段階でつまづいている。
そりゃ、通常の営業メンバーが行うようなデモの流れに関して何かしらレクチャーされた訳でもないのだから、後から考えてみると当然と言えば当然。
準備を怠った訳だ。

出来ないながらも、色々と考えなきゃ行けない収穫はあったと思う。
自社のブースが空いていて、他社のブースが混雑していればやっぱり悲しくなる。
どういう方向性を気にしてお客様は足を止めるのか。

想定ではない実際のお客様が気にしている内容にもっともっと耳を傾ける活動をして行かなければいけないですね。

リーン・スタートアップ  ―ムダのない起業プロセスでイノベーションを生みだす
エリック・リース
日経BP社
売り上げランキング: 204

Runtime Error!?

昨日は久しぶりに、自宅に着いたら日付が変わっているという状態になってしまった。
原因はセットアップしているPCに入れた、アプリケーションがRuntime Errorを吐き出したためだ。

アプリケーションが出力する通常のエラーメッセージとは異なり、Runtime Errorが出力されるのは結構致命的。
今回は、自社で開発したアプリケーションではないとは言え、これまでも何度となく使った事のあるアプリケーション
だったので、プログラム的なバグというよりは環境周りに原因があるんでは・・・と考えたのだがわからない。

そもそも、環境周りも何も、モジュールをコピーしてしまえば動いてしまうくらい簡単な作りのようなので、
いざこういうエラーが出た時に疑う場所自体があまり思いつかないという状態で時間を浪費してしまっていました。

結局、原因としては設定ファイルのフォーマットが正しくなかったようだった。
実は完全な解決を待たずして、メドだけつけて終電の関係で一足先に帰ってしまったのだが。。。

それにしても、設定のミスとは言えRuntime Errorはないよな〜ってのが正直なところ。
一方で、自社製品に対しても必ずしも設定周りのエラーメッセージは優しい作りになっているとは言えない気がしている。
設定が誤っているのであれば、誤りを正してもらうのが本来の 方向性であり、いたずらにエラーを突きつけるだけでは意味が無い。

何のためにエラー処理なりを入れるのかを再度考えるいい機会なのかもしれない。

 

そう思ったが、そもそもこのアプリはエラー処理が何も入っていないから最終的にRuntime Errorなんて
引き起こしてしまったんだよな・・・
って思ったら、ちょっと悲しくなって来たけど見なかった事にする。

今日も、僕は元気です。

Macbook ?

今年もWWDCが行われ、いくつかの発表が出ていました。
毎回の事ですが、ライブにはつき合わずに朝起きてから内容を確認するというのんびりスタイルです。

既にいくつかのサイトで、今回の発表内容には紹介されているのですが、
それほどインパクトのある発表でも無かったように感じました。

正直、OSに他社のサービスであるTwitterやらFacebookやらが統合されて行くのは
どうなんだろう?という気がしないでもないですし。

iPhoneやiPadで一躍有名になったRetinaディスプレイ。
それを搭載したMacBookProもリリースされました。
正直、ノートPCがRetinaである事に関してはそれほど魅力的には感じていないのですが、
iPhoneやiPadに搭載された当初もそう感じ、手にしたときは凄いと思ったのでまた新たな発見があるかもしれません。
そういう意味では手にしてみないとわからないですね。

最近、家に帰ってからパソコンに向かう時間がなかなかとれません。
そこで、往復の通勤時間中にノートパソコンを広げていじれないかな〜と、
何となく思っています。

そうなると、重要なのはパフォーマンス的なものよりは重量的なもの。
そういう面で見て行くと、MacBook ProよりはMacBook Airの方がいいのではないかと思っています。

Apple MacBook Air 1.6GHz Core i5/11.6/4G/128G/802.11n/BT/Thunderbolt MC969J/A
アップル (2011-07-21)
売り上げランキング: 9836

よく、”軽い!薄い!”と評判のMacBook Air。実際に手に取ってみた事は無いのですが、カタログ上のスペックを見ると重量は約1キロ。
軽いですね。

ちなみに、今現在私が持っているノートは東芝製のDynabook SS RX1という機種。

dynabook ss RX1
http://dynabook.com/pc/catalog/ss_c/070605rx/

よくよく見てみると、これの重量も約1キロだ。

んー。
こいつをもう少し有効利用しないと行けないってことかな?
iPadを購入してからと言うものの、普段使いとしては見向きもされなくなってしまった状態なので、
何かしらの利用価値をちゃんとつけてあげる事にしよう。

VirtualBoxへの解像度追加

家のデスクトップとしてはiMacを使っていて、仮想環境としてはVirtualBoxを利用しています。
VMWare Fusionも考えてみたものの、家でシェアウェアを利用してまで仮想環境が必要になるかの
判断がつかなかったので、まずはVirtualBoxを使う事にしたのです。

Windows8のReleasePreviewがリリースされたので早速入れているのですが、
VirtualBoxが用意している解像度にはMetroで推奨しているようなワイドスクリーンが選択肢にありません

そのため、Metroアプリを使っている時、ワイドスクリーンであれば右端に続きが表示されるはずのアプリでも
特に何も出てこず、続きがあるのかどうかがわかりません。
もっと言うならば、縦にスクロールするのか横にスクロールするのかがわからないのです。

これは、縦スクロールに慣れている人にとっては実際に動かしてみると横に動いて行くので
ものすごい違和感を感じる事になると思います。

VirtualBoxは無料だからしょうがないかな〜と思っていたのですが、調べてみると
解像度はデフォルトで用意されているもの意外でもコマンドで自由に追加する事が出来るみたいです

Custom Resolutions in VirtualBox
https://mknowles.com.au/wordpress/2009/05/07/custom-resolutions-in-virtualbox/

さっそく、ターミナルを起動してコマンドを実行します。
まずは、Windows8で最低限として推奨されている1366×800を追加してみる事にします。

vboxmanage setextradata “名前” CustomVideoMode1 1366x768x32

“名前”には仮想PC名を大文字小文字を意識して入力する事になります。
また、仮想PCを起動している時にコマンドを実行した場合には一度シャットダウンして起動し直す必要がありました。

起動し直すと、確かに解像度の選択肢が追加されています。

ニュースアプリもちゃんと続きが出て、横方向への誘導が出来ている事がわかります。

解像度が自由に追加出来るのであれば、遊ぼうぜ!って事でWindowsPhone 8を意識して480×800の解像度を追加してみたのですが、
コマンドは正常に動作したもののWindows8上の解像度一覧には出てきませんでした。

Windows8はやはりARM版じゃないとそのままこの解像度に載っける事は出来ないのかな?それともVirtualBox側の問題だろうか?

開発者向けPodcast

最近、いくつかの開発者向けPodcastを聞き始めています
きっかけになったのは@kmizuさんのツイート

 

実際に調べてみると、結構多くのPodcastがあるんですよね。
いや、ある事自体は何となく知っていたのですが、探そうとしていませんでした。

思い立ったが吉日と言うことで、早速いくつかを購読してみています。
現在の購読対象としては

This Developer Life
http://thisdeveloperslife.com/

 The Basement Coders
http://basementcoders.com/

The Scala Types
http://scalatypes.com/

選んだ基準というのは特になく、ほぼ何となくです。
はっきり言って、英語力はさっぱりな状態なんですが、耳をこらしているとそれなりに知っている単語がチラホラ出てきます。
言ってしまえばその程度なので、あまり本文の内容が理解出来ておらず、これらのPodcastをお勧め出来るものかと言うことに関しては
正直わからないというのがあります。

欲を言えば、Podcastの中身がテキストに起こされていれば、技術の勉強としては役に立つのですが、
残念ながらそんなモノは期待出来ません。

それでも聞いて意味があると思うのは

  • 技術系の言葉なら何となくわかるんじゃないか?
  • 何となくわかれば、話題によってはよりわかろうとしてしっかり聞くのでは
  • 英語と技術が勉強出来てスバラシー
  • 技術用語で、本当のところなんて発音されているのかわからないのがわかる

と言うことがあげられます。
この最後の発音。いやいや、なかなかバカに出来ないですよ。
Scalaの話題を出した時に、自信満々に「それはスカラじゃなくてスケイラって読むんですよ!(ドヤ」とされた事ありますし。
実際、発音だけじゃなくてイントネーションを含めると結構和製英語のような状態になっている事が多いです。
知っている人からすれば、ちょっと恥ずかしいかも。

もちろん、内容がよければよいにこした事が無いと思うので、何かしらお勧めのPodcastがあれば ご紹介ください。

iPadからSDカードへ書き込めない?

明日から家族旅行に行くため、母が実家から出てきています。
母には以前、iPad2を与えていました。

最近ようやくデジカメを購入して、撮りためた写真をiPadに入れたいとの事。
こんな事もあろうかとカメラコネクションキットを購入していたので使い方を教えていました。

【純正品】Apple iPad Camera Connection Kit MC531ZM/A
APPLE
売り上げランキング: 4325

自分自身としては、これまで普通にPCと接続してやり取りしていたのですが
実家にはPCが無い状態なので、こういうツールが必要になるんですよね。

使い方は至って簡単で、SDカードをさすだけでちゃんと読み込んでくれて一安心

・・・

と思ったのですが

母「iPadに保存した写真を写真屋さんで印刷してもらうのに、カードに入れるにはどうすればいいの?」

うっ。
どうやるんだ???

普通に考えると、簡単に出来そうなんだけどそういう選択肢はどこにも見当たらない。
こういう時iPhoneやiPadのような、制約の多いツールは一気にわからなくなります。

軽く調べた感じでは、カメラコネクションキットでは読み込みのみで書き込みが出来ないみたいだ。
うーん、これは困ったぞ。

こんなツールもある

元々の用途はiPhoneでSDカード上の画像や動画を見たいというところから作られたアイテムのようだが、
一応用件は満たせそうだ。

ただ、これ。充電式で充電方法がUSB形式オンリーって事なのでパソコン無い状態では
充電する手段が面倒。
iPadの充電器がUSBだからそれを使えば行けなくはないんだろうけど。

また、Wifiを切り替えないと使えないというのもなんだかなぁと思ってしまうところ。
仕組み上はしょうがないと言えばしょうがないんだけどね。

やっぱり素直にカメラコネクションキットで書き込みが可能なソフトとか出ていないだろうか。
もう少し探してみようかな。

ニコ生サイエンス

ニコ生サイエンスにてGoogle関連の放送がやると言うことで、
帰宅中でしたが見ていました。
(電車移動中なので所々途切れてしまっていましたが)

小飼弾のニコ生サイエンス 「グーグル潜入映像も公開。『中の人』が明かす検索技術の未来」
http://live.nicovideo.jp/watch/lv92787473?ref=top&zroute=index

Googleにしろ、MicrosoftにしろTwitterにしろ、それぞれのオフィスはこだわっているとは思っていましたが、
Googleのオフィスの中は遊び心が満点ですね。
ともすると、「意味あるの?」と言われそうですが、少しやり過ぎなぐらいの姿勢を
上が見せているくらいでちょうどいいのかもしれない。
そんな風にすら思えますね。

オフィス潜入リポート「こんなオフィスで働きたい!」
http://www.mdn.co.jp/di/articles/2235/

これだけ遊ぶ事が出来るのは、それだけ余裕があるからでもあるし、
そういう遊びがあるから人が集まって行くと言うこともあるんだろうな。
もちろん、そういう雰囲気が苦手な人も出てくるでしょうけど。

色々話を聞きながら、
「うらやましいな」
そう思ってしまう一方で、勝手に諦めてしまっている自分もいる。

これじゃダメだね。
ずいぶんと詰まらなくなったもんだなぁと毎度の事ながら思ってしまう。
楽しくなるように詰め込んで行こう!

開発に対する評価と報酬

先々週あたりから、オルタナティブブログにて給与に関する話題が数件あがっていた。
少し前まで「リーンスタートアップ」を読んでいたり、

今現在その流れで「アントレプレナーの教科書」を読んでいる。

アントレプレナーの教科書
スティーブン・G・ブランク
翔泳社
売り上げランキング: 2407

まだこちらの本はそれほど読み進めてはいないのだが、とりあえず今の段階で思う事をメモ。

生産性

「リーンスタートアップ」を読んでいて、目から鱗というか考えさせられたのは紹介されていたドラッカーの言葉だった

やってはいけないことを素晴らしい効率で行うほど無駄な事は無い(P.357)

注に書いてあるURLは見つからなく、おそらく原文は

“There is nothing quite so useless, as doing with great efficiency, something that should not be done at all.”
http://www.goodreads.com/quotes/show/29838

だと思う。
言葉にすると実に当たり前の事なんだけど、実際の製品開発。
特に新製品の開発に関して考えてみると、その難しさはひとしおだ。

製品開発においては、どれだけその製品が利益に繋がっているのか?
新機能を投入する事で売上数はのびるのか?が”正しく”測れている必要がある。
“正しく”というのは、仮に売上げが機能追加によるものであって、
営業メンバーが頑張った要因とは切り離されて計測されると言うことだ。

そうでなければ、効率がいい開発という定義を考えた時、見積もりに対する作業時間であったり
バグの少なさのようなモノに目がいってしまいがちになる。
それは人月の話題でしかなかったり、ともすると無駄な機能をひたすらに生産してしまうかもしれない。
その結果ソースが複雑怪奇な状態に陥ってしまうという状態は目に見えている。

しかし実際のところ、これを計測するというのはやはり難しいと思う。
売上げを伸ばすために営業やその他のメンバーは頑張る。
“計測するため”にじっとしていてくれなんて話は通じるはずもない。

だが計測出来なければ、それを評価の尺度として用いるのは説得力に欠ける事になってしまう。
また、比較的中・長期的な計画で動かす必要があった場合、どうしても短期的な利益は立たない。
「リーンスタートアップ」的に言えば、バッチサイズを小さくして測定可能な形に落とし込むんだろうが、、、
難しいのぅ

TwitterのエンジニアとFacebookのエンジニア

先週、TwitterとFacebookという大きな二つの会社で働くエンジニアに関しての記事を
偶然見かけた。
それぞれ、書いてあった内容は異なるが色々思うところがあったので少し書いてみる。

Facebookの開発者文化

記事はこちら

Facebookのソフトウェア開発手法
http://langturn.com/translations/30?locale=ja

Facebookに関しては私はそれほど詳しく知っている訳ではない。
せいぜい、映画「ソーシャルネットワーク」を見た程度。

ただ、この記事を見ると、その開発者中心な。
もはや文化と言えるような手法にかなり驚かされた

エンジニアリングが主導する文化だ。「プロダクトマネージャーはここでは本質的に役に立たない」と、あるエンジニアは言う。
エンジニアは自由に内部仕様を変更し、取り組むプロジェクトの優先順位を変更し、新しいアイデアを追加することができる。

ちょっと、正直どう収集が着くのかがよくわからない。
ただ、逆に言うとそれだけ多くのエンジニアが主体的に考え、
また、情報共有が出来ているのではないか?とも思える。

生産的でなくスーパーな才能を持っているわけでもない人は目立つ。マネージャーたちは、パフォーマンスの乏しい人々を脇に避け、6か月以内に、文字通りこう言う。「これじゃ仕事をしているとは言えないね、君はうちの文化にあわないようだ」。これはどのレベルの人にも適用される。CレベルでもVPレベルでも、超生産的でなければクビになる。

そういうやり方でやって行くとすると、どうしても普通の開発者は目立ってしまうと言うことか。
ここで言う、目立ち方というのはバグを多く出すという事ではなく、
Facebookの文化を強く推進する事が出来るか・・・と言うことなのだろうか。

一概に開発者に取っての天国だとか地獄だとかは言えないと思った。
そして、これ以上大きくなり得るのだろうか?とも思う。

Twitterのエンジニア

記事はこちら

Twitterエンジニアって、どんなお仕事? 本人たちに聞いてきた
http://www.rbbtoday.com/article/2012/04/04/88031.html

Facebookの開発スタイルを見た後で読むと、
その開発手法というのは比較的に一般的な手法に近いように思える

開発プロセスはTwitterだからといって特別なことはあまりなく、まずJIRAチケットを切ってもらい、ローカルで開発・テストの後、ステージング環境でテストし、他のエンジニアにコードレビューをリクエストする。レビュアーから承認(Ship it!)がもらえれば「Preflight」と飛ばれる各ブランチをマージして矛盾なく動くかを確認する直前点検を経て、めでたくデプロイ→リリースとなる

手法は一般的かもしれないが、リリースまでの期間が最短で一日というのはやはり早い。
まぁもちろん、これは内容によりけりなんだろうけど。

オープンソースを多く活用しているというが、
実際にはTwitterのエンジニアがオープンソースに多く参加しているというのが正しいのではと、
勝手に思っていたり。BootstrapもTwitter製だしね。

開発のプロセス自体は珍しいものではない・・・と思うので、
Facebookに比べると規模は大きくなりやすいようにも思える。
なじみやすいというところか。

実際のところではもちろん、これだけの技術を支える事が出来るだけの
人材育成上の仕掛けがあるんじゃないのかな。
その辺りまでは記事では触れられていないので少し気になる。

少し前の記事だが、こんなのを見つけた

[独占インタビュー] Twitterで働く日本人「開発現場はリアルなタイムラインのよう」 【採用情報つき】
http://engineer.typemag.jp/trend/2011/11/post-22.php

なるほど。誰でもどのソースでも触る事が出来るというのはFacebookに似ている。
何れにしても、やはり圧倒的な開発力なんだろう。

少し考える

こういう記事を見ると、自分の行動力の無さにほんっとがっかりするんですよね。

この10年くらいで、開発の環境はずいぶんと変わった。
それなのに、自分を取り巻く環境はあまり代わり映えがしていない。
本を読んで勉強している気になっていたとしても、手が動いている訳じゃない。
つまり、それは結局のところ意味が無い訳だ。

一方で、会社での業務は日々管理よりの方向に動いて行っている。
それはそれで一つの方向だとは思うけど、なんだかどっち付かずな状態になってる気がしてしょうがない
いい加減動かないと行けないな。