PHPカンファレンスに行ってきた


さて、このたび、PHPカンファレンス2013に初参加してきました。

 

PHPカンファレンスは国内最大規模のPHPイベントで、Word PressのイベントWord Camp2013とも共同で行われてて、メイン会場入り口にはたくさんのブースが立ち並び、飲料水の提供やら書籍紹介やらプレゼントなんかもありました。

 

この日は、安全なWebアプリケーションの作り方の著者の徳丸 浩氏の講演をメインに他の講演を聞いて回ろうかなとのプランを立てていました。

 

最初はメインステージでPHP基調講演PHPの「今とこれかから」を拝聴。

Webスクリプト言語としてのPHPの人気ぶりや改めてWord Pressの影響の高さを感じました。Word Pressというキラーコンテンツの出現により身近になりましたので、暫くはWebの界隈ではPHPが主流であり続けるかもしれませんね。

 

そして、会場を移動し、PHP初心者セッションを聞きました。

若い方々が多いなか、おっさん一生懸命聞き入ってます。

PHPのフレームワークは豊富なので、自分のインスピレーションで決めればいいって言っていたのはなるほどって感じですね。

まず、やってみないとどれが良いか、自分に合うかって基準が出来ないと思うんですよね。基準を作ってそれよりよいモノがあればそれを使えば良いんですよね。

 

って間に、徳丸講演の時間に…。

かなりの人気講演で立ち見の人も多かったです。

PHPのライフサイクルとの向き合い方やPHPでのセッションフィクセイションやパスワードの防衛方法、そしてHTML5でのセキュリティ対策等をデモを交えての講演になり、最後は駆け足になってしまっていましたが、改めて、ただ作っておしまいってのでは無く、セキュリティ対策も含めた運用面が大事だなと気づかされました。

 

他に、JavaScriptMVCやPHPで稼ぐにはとかGoogleを交えたパネルディスカッションとかを聞いていましたが、Web APIの活用の講演があり、そこで色々なWeb APIの紹介があり、ちょっとTwilioというKDDIが提供しているサービスが気になっています。

 

このTwilioはWeb経由で簡単に電話をかけたり、SMSだったりってのができるようで、なにか面白いサービスが出来そうですね。

専門の講演もあったようで、ここら辺のUstreamにのってますので、

近々、勉強会でも取り上げてみたいですね。

てか、知っていれば見に行きたかったっす…orz

 

そんなこんなで、最後のライトニングトークは聞かずに撤収。

事前にもうちょっと調べていけば良かったかなってのと、もうちょっと技術的な面の講演を聞けば良かったかなと反省。

聞きたい講演がバッティングしてる場合もあったし…。

 

でも、初参戦でしたが、なかなか楽しめたと思います。

来年も可能な限り参加しようっと。

 

 

第3回「OAuth認証とは&見積で失敗しないために…」


三回目となった勉強会。

 

今回は趣向を変えてというか、司会を変えて行いました。

もともと、持ち回り性で行いたいなって思ってましたしね。

 

今回のテーマ、議題は司会者の方におましました。

 

んで、議題は

「OAuth認証について」

「見積、契約で失敗しないために…」

になりました。

 

まず、OAuth認証について。

いわゆる、Facebook認証やTwitter認証ですね。

最近のWebサービスやログインを伴うアプリケーションにはほとんど実装されていますし、大規模なサービスを提供しているサービスにはOAuth認証APIを提供しています。

ユーザ管理の煩わしさが軽減されるのと、ユーザにとってもいちいちユーザ情報を入力する必要も無く便利になりますね。

 

実装の方法等の説明を交えながら、質疑へ…。

質疑では、便利さの裏側にあるいわゆるセキュリティの問題が議論になりました。

…てか、問題にしちゃいました(笑)

一時期OAuth認証での漏洩なんかも問題になりましたしね。

まあ、漏洩が発生したのはOAuth1.0ってバージョンで2.0ではだいぶ強化されていること、トークンっていう認証情報は有効期限が決められるっていうことのようで、セキュリティ面も年々強化されているみたいですね。

またひとつ勉強になりました。

 

続いて、見積、契約で失敗しないために…というテーマで何個か事例を出して、ディスカッションを行いました。

 

【事例1】

Accessの生産管理システム
・バージョンアップ
・SQLServerリプレイス
・新機能追加
・一部不具合修正
旧システムの仕様をさらっと確認したSEが見積もりを出し受注。納期ぎりぎりになり要員がいない状況。仕方がないので、設計書なしで製造したが、テスト時に旧システムがバグだらけ!と気づく。旧システムのバグも修正するはめになったが、納期が迫り、必須機能を先に段階的に納品し、一方で新規機能を平行開発する。納品後に追加要望あり軽微であったため、修正を行ったが、新規機能の開発が遅れ、検収されずグダグダ。
結果、大赤字。
う〜ん、よくある炎上プロジェクトですな(笑)
どこに問題があったのでしょうか?

司会者氏は設計を端折ったのと期間が短かったのが敗因とおっしゃりました。

 

はい、ここで私がいつも通り噛み付きます(笑)

期間が短いのが失敗の原因であり、期間が長ければ炎上せずに済んだか?

期間が長ければそれだけ人件費がかかりますね。納期というスケジュールは守れたかもしれませんが、赤字を回避出来たかは…。

 

私も含め、エンジニアってのは見積もりって言えば工数、スケジュールに視点が行きがちではありますが、会社やプロジェクトとしては見積もり工数をオーバーしていても、損益分岐点を下回っていなければ、まあ、赤字ではないですよね。

 

1エンジニアにはなかなか難しいことかもしれませんが、やはり原価をある程度把握出来ることって大事じゃないのかなと思ってます。

