Android機種の比較、検索、レビュー投稿できるサイトを作ってみた

新しい機種を買うときは使った感想が非常に知りたいものだと思う。だから3連休で時間があったので、Android×Androidというサイトを作ってみた。

http://steel-plate.jp/android/


できること

まずはこれぐらい。これから少しずつ増やしていこうかと思う。

  • Android機種の絞込み、検索
  • Android機種のレビュー投稿

レビュー募集中

Android×Androidでは随時レビューを募集しています。投稿用フォームから投稿お願いいたします。

ソーシャルゲームは乱立したらつぶれる気がする

↓を読んで、ちょうどいいからソーシャルゲームについて思っている雑感を書いてみようと思う。

ソーシャルゲームの流行は一過性だというのが僕の考え。みんなちょっと不況が長すぎて飛びつきすぎてるんじゃないのかな。

ここからは僕の想像になるんだけど、モバゲーとかGREEとか使ってる人間はちょっとした暇つぶしにゲームをやる人が大半だと思うんだよね。そこを勘違いしちゃって少ない課金して楽しんでくれてるユーザをさもどこでも課金すると信じ込んで、「今はIT業界の数少ない成長株だ!」みたいな感じでいろんなところが参入してきちゃってる残念な感じ。そのせいで、これから先は無料のソーシャルゲームが乱立してユーザが分散化してしまうと思うんだよね。

ユーザが分散化してしまうとどうなるかと想像すると、今度はお金を使ってくれていたはまる人が少なくなるって結果を招くと思うんだ。

怪盗ロワイヤルとかがなんで流行ってるかというと、流行ってる感が強くてやってるユーザが多いからみんな数あるソーシャルゲームの中から怪盗ロワイヤルを選んでるってのが僕の推測。で、先にはじめたユーザに勝つためとか、知り合いの友達に勝つためとかで課金することで簡単に強くなれる*1から課金するユーザもでてくるんだよ。これがユーザが分散してごらんよ。別にわざわざ課金して強くなってそこでヒーローになる必要は無くて、別のゲームを選んじゃえばいいとユーザは考えるんだよね。だってどこも無料だし、それより面白いゲームが探せばあるかもしれないんだから。その結果課金するユーザはどんどん減って、流行らない無料ソーシャルゲームが乱立してちょっとした無料ソーシャルゲームのゴーストタウンみたいなのが出来るんじゃないかな。

結局携帯のソーシャルゲームってのは手軽にどこでもできる暇つぶしにすぎないと思ってて、それに過剰に期待するのはどうなのかな?これから先、ユーザを獲得するためにどんどんグラフィックに凝ったり音楽に凝ったりしていくはずで、今は安く済んでいる開発費がどんどん膨らんでいって今のゲーム業界と同じ道を結局歩むことになるんじゃないの。まぁ、それには後10年ぐらいかかってその間に儲ける人は儲けていいのかもしれないけど、「次にくるのはソーシャルゲームだ!」みたいな世間の流れを見るとげんなりしてしまうのは僕だけなのかな。

まぁ、唯一違うのはソーシャルゲームは広告が出せてるってことで、ハードがあるゲームは作ったら売るしかないけど、ソーシャルゲームは誰かが使っていてくれている間は細々とでも広告費が入ってくるのが救いかな。ま、流行らないソーシャルゲームの広告費とか雀の涙に近いと思うけどさ。

*1:ここらへんはゲームバランスの問題だとも思うんだけどさ

中小企業とベンチャー企業は違う

↓を読んでの雑感

創業メンバー以外でベンチャーに入る人って馬鹿なの?死ぬの?

ここに書かれていることは中小企業の話なんじゃないかな。そこらへんにあるような100人未満の中小企業なら書いてあるとおりだと思う。やっている作業は一山いくら程度の仕事をして、そのお金を上が採取して残りを自分がもらう。得られるものは仕事が無いときの少しばかりの安心感って感じかな。言い方は悪いけど、うえの人間から見た下の人間なんてお金をせっせと運んできてくれる人間に見えてもしょうがないと思う。まぁ、その上の人って言うのは途中で安定してから入った人に比べればリスクをとって起業したわけで、それなりの恩恵を受けてしかるべきだと僕は思うけどね。

で、いままで書いたのが中小企業の話。ベンチャー企業となるとちょっと違うと思う。

