読者です 読者をやめる 読者になる 読者になる

奇特なブログ

「殊勝に値する行いや心掛け」を意味する、奇特な人になる為のブログです

案件の状況とか排他制御とか色々

えっと、久々にITシステム関連の現状について色々書くことにします。

まず、主に先月観察していた案件状況から。

 

1.言語間での単価の違い

 

まだ観察が少ない気もするんですけど、

やっぱり結構この辺もあるのかなと。

具体的には、RubyPythonが高いケースが多く、

PHPPerlPerlは殆ど見ていないが)が低いケースが多い印象です。

CとかC++とかJavaは全然見ていないので分からないですけど。

あと、GoやErlangも数が少ないので分からないですね。

 

予想では、開発者の「数」が影響しているんだろうと思いますね。

勿論、数が少なくても需要が無いとダメではありますけど。

あと、言語毎の特徴(出来る事)や性能(速度)は、

そんなに重要視されてはいない様にも感じますね。

だったら、CやC++Javaがもう少しWebで使われても良いでしょうから。

 

RubyPythonならなぁ・・・個人的にはPythonの方が好みかな。

全然と言っていい程知らないですけど、

言語にコーディング規約が存在するっていうのは気に入りましたしね。

と言いつつ、PHPでも月70万ぐらいだったらあったりもしたので、

取引先次第な部分も多いとは思いますけどね。

 

2・準委任VS請負

 

結構前からボンヤリとは思ってはいたんですけどね、この辺は。

まず、基本的には以下の様な傾向があると思っています。

 

1.発注者はシステムの完成まで面倒見て欲しいので請負を好む

2.ただ、システム開発の場合、システムを完成して納品という形態が馴染まない部分も多く、準委任などの成果物を問わない形態の契約の方が相性が良かったりもする

3.金額的には、請負の方が高い場合が多いが、見積もり次第な部分もある

 

まぁ、相性悪い部分があるにしても、

それでも発注側としては作り切ってからお金を払いたいというニーズは間違いなくあるでしょうから、

ポイントなのはやっぱり「成果物の定義」という事になってはくるだろうと思うんですけど、ココが揉める所ですしねぇ(苦笑)

まぁ、「要件」って基本的に難しいとは思うんですけどね。

個人的には、「こんな家に住みたい」「こんなゲームがしたい」「こんな人と結婚したい」「こんな人生を送りたい」とかを考えるのと、システム開発の要件を考えるのって、「自分の希望を整理する」って意味で似ていると思ってまして、で、前述の難しさを考えてみても難しいだろうなぁと思いますし。

 

ということもあり?最近は、設計や運用以外の開発工程でも、準委任の契約案件が増えている?し、そういうエンジニア(これは実際に何人か見た)も増えている印象ですね。でも、金額は安くなりがちと。

 

金額に関しては、以下のツイートをした事があるんですけど、

この辺は、「国の景気」や「業界の景気」も関係してくるのかなとも思いますね。

リーマンショックの時に案件激減したのを見ても。

 

kitoku_magic on Twitter: "@tyonekura 「平均」(なので一概には言えない)だと、確かにそのぐらいな気もしますね。あと、個人的には、日本は「上限」が低い(1500万以上とかになると、かなり厳しい)印象の方もありますね。"

 

だから、ビジネスに関して成功して欲しいというのは常々あるんですけど、

現状見てると、「短期的な視点"しか"ない」のと、

「一つのサービスに対する期待値が高過ぎる」が殆どなんですよね。

特に、最近後者に関してよく思うんですけど、

「そのサービス、もう伸びしろあんまり無いと思うよ」って思うサービスなのに、

「まだまだ売り上げ上げるんだ!」というノリで過剰に働き続けたにも関わらず、

思うような結果が出ないということで、モチベもダウンしていくという。

多分、こういう時にポイントなのは、

勿論売り上げを維持するっていうのは大事なんですけど、

どっかのタイミングで「損切り」をすることなんだろうと思いますね。

で、この辺が上手なのが経営上手なんでしょうと、きっと。

 

この辺、引き続き見ていきますけど、とりあえず現状ではこんな印象ですね。

 

3.直接契約

 

結局、契約には至らなかったものの、