単価って原価+マージンですよね。通常はその単価にそって工数を算出します。

もちろん、非生産部門給与や会社の備品のような経費も関わってくるので、こういった単価について考えるのは経営部門の話なんですけど…。

でも、仮に1人月(160時間)の仕事を、1ヶ月定時内で終わらせたのと、残業や休日出勤で半月で仕上げた場合、エンジニア的には後者の方をよくやったって言いがちですが、儲けとしては時間外手当分、損してますよね。

ここら辺くらいは考えても良いのではないかと思ってます。

 

さてさて、ここらで議論は工数についてのお話になっていきました。

工数を見積もる場合、みなさんどうしてますか?

 

通常は順調にいった場合の工数+リスクって言うので出していると思うんっすよね。

ただ、こういったのって、経験則に基づくってのが多いじゃないですか。

仕様が大雑把な場合は経験則ってのでしか工数を出しようがないのは事実ですね。

リスクがどこにあるのか、この顧客はコロコロ仕様を変更があるとか、この技術はこういった箇所がネックになるとか…

経験でしか分かりません。それを定量的に把握するためには、キックオフ、進捗会議、反省会ってのが大事ではないかと思ってます。こういった場で、予定オーバーした要因を把握することで次ぎに活かせるのではないかなと。

ただ、そのPMやPLの頭にだけあるのではなく、しっかりドキュメント化していくことで、次のPM、PLの失敗を軽減できると思ってます。

 

【事例2】

 AccessからWebシステムへのリプレイス。
 要件定義を作成する。この工数は最終的に製造見積もりに乗せるし、 失注時は要件分は請求可 (何と!!)。
ユーザは「金額高杉ワロタwww」って状態。
契約もままならなくなったので、次回からの案件では要件定義って内容で契約することって上司から言われた。
要件定義の工数ってどう出せばいいでしょうかね?
ここら辺で時間がなくなったので、だいぶ駆け足になりました。
わたしも、とりあえず意見だけ述べるに集中(笑)
要件定義の工数って確かに難しいですよね。
製造のような積み上げるべき具体的なものもないですし。
個人的にはプロジェクト全体のスケジュールから割ける時間を割り出すしかないと思うんですよね。
そんなこんなで時間が来て終了。
う〜ん、ちょっと不完全燃焼ぎみ。
わたくしが自分の意見を述べすぎたかと反省…。
でも、見積もりって様々な人間模様が入り交じったものですし、
もっと深く掘り下げても良いかもしれませんね。
また題材としても面白いと思います。
司会者氏の感想
人の意見を引き出すことが難しかった。もうちょっと人の意見を引き出せるような発表を出来るようにしたい。
との事でした。
さて次回は誰かやりたいって人いないっすかね?

 

 

 

 

 

第2回「Webサービスをつくろう!」


勉強会も第2回目を無事迎えることができました。

 

なかなか、業務とか家庭の事情でフェードアウトしちゃいがちでなので、継続性が何より難しい。

だから、毎月第二金曜日にしたのもスケジュールを合わせやすいためで、来れない人にはこういうブログで開催報告をすることでフォローしていこうとしてます。読んでる人少ないですけど…。

 

さてさて、第2回目の内容としては、前回の宿題と開発環境の統一、サービス内容のディスカッションって感じで進んでいきました。

 

前回の宿題になっていた、今後の進め方はアンケートを取ってみて少ない回答数ながら、『役割分担を決めないで、全員で同時にやっていこう』ってことになりました。

 

そこで、大事なのは、開発していく環境を揃えないとってこと。

まあ、バージョンが違えば動きがかわってくるし、各々バラバラに環境作っていっても最終的なリリース時にトラブルになりますからね。

 

独断と偏見でPHP5.4とMySQL5.6を選択し、そしてIDEはEclipse PDTに決定しました。

 

EclipseやMySQLをデモを交えて紹介をして、導入は各自実施することにしました。

誰か導入で躓いてくれると、そこからナレッジが溜まったりするんですけどね(笑)

 

各自ノートPCとかを持ってきて、その場で手を動かしながら作業出来れば理想なんだけどなあ…。

 

んで、続いてはサービス内容を決めましょってことでディスカッションを始めました。

 

うーん…。

なかなか皆さん具体的なものが見えていないのか最初のうちは私に質問をする流れ。

いやいや、みんなで決めるんだから「こうしたい」「こういうのを作りたい」って意見が欲しいんだけどって思ってたけど…。

でも、時間が経つにつれて皆さん色々意見が出てきました。

 

こうした仕様を決めたりってのが、皆さん好きなんでしょうか?

飲み屋だけじゃなくてもとか、グループはこういう単位がとか…

最後の方は多いに盛り上がりましたね。

 

決まったサービス内容は↓こんな感じ。

・ログイン機能

・アカウント作成:匿名性、メアド程度で登録、アイコン設定、よく行く場所(生息地)を登録

・グループ作成:オーナー承認、グループメンバー承認、フリー

・コメント:パブリック、グループ、プライベートのカテゴリわけ、そこに「いきたい」「いかれた」のステータス分け

・地図表示:地域単位でコメント件数表示、詳細にすればコメント内容が分かる(大島てるのイメージ)

・評価制度

・ランキング制度

 

なかなか面白いかもしれません。

こういった流れから、スマートフォンアプリとかデータ解析(ビッグデータ)とかの技術を学んでいけたら楽しいでしょうね。(自分だけかもしれませんが…)

 

次回は具体的な仕様を決めていこうかと思ってますが、技術的なことも織り交ぜた方が勉強会的かな?とも思いつつ。

 

次回の司会は別の人にしようっと(笑)