2020年のお話

2020年はクソ案件の年

昨年はCOVID-19という新型コロナウイルスに世界中が振り回されて、何もかもが遅れる事態になりましたね。

そんな中でも比較的安定した案件や仕事が舞い込んできたのは、ありがたいことでしたが……

2020年年初、2019年のクソ案件と同レベルのクソ案件が舞い込んでくるとは誰が予想できたでしょうか。

結論から言って、この案件は第2フェーズ最終盤でリタイヤしました。

精神的にやってられなくなりました。

クソ案件の概要

2020年に請け負ったクソ案件の概要を掲示しましょう。

  • クライアントはあるレジャー施設を運営している企業です。
  • 案件の概要は、施設の予約状況を把握出来る施設内向けシステム
  • ウォーターフォール型の開発。
  • 開発言語等は問わず。
  • スタートは当初予定より3ヶ月遅れてスタート
  • クライアント→中間会社→請負会社→うちら
  • 納期は2020年5月末
  • この話が来たのが2020年2月中旬
  • つまり、開発期間が元々半年だったものが3ヶ月に短縮

お分かりいただけるだろうか。

スタートダッシュ、3ヶ月遅れ。つまり、スケジュール半分スギテーラ。

スタートダッシュが何一つ出来ておらず、上流工程にカチコミしたくなるくらい酷い状況。

さて、これどうなるんでしょうか(棒)

今回の主犯

今回の主犯は、クライアントと仕様を策定・折衝する中間会社です。

クライアントは途中からアレコレ仕様変更を要求してくる。そのくせ納期変わらない。→アホかとアボガドかと。
ちなみにお金も変わらない。

特に中間会社、イエスマンすぎて全然使えません。
最初の3ヶ月、何してたんだと。

で、その中間会社が寄越してきたドキュメントがもう読みにくくて仕方ない。
吐きそうになりました。

  • 要件定義書と称した設計書もどき
    →全体像が把握出来ない。
    →要件定義書を勉強してから書いてくれ。
    →要件定義って辞書で調べてきてくれ。
    →クライアントの要望を全載っけで書いたドキュメントは「要件定義」っていわない。
  • 設計書としても見てられないドキュメント
    →ドキュメントの主目的が完全に失われて、ドキュメントとして半分以上機能してない。
    →そもそも設計書もどきならパワポで書くな。
    →最低でもワードで書け。

まあ、長年炎上案件の火消しをしていたりすると、大体の共通項が見えてきます。

炎上案件は往々にしてドキュメントが読みにくく、主点が右往左往していて日本語としてまとまっていません。

日本語として読めないドキュメントが出てきたら炎上案件と思ってください。
そして、日本語として読めるドキュメントを書く努力をしていきましょう。
依頼する側に立ったとき、自分たちもそうならないようにするためです。
日本語でまともな文章書けるようになること、本当に大切です。

まあ、第1フェーズは、苦ソースならぬ苦ドキュメントにめげず、何とかこなしましたよ。

GW潰して40連勤。平均12時間労働で。

9月以降に第2フェーズ入りましたが、状況としては次の段階に入ったって形だけで苦行っていうことは何も変わらず。

そうすれば分かりますよね。
メンタルやられて終わりです。

結局今年の1月以降は、ほぼ仕事できなくなりました。
自分の身体がヤバくなりますもん。

2月以降のお話は、次回へと続きます。

ご無沙汰しております。

ご無沙汰しております。
なんか、前回の投稿から1年6ヶ月以上投稿していなかったようです。

すみません。
存在忘れてました。相当真面目に(苦笑)

1年6ヶ月の間、色々ありましたのでご報告したいと思います。
技術系のブログからもう遠く離れてしまいましたが、まだ見てくれる方がいらっしゃるようですので、お付き合いいただけましたら幸いです。

今回は、2019年末に請け負ってた例の案件の結末です。

2019年末にやってた例の案件のお話

さて、話は2020年初旬にさかのぼります。

最後に投稿したあの案件ですが、結局こちらで一通り要望の機能を全部ぶっ込みまして、ソースコードも一通り管理してあげてたものをすべて丸投げして終了しました。