エンジニアを企業と結びつける会社であるにも関わらず、

契約は、エンジニアと企業が直接行うというケースがありまして。

まぁ、この人材紹介サービスというか、

この商売形態もそんなに稼げる商売ではないと思いますし、

確かにそんなに労力を割く必要も無い気はしますね。

実際、上記の会社も、他の事業も合わせてやって稼いでいるとの事でしたから。

 

4.GitHub釣り

 

どうやら、一部のスタートアップ企業とか、

あと、ちょっと前から大企業も追随し始めているみたいですけど、

採用方面において、GitHubの重要度がかなり高くなっている様で。

 

ただ、ココは結構以前から、

職務経歴書とか、短い面談時間だけじゃ判断難しい」と思ってはいましたし、

上記のGitHubと類似と思われる「面談時に技術の問題のクイズを解く」というのにも、

基本的に賛成だったので、良い傾向だとは思いますけどね。

ただ、GitHubだと海外のエンジニアも対象になるので、

そこが厄介ではあるんですけど。

 

過剰にセルフブランディングとか意識せよとまでは思わないですけど、

とはいえ、Webで何にもやっていないのは、

裏で色々やっていたとしても、相手から認識してもらうのが難しいので、

特に、WebのエンジニアならWebを活用せよとは思いますかね。

 

「Webに何かを公開する」って観点って、個人的には

「書店に行った時に、Webの未購入の本の一覧を見て、どれを買うか考える」とか、

「自分のPC以外で仕事する時に、Webのvimrcの内容をコピーしてくる」とか、

色々便利なんですけどね(笑)

あと、まだ殆どやっていないですけど、

考察系記事の内容を、仕事中に他の人に見せたりも出来ますし。

 

ということで個人的には、

もっとWebを(リアルもだが)有効活用していきたいと思った次第でした。

 

5.サーフィンはこんな所にも効果が

 

比較的成功しているスタートアップ経営者の話を聞く機会があったんですけど、

どうやら、サービスを立ち上げる時に、

日本は勿論、海外の競合事例などを"あり得ないぐらい"沢山調べているとの事で、

「あぁ、情報収集のサーフィンが半端ないんだな」と。

あと、技術系のイベントのLTを聞いていて、

「あぁ、皆さん技術で"遊んで"モチベ管理しているのか」と思ったりとか。

特に、後者については、

僕は最近技術で遊ぶという観点が薄れてきていたので、

だいぶん参考になりましたね。

 

6.排他制御について

 

時々書いている、「NoSQLでトランザクション管理」の話なんですけど、

一応、以下のソースを書いてはみたんですけどね。

 

final_magic/kvs_handle.php at master · kitoku-magic/final_magic · GitHub

 

final_magic/kvs_handle_memcache.php at master · kitoku-magic/final_magic · GitHub

 

final_magic/kvs_handle_redis.php at master · kitoku-magic/final_magic · GitHub

 

ただ、ソース内にも書いている以下のリンクの内容もそうですし、

「ロックを取得した後にトランザクションが失敗したら、ロックは解放するのか」とか、

「複雑な更新処理にしてしまうと、ロールバックが難しくなるので注意」とか、色々と考える必要がある点も別途ある印象でして、

そこまで考える必要あるなら、やっぱりRDBでやった方がという気もしますね。

 

dekokun.github.io

 

元々、「パフォーマンスを良くしたい」って目的からこの話って出てきているんだと思うんですけど、

正直「諸刃の剣(かどうかも怪しい、どれくらい効果があるか未知数ですし)」と思われるこの機能を充実させるよりも、

サーバの増設・増強、言語やフレームワーク自体の性能改善、プログラムのデータ構造やアルゴリズムの工夫、RDBSQLの性能改善などなど、他の比較的リスクの低いチューニングをやった「後に」手を付けた方が良い印象ですね。

でも、上記の1番の言語もそうですけど、

色々見ている限り、そこまではチューニングしていないケースの方が多い印象ですし、そっちが先じゃないかと思いましたね。

あぁ、そういう意味では、先日書いた論理削除の話も同じですね。

というかこっちは、パフォーマンスに好影響ある?って印象なんですけど。

 

ということで、出来れば使いたくない機能ですけど、実装してみたという変な話でした(笑)