ベンチャー企業って何がしかの新しいサービス・新しい仕事のやり方で伸びていこうとしている会社のことだと思っている。中小企業で仕事の方法・サービスも大企業と変わらず、人数だけが少ないだけの会社なら「ばかなの?死ぬの?」って言われてもしょうがないのかもしれないけど、なにか新しいことに挑戦している会社にはいっているのであればいろんなことを学べると思う。それに、そのサービスが軌道に乗った場合、創業者じゃなくても早く入っていればそれなりに恩恵を得られると思う

結局会社って言うのは個人で出来ないことを実現するためのものだと思うんだ。「起業しろ」ってよく聞くけど、その人が言っている企業って言うのは、人脈ベースの起業のことなのかな。それとも、サービスベースの起業のことなのかな。人脈ベースで起業すると、年齢が低いうちはいいのかも知らないけど年齢が高くなるにつれて厳しくなるから若い人を雇って自分がとってきた仕事を下にやらせて搾取。これがよくある中小企業のパターン。そうじゃなくてサービスベースの起業をやるべきで、何か新しい方法・サービスを思いついてそれを実現するために起業しないと意味が無いと思うんだ。サービスを思いついた人たちっていうのが創業者で、サービスを実現していく人たちというのがベンチャー企業に勤めている人っていう関係が、理想的なベンチャー企業だと思う。というか、会社ってもともとそういうものじゃないのかな。

少ないパイを起業することで取り合っても結局は中小企業が苦しくなって大企業が甘い汁を吸うだけ。そうじゃなくてパイを増やすようなアイデアを持っている人が起業するべきで、元記事で書いているような搾取するような仕事の仕方しか思いついていない人は起業とかするべきじゃないんじゃないかと僕は思うよ。

開発がうまくいくための5ヶ条

前の記事ではちょっとネガティブなことを書きすぎて、これじゃiPadもらえないと思うから今回はちょっとまじめに。僕が大規模開発をしてみて肌身を持って感じた重要だと思う5ヶ条をかいてみるお。
組み込みの大規模開発で僕が感じたことだから突っ込み大歓迎だお。
iPadほしいお

仕様書は簡潔にきちんとしたことを書く

仕様書書くのって非常にめんどくさい。面倒だからってないがしろにしてると非常に不安定なものが出来上がってしまうんだよね。仕様書で大事なことは簡潔で読み違いが無く分かりやすいものを目指すということ。僕の中で各仕様書に書かないといけないことをまとめると↓になる。

要件定義書(BI)
作成物が何を実現するものなのかを記載する。
基本設計書(BD)
作成物を機能単位にタスクで分割し、各タスクの外部IFを規定する。
機能設計書(FD)
BDで分割したタスクを今度は機能部に分割する。ここで機能部ごとの外部IFを規定する。
詳細設計書(DD)
FDで規定した外部IFを実現するための関数を規定する。

実装はDDを元に作成していくんだけど、DDが一番ぶれることが多いと思う。だからdoxygenとかを使って自動で作成できるようにすると後で手間が省ける。んで、BI/BDがぶれる仕事って言うのは非常にまずい。ここは絶対にぶれないように作成する必要があって、ここがぶれる仕事は何かが間違ってる。
あと、FDは結構ぶれるんだけど実装の最中にFDがまずいと分かった場合はきちんとFDまで戻って設計をしなおす勇気が重要なんだよね。その場しのぎの小手先でごまかし続けると後でわけの分からないものが出来上がってしまうからきっちりとFDまで戻って作り直す勇気が重要。これをやるかやらないかで作成物の完成度がかなり変わってくるよ。

コメントは動作を書く

新人のときにしつこいぐらいに「コメントはいっぱい書け」「変数名、関数名は分かりやすい名前をつけろ」っていわれた記憶がある。命名規則に関しては誰でもしっかり守るんだけど、コメントは間違って大量に書く人が多いんだよね。コメントをいっぱい書くっていうのは、コメントを読めばどういう動作をするのかというのが分かるように記載するっていうことなんだ。
たとえば、以下の二つのコメントがあったとするじゃない。

/* エラー判定 */
if( SUCCESS != err_code )
/* メモリ確保失敗時にエラーが返答される。エラー時は管理領域を解放 */
if( SUCCESS != err_code )

一個目のコメントは全く意味が無いと思うんだ。エラー判定をしていることぐらい見れば分かるしね。コメントに書くべきことはそんなことじゃなくて、二つ目のコメントみたいに何を判定したくてその結果どういう処理をするべきなのかってことなんだよね。自明なコメントはわざわざ記載する必要が無くて、どういうときにどういう動作をやるってことが分かるコメントを書くことが重要で、そういうコメントをたくさん書くことで保守性が飛躍的に高まるんだ。