あとは勝手にやってください。

という形です。リモート接続も出来なくなったし、先方からも連絡がないようなので、今は勝手にやっていらっしゃるんじゃないかなと思います。もう、どうでもいいけど。

ビジネスロジックの分からない海外の新人ちゃんが組み込んだクソEntity FrameworkのER図で地獄を見ていれば良いと思います。あれくらい強烈に絡み合ったリレーション貼ってると、時限爆弾の解除をする緊張感を味わえるはずです。

あと相手はVisual Studio 2015あたりで開発していたと思うんですけど、こっちは途中からVisual Studio 2019で開発していたかなと思います。ビルド自体は問題ないです。バッチで行っていたので。
後半は、結局構築する時間ないから一部PHPで組んでいた気がします。元々PHPだった案件ですしね。親和性は高いです。

2019年年末~2020年初頭は、クソ案件の後始末で終始しました。

だけどねぇ、まさかこの後に控えていた案件が更なる苦行になるとは誰が想像しただろうか……。

ゴールが見えてきた

前回の投稿から5ヶ月経ちました。
色々進展が見えましたので、ご報告。

ひとまず、あの炎上案件のゴールが見えてきました。
ちまちま超のんびりペースで作業しつつ対応しておりましたが一旦終了の兆しが出てきまして、現在対応し終わった分までで一区切りになりそうです。
本番へ公開したら晴れて作業完了のようです。

次のステップは来年以降。
いつから開始になるか分かりませんが、次からはこちらの思惑通りに動いてくれることに期待しています。
コードのリファクタリングも進めたりしたいし。

来年は少しくらい楽したい。

最近の炎上案件

お久しぶりです。
更新頻度も数年前から1~2回/年になってて酷いですね(苦笑

今回はここ最近の自身の開発傾向を振り返ってみようかと思います。

スーパー炎上案件

かれこれ1~2年ほど、この案件の潰しを行っています。
元請けがやらかした失敗を、何故か対応する義理もない我々がケツ拭いてる案件です。
余りにも酷すぎて相手のこと等具体的なことは書けませんが、時系列を整理すると次のような展開。

  1. 「元々の開発担当が逃げ出した」と飛び込みでヘルプが入る。
  2. 所属先で ASP.net 対応出来るの私くらいしかいないので事情を聞き、ヘルプ開始。
    →とりあえず、PHPからC#への社内システムのリプレースと言うことらしい。
    →これが悪夢のはじまり
  3. クライアント元に逃げ出したヤツの開発中ソースコードがあるとのことで、リモートからソースコードを取得。
    →この時点では、「C#」で開発していると思っていた。
  4. 回収したソースコードを見て、驚愕の事実が発覚する。
    1. ソースファイルのファイル名「~.aspx」……まあ、ふつうだね。
    2. ソースファイルの中に「~.aspx.cs」が見当たらない……おや?
    3. とりあえず適当なソースファイルを1つ開く。
    4. 開いたファイルの先頭に次の文字列が。
      <?PHP

お分かりいただけただろうか。
私がC#だと思い込んで開いたファイルが別言語(PHP)だったときの衝撃といったら!?
この結果、所属先の社長を巻き込んでPHPで対応する羽目となり、いったんは収束させました。

だけどねぇ、このあともとんでも展開迎えるんですよ、コレ。

一旦収束させた後、我々は助言ついでに「うちに全部任せてくれたら安くやれますよ」って、元請けには伝えておいたんですよ。

ですがっ

こともあろうに、元請けは何を思ったのか、自社の海外チームにやらせると言い出したんですよ。

日本の!

ビジネスロジックがろくすっぽ分からない!

新人ばかりが集まってる海外のチームに!

我々は思いましたよね。

「余計なものができあがってきそう」

案の定、想定の斜め上の展開で我々に降りかかってしまったわけですねぇ。

  1. ASP.net MVC
  2. SQL Server

構成を見る限りは、まともな感じでできてきました。「構成」だけはね。

  • DBが本番環境で動作している内容と全然一致してなくて草。
    →MySqlと一緒のテーブル構成になっていない。
  • スーパーカオスなリレーションでガチガチに固まってる。
    見たら卒倒するレベル。
    退職しても(多分)消せないユーザー情報(冷笑)
  • DB繋がらないわ、フォームとろくすっぽ連動できてない。
  • ビジネスロジックが全然仕様通りに出来てない。
  • Entity Frameworkで作ったはずなのに、上記のリレーションがカオスすぎてDBのテーブル更新などが危険で出来なくなる。

まあ、DB周りが酷すぎるものができあがってきて、何故か全然無関係決め込んでたのに私が設置する羽目になり、動かないというギャグ漫画のような展開に。

結局動かせるようにしましたよ。動かせるようにはね。

ついでにビジネスロジック通りの処理するように修正する羽目になりましたよ。
フォームのデザインもグジャグジャ。

何で他人のケツ拭きしなきゃいけないんでしょうか。
了承した記憶もないんですけど。

とありえず、一番の問題書いておきますね。

開発費さっさと払ってください。

おひさしぶりです

また気付いたら1年以上投稿していませんでした。
みなさん、いかがお過ごしでしょうか。

最近は、ずっと炎上案件の火消しをしていたりしていましたが、確定申告も終わせてようやく落ち着いてきました。

炎上案件もひと段落しまして、クライアントの開発環境にぶち込んでおきましたのでいいでしょう。金もらえるかもわからない案件はさっさと済ませて次の仕事へ。

この炎上案件の話は、「こんなアホなことあるんだ」という備忘録として、後日このブログにしっかりと残しておきたいと思います。ビジネスとしても問題ありすぎでしたので。
みなさんにも引っかからないように気をつけていただきたいことでもありますので。

今後は、このブログも少しでも頻度を上げて更新できるようにしていきたいと思います。1年に1回じゃなくて開発者としての情報発信もしないとですしね。

書籍レビュー – C#ポケットリファレンス 改訂版

書籍レビューです。

今回は、WINGSプロジェクトの飯島聡様よりご依頼を受け、同代表山田祥寬様のご厚意により、技術評論社様より発刊された【C# ポケットリファレンス 改訂版】を頂きました。
飯島様、山田様、技術評論社様にはこの場を借りて御礼申し上げます。今回もありがとうございます。

本書は、6年前に出版された【C# ポケットリファレンス】の改訂版となります。改定前もレビューしていましたので、併せてどうぞ。

書籍レビュー – C#ポケットリファレンス

今回は前作のポケットリファレンスから、どのように変更されたかを中心にレビューしてみようかと思います。

対応バージョン

改定前はC#4.0までが対象となっておりましたが、本書では最新のC#7.0の記述にも対応しています。どのバージョンから対応しているかは、各項目の見出しに「C#7.0」や「.NET 3.5」等で記述されており、自分たちが開発してるC#の環境で使えるのか乃判断の目安になります。このあたりは、常日頃から改定が進められているC#ならではかもしれません。

章構成

次に改定前との違いで目を引くのは章構成の変更です。前作にあったユーティリティの章が削除され、ユーティリティの一部として記載されていた非同期処理が独立して用意されました。昨今の流行はなかなか追えておりませんが、Windows 8以降に登場したWindowsアプリまたはユニバーサルアプリに代表されるように、デスクトップアプリと呼ばれていた現在のクラシックアプリでも非同期処理を伴った実装が当たり前となっています。そのため、1章丸々使って様々な非同期処理のコーディング方法を紹介しています。
また、ユーティリティの章に割り当てられていた他の項目は、各項目で最も関連する章に吸収されています。削除されているわけではないので、その辺はご安心を。

  • C#を始めるために
  • 基本文法
  • 基本データ型の操作
  • コレクション
  • 入出力
  • 非同期処理
  • データベースアクセス

山田さん監修の書籍にはいつも助けられていますが、本書のようなリファレンスは特に重宝しています。
C#も誕生して早10年を過ぎました。これからも進化を遂げるであろうC#のお供にこのリファレンスはいかがでしょうか。

お求めはこちらから
C#ポケットリファレンス改訂版

改定前の書籍が必要な場合はこちらからお求めください。
C#ポケットリファレンス

実機レビュー:Raytrektab DG-D08WP

久しぶりに確認したら最後の投稿から2年も経っていたらしいです。 時の流れは早いものですね。
最近も相変わらずVBAなどと格闘しております。あとPHPとかWordpressの仕事も手伝っていたりして、やったことのないことを学習していて面白いです。

さて今回の投稿は実機レビューです。今回はドスパラことデジノスの最新タブレット「Raytrektab DG-D08WP」です。 詳細スペックは、デジノスの製品ページを参考にしていただきたいのですが、目玉の機能としてWacomのfeel itテクノロジーを採用していることです。しかも筆圧レベルが他社の製品で多く導入されている2048階調ではなく4096階調であるのが大きなポイントと思います。

  • タブレットサイズ:8インチ(800×1280)
  • CPU:Intel Atom x5-Z8350 プロセッサ(クアッドコア, 定格 1.44GHz, キャッシュ2MB)
  • メモリ:4GB DDR3L
  • ストレージ:64GB eMMC

スペックとしては、Windowsタブレットの中でも普及モデルとして出回っている一般的なタブレットとあまり大差はないと思います。ですが、メモリも4GB載っていますし、最低限のスペックのマシンとして活躍できるのではないかなと思います。 Officeはモバイル版がインストールされておりますので、別途スタンドアロン版などを購入したりする必要はありません。Word, Excel, Power Point, One Noteがすぐに利用できます。

特に付嘱のスタイラスペンによるOneNoteの手書きメモは使い勝手が非常に良いです。書き味の決め手となる芯は「標準芯」、「フェルト芯」、「エラストマー芯」の3種類が用意されています。標準芯の書き味は下敷きを敷いた紙の上をボールペンで書くといえばイメージが湧くでしょうか。標準芯→フェルト芯→エラストマー芯の順で抵抗が強く、より鉛筆の書き味に近くなります。個人的にはエラストマー芯が使いたいところですが、2017年6月19日現在、交換芯が販売されていないので、早々に販売して欲しいのが一番の要求となるでしょうか。
また、残念ながらfeel it テクノロジーを採用している本製品ですが、他のfeel it テクノロジー採用の機種とは異なり「Bamboo Smart」との互換性はなく使用できませんので、ご注意ください。

バッテリーは、約4時間。一般のタブレットよりも短いでしょうか?最近はあまり市場を調査していないのでよく分かりませんが、Core-iシリーズ搭載のノートPCとほぼ同等バッテリースペックかと思います。ただし、基本スリープから一定時間経つと自動的に電源OFFの状態になりますので、バッテリーの持ちは非常に良いです。電源OFFの状態で1週間以上置いておいてもバッテリーは2%程度の減りでした。USB充電ですので、モバイルバッテリーを持って行けば1日以上の運用は問題ないと思います。

続いてカメラとサウンド機能ですが、おまけ程度の機能しか持ち合わせていません。過度の期待は馬鹿を見ますので、これらの機能で良いものを求めるのであれば別の端末をお奨めします。これらの機能を抑えた分、低価格でWacomのデジタイザー機能を実装できたと見るべきでしょう。

本製品は、手軽にお絵描きできるようにというコンセプトでイラストを描くのが好きな人をターゲットに作られた製品ですが、ビジネス上の手書きメモなど記録を残したいけどペーパーレス化も進めたいと思っている企業にもお奨めできる機種ではないかなと思います。

SyncfusionのEssential Studioがお得に使える!

またまた久しぶりの投稿です。

なんか極端にペースが落ちていますが、ここ最近VBAやらと格闘しているので仕方ないですね。

今回はお得な情報です。特に個人の開発者やスタートアップをはじめとする小規模企業の皆さんが対象です。

Windowsアプリケーション向けコンポーネントを提供しているSyncfusion社。最近はなんとAndroidやiOS向けのコンポーネントも提供しているようです。

私もアプリケーション開発の際にSyncfusion社のコンポーネントを使わせていただくことが多いのですが、ここ最近Syncfusion社がフラグシップコンポーネント群であるEssential Studio Ultimateを個人開発者、小規模企業向けに無償で提供を始めていました!

条件は次の通りで、最大5名分の開発者ライセンスを取得できます!金額にして、約120万円相当が無償!

  • 個人の開発者
  • 年間売上が$1,000,000未満の企業

たったこれだけ。この条件を満たす方は誰でも利用することができます。
取得方法などに関しては、Community Licenseの項目をしっかり読んでください。

FAQで、「なんでこのライセンス始めたの?」的な質問で「Visual StudioがCommunity版提供し始めたから自分たちも倣って始めました」みたいな粋な回答をしていて、ますますSyncfusion が好きになりました。

日本語サポートできるようになればいいんですけど。

興味のある開発者の方は、利用してみるのはいかがでしょうか。

 

The complete Essential Studio suite for free

書籍レビュー – JavaScript 逆引きレシピ

久しぶりの投稿が書籍レビューになりました。

今回の書籍レビューは、翔泳社発行の『JavaScript逆引きレシピ』です。
今回もご厚意により著作者であるWingプロジェクトの山田祥寛様より献本をいただきました。出版社の翔泳社様にもこの場を借りて御礼申し上げます。

本書は、逆引きレシピとタイトルにあるように、通常の開発言語にあるようなライブラリーリファレンスとして使うのではなく、「やりたいことをはっきりさせてからJavaScriptの処理を探す」本です。
Webサイト構築をするうえで、HTMLとJavaScriptはもはや必須となってきました。このため本書などはいい副読本になるはずです。上記の通り、あくまで「これを実現したいけど、どうやればいい?」という状況を手助けするための書籍なので、学習用途には向きません。この場合は別の入門書を読んでいったほうがいいでしょう。

本書は10章構成で、1章はJavaScriptの基本構文(ここだけなら学習として使うのはいいかもしれません)、2章はJavaScriptの関数やオブジェクト指向といった形で分類されています。ページ操作の章ではjQueryなど昨今のWeb開発で知っておくべきJavaScriptのライブラリーを利用した例も紹介されており、Web開発に関わっている人は1冊手元に置いておきたい本だと思います。
また、モバイルサイト開発向けのレシピやJavaScriptを生成できるCoffeeScriptの紹介もされています。
※個人的にはCoffeeScriptもあるならTypeScriptの紹介もあってよかったのでは?と思いましたが。

本書は、最近の入門書のようにサンプルコードがダウンロードできるようになっています。必要となった時にPCで参考にするという手段も有効ですので、こういったサービスもありがたいですね。

本書の購入はこちらから

Type Coverを交換に出したらType Cover 2になって返ってきた。

初代Surfaceを購入して、ほぼ同時期にType Coverを購入したわけですが、裏側のフェルト部分がめくれて端子部分が見えてしまったので交換に出すことにしました。

SurfaceやSurface用のアクセサリの修理に出す手順は、次のエントリーを参考にしてください。

Surface RTを修理に出す(発端から発送まで)

Surface RTを修理に出す2(手元に戻るまで)

 

で、修理に出したわけですが、Type CoverがType Cover 2なって戻ってきました。
Type Coverはすでに出荷終了している商品だったので、その後継製品であるType Cover 2が交換品として出されたのかなと思います。
ちなみに今回の手元に戻ってくるまでの日数は4日くらいでした。前回、Touch Coverを交換に出したときは思っていた以上に時間がかかっていた(10日くらい)ので心配でしたが、早く戻ってきましたので文句も出るはずがなく。しかもTouch Cover 2で戻ってきたので、実質予備ができしまったのでそのまま袋に入れてしまった状態にしています。紫のType Cover 2が壊れたら使うようにしようかなと。

Touch Coverはまだ現行で販売されているので、Touch Cover 2に交換されることはなさそうですが、交換日数を考えると本当にマイクロソフトの対応は助かりますね。