テストはコードで書く

テストをデバッガで一個一個動かしていく人がいるけどあれって後が大変なんだよね。確かにその場でのテストの速さはデバッガでやったほうが全然早いんだけど、機能追加とか仕様変更が起こった時に既存コードの再テストとかになってしまうと非常に大変になっちゃうんだ。
その点、テストをコードで書いておけば機能変更や仕様変更が起こったときはテストコードを流すだけ。既存コードのデバッグが非常に楽になって、思わぬところで紛れ込んだ既存コードのバグをすばやく正確に見つけることが出来るようになるんだよね。あと、テスト結果をファイルで出力するようにしておくとさらに楽。成功したテスト結果を保存しておけば、それと新たに行ったテスト結果とのdiffをとればどこがバグっているのかが一発で分かるからテストが億劫じゃなくなるんだよね。これ重要。どんなものでもテストコードがあると保守性が高い。

スピードよりも正確性が大事

これは僕が肝に銘じないといけないといつも思っていること。大規模開発でバグを出すと非常に多くの人に迷惑がかかっちゃうから、これでもかっていうぐらい見直したほうがいい。レビューも重要で、人間って自分が作成したもののバグは気づきにくいんだけど、人が作ったもののバグは結構分かる。だから作ったものに関しては必ず別の人からレビューをしてもらってクロスチェックする仕組みを最初に作るべきなんだよね。
スピードが早くてバグが多い人よりも、ゆっくりでもバグが無く作ってくれる人のほうが信頼も高くなる傾向が高くて、作成量からすればスピードが早い人の方が多く作ってるにしてもバグが少ない人のほうが評判は高い。時間単価的にはスピードが早い人のほうが絶対に単価がいい仕事をしていたとしても正確な人のほうが評判が高くなるから、これ不思議。

自分だけが知ってることを作らない

自分だけが知っていること、自分だけが出来ることが多くなってしまうとどうしても休めなくなる。体調が悪くてもどうしても出なければならないって時が多くなると体を壊してしまう可能性が高くなっちゃうんだよね。だから自分だけが知っていることを極力少なくして、いつ自分がいなくなっても仕事がうまく回るように常日頃から気をつけながらやったほうが仕事はうまく回ると思うんだ。
切られる切られないの話になると全く逆のことをやれば切られなくなるんだよね。自分がいなくなったら大変だっていう状況を作り上げてしまえば切りたくても切れなくなるんだけど、諸刃の剣だと思う。仕事が出来る人って言うのはその人がいなくてもきちんと仕事が回せるバックグラウンドを作る人のことだと僕は思うんだよね。


つらつらと書いてみたけど、この5ヶ条は大規模開発に関わらず気をつけてやったほうがいいことだと思う。この5か条を守れば円滑に開発をまわせる。とまでは言い切れないけどやらないより絶対にうまくいくよ。

他にもなんかあったら教えてください。

KLab×はてな エンジニア応援ブログコンテスト

IT派遣の閉塞感について書いてみる

ちょっとイイ話、苦労話、珍プレー、好プレー…文章のテイストは自由。
エンジニアの仕事からの話であればなんでもブログにアップしてください。
あなたのエンジニア武勇伝をお待ちしております!

KLab×はてな エンジニア応援ブログコンテストとは - はてなキーワード

書いたらiPad当たるかもしれないそうなんで、なんでもいいって書いてあったから書いてみるお。
これからIT業界に入ってくる人は聞きたくないかもしれないけど最近よく思う閉塞感について書いてみるお。
iPadほしいお

仕事と趣味の違い

会社でプログラミングをしだしてわかったことは、

趣味プログラミングと仕事プログラミングは似て非なるもの

ってこと。

趣味プログラミングは面白い。仕様も自分で決めて言語も自分で決めて、大体の動きを自分の頭の中だけに残してわざわざ設計書に落とす必要も無い。全く必要性が感じられないコーディング規約も無いし、きっちりとしたテスト仕様書を書いてテストする必要も無い。とにかく動くものを一生懸命に作り上げれば良くって面白い。僕が学生時代に思い描いていたプログラミングってそういうものだったんだよなぁ。

でもこれが仕事プログラミングだと全然違ったんだよね。

仕様はきっちりと決めて、それをしっかりと設計書に落として、コーディング規約にそってしっかりとコーディングして、出来上がったものに対してテスト仕様書書いて・・・みたいなね。で、しっかりと仕様を決めたはずなのに、お客さんの鶴の一声で仕様の根本が変わって、それ無理って最初言ったじゃないって言っても聞いてくれるわけも無く設計から作り直し。こんなのが繰り返されたらそりゃ面白い分けないよね。

お客さんに認めらても会社が儲からない罠

面白くなくても仕事は仕事だからきっちりやるのは当然なわけで、面白く無いなぁと思いながらも日々業務をきっちりやっていってると、普通にお客さんの評判が上がる。評判が上がるとお客さんからもらえるお金が上がるかと見せかけてそれが上がらない。なんで上がらないかって言うと、僕は基本的に派遣で仕事をしていて派遣業って言うのは「1ヶ月働いたらいくら」みたいな世界で、仕事ができるからって倍にしてくれるかって言うとそんなわけでもない。仕事が出来る証って言うのはすずめの涙ぐらい増える会社に入ってくるお金とひたすら長く続く同じ業務なんだ。

給料が変わらなくても仕事は増える

仕事は仕事として効率的にやっていこうと考えると、少しずつでも効率的になっていって時間に余裕が出来てくる。この余裕の時間が自由に使えるわけではなくて、あいている時間があればどんどん仕事を振ってきて、仕事が効率的になると仕事量は増えていくっていう悲しい結果がまっている。それで、仕事が増えていってもそれをきっちり終わらせ続けると信頼が生まれて今度は重要度が高い仕事が少しずつふってくる。この無限ループを繰り返すと、もらえるお金は換わらないけど重要度が高い仕事をたくさんしなければならないって言うわけの分からない状況が出来上がっちゃうんだよね。

こういう状況が続くと「それなら別の仕事したほうが金が儲かるわい!」って言いたくなるんだけど、僕と同じ会社の人が同じお客さんのところでたくさん働いてるせいで強くいえなくって、悶々としながらお金にならない仕事をやり続けているって言うのが僕の今の現状。

IT業界の疲弊

やればやるほどお客さんからの信頼が得られて、お客さんから信頼が得られれば得られるほど難しい仕事が大量にふられてくる。ただし仕事の量は増えてももらえるお金の量は基本的に一緒だから適当にのほほんと仕事をやっていたほうが楽は楽。ただそれはプロとしてありえないんじゃないかと悶々と考えて結局仕事をきっちり回すとやっぱりどんどん仕事が増えていって、やっぱり楽なほうに(ry。まじで無限ループ。

IT業務の派遣業なんてこんなもん。楽しいプログラミングは趣味でやればいいって思う。

革命テレビって馬鹿なの?

今日はじめてみたんだけど、この番組って馬鹿じゃないの?

Ustreamが流行ってるからのっかて見たかったのかもしれないけど、Ustreamのすごいところってだれでもリアルタイムに動画を配信できるってところだよね?テレビって元から生放送とかやってて、画像のプロフェッショナルなのにわざわざ劣化した画像を見せてどうするんだろう。

Twitterの呟きが字幕みたいに流れていたけど、あれってニコニコ動画をまねしてみたのかな。ただ単にみんなの呟きを流してるだけならまだいいんだけど、それを司会者が読むって何なの?馬鹿なの?

本気で視聴率をとろうと思ってやってるんだったらこれを企画したのはほんとに頭が悪いと思うよ。テレビ番組とTwitterをあわせるだけなら動画と活字という二つの面でおもしろいことが出来るのかもしれないけど、Ustreamという動画サービスと動画の専門家であるテレビを合わせるって言う発想がぶっ飛びすぎてるっていうかあほらしすぎるよね。

ちょっと調べてみたらSoftBankがやってるみたいね。孫さんみたいな天才の考えることはよくわからないなぁ。凡人ではわからないような未来を見据えて試験的になんかやってるのかと裏を読みたくなるほど出来の悪い番組だと思う。

ねぼうなうを作ってみた

クックパッド主催の「開発コンテスト24」で作成したので公開。

画面イメージ


ねぼうなうってなに?

毎日設定した時刻までに決まったURLへアクセスしないと登録したアカウントで「ねぼうなう」とつぶやきます。これによってあなたのフォロワーたちにあなたが寝坊していることを伝えます。

総評

創作にかかった時間が大体10時間程度。うち、半分がTwitterのOAuthの認証周りにはまったっていうかなしさ。OAuthの認証関係についてはいつか別にエントリーでも書こうかなー。久々に自分勝手にプログラミングできておもろかった。

よかったら使ってくださいな。