説明する力と顧客の理解

こんにちはmtjです。

最近は日本でもDevOps等の用語が聞かれるようになってきました。

よくある手法開発の発注側から作成して欲しいシステムの依頼を出し完成品を納品するですが
DevOpsは上記の数ある機能をまとめて納品するというよりは機能1つ1つを作っては公開という作り方になります。

上記の方法は様々な利点があるのですが、開発、発注側(運用側)どちらにも知識が必要なことが難しい事だと思われます。
特に運用側の協力は先に上げた完品の納入に比べてかなりの労力が必要となります。
・次の機能の策定
・優先順位の策定
・必要な機能等の情報収集。

そして自分たち開発側もコスト、期間、難易度等を説明する能力が必要になると思われます。
また完品と比べて頻繁に既存コードの改造が入るのでリファクタリング等の時期を定めないと大変なことになることでしょうか。

上記の労力等を考慮してもなかなか利点の多い開発手法なので自分ももっと流行りを勉強して様々な事に対処できるようになりたいと思っています。

設計は単純なときから

mtjです。

誰かが改造した、自分が改造した問わずにソースの見直しは小さいところから行うべきだと感じました。

小さい時の変なコードもその小さな組み合わせが大量に貯まり全体で見るとかなり保守をしにくい状態になる場合がありました。
小さい内に気にしていれば後に機能改造を行った場合に把握、改造がしやすいと感じました。

自分が作成していたものは気をつけていたのですが、他人のコードになるとチェックが甘いところがあるのでそういった箇所を気をつけ
他人のコードであろうが巻き込んでリファクタリングしたほうがいいと感じました。

デスクトップアプリからWEB系

こんにちはmtjです

現在のプログラムはWEB系のアプリがメインになりつつあります。

デスクトップアプリに比べて様々なOSで動くことがメインだと思われます。
一時期に比べてWindows一強状態ではなくアンドロイド、IOSのタブレット等が流行っているので当然の流れだと思われます。

IT関連技術者もこれからWEB系についていける人が残っていくのではないのでしょうか。
WEB系は様々な要素技術の集まりなので役割分担がしやすく作りやすくなると思います、その分根幹部分の技術者の需要も上がっていくと思うので自分はそういうところを詰めて行けるといいかなと感じます。

VSの出来

こんにちはmtjです。

kotlinでUIの作成等に手を出していますがVSの出来の良さを改めて感じます。
特にUI、イベント関連の出来がよく何も入れなくてもダブルクリックでボタンのクリックイベントを実装可能です。
イベントもdelegateの注入処理もなくデザイナーが勝手にしてくれます

開発者は用意されたメソッド内に処理を書くのみでUIアプリを作成可能です。

kotlinの方はライブラリ等を模索しながら作りやすいように調整中です。
調べるほうが面白くなり全然進んではいませんが。

技術とは

こんにちはmtjです

最近アンドロイドアプリの勉強しようと思いkotlinをしております。
開発環境が日本語でないので既に敷居は高いのですがなかなか新鮮であり、JAVAを元にしている事もあり懐かしくも思います。

こういった新しい言語の考え方、作り方を覚えるのも良い技術のトレーニングになると思いました。
自分たちの業界には大切なことと思います。

無線技術

こんにちはmtjです。

最近無線の進化はすごいと感じています。

それも家でヘッドセットを使用しているのですが断線で以前の有線ヘッドセットがダメになり今回無線にしてみようと考えたためです。

あまり遅延があっても音は問題がないので無線にしました、steelseriesの無線ヘッドセットです。
送受信機とヘッドセットという構成で送受信機は独自規格ですが音ゲーをしていても遅延を感じないくらい高速通信をしています。
今までと比べて充電をしないといけない欠点はありますがケーブルの取り回し等を考えるとかなり楽になり遅延も少ないのでかなり良い買い物をしたなと感じています。

無線のイメージといえば遅延が大きくそういった速度が要求されているものでは使えないと思っておりましたが考えを改めました。

今使っているマウス、キーボード等も余裕があれば無線にしてすっきりさせたいですね。
よく考えないと結局充電ケーブルでごちゃごちゃしそうですが。

ソフトの価格と出来

こんにちはmtjです。

ソフトでは内部のソースまではわかりません

普通に動いていれば何も問題ないのでソースが汚かろうが、綺麗だろうがお客さんには関係ありません。
ではどんな時にソースの汚さで問題になるかというと基本は異常時と変更時です。

異常時の場合はソースが複雑な方が修正が長引き修正による不具合も起きやすくなります。
変更時は変更箇所が多くなったり多い分テスト、手戻りも多くなり費用が必要になります。

では汚いソースで行う利点は何かというと考える時間がいらない分速度が速い=安いということです。
もちろん上手く行けばの話ですが設計、共通化の検討等もしないため手戻りがなければかなり早くなると思います。

もちろんですが上記は小さいソフトならばの話です、大きくなればなるほど共通化による同じようなコードがなくなっていくので基本は設計もコードも綺麗なほうがはやくなります。

只お客さんから見ると金額と仕様書のみなのでそういった後々の部分については頼む側からすれば全くわからないのが現状です。
頼むときの指標にするためにソフト開発のレベルを測るための指標が何かあるといいのかもしれません。

別の人を使うという事。

mtjです。

自分はSEなので人を使ったり使われたりする立場ではあります。

人を使って色々する場合はもちろん効率が重視されます。
プログラム業務での効率はほぼ役割分担です、難易度の高い部分(外部システムとつなぐだったり、WindowsForm的に難しい
スレッド間操作で気にすることが多い、全体のシステム構成を知らないと結合等できないようなとこ)
簡単な部分を割り振っていきます、基本は自分が全体の構造の設計、テストを行う事になります。

上記の事をしていると基本的には他人のソースをチェックして作りが問題ないか、テストが問題なく作られているか等の確認作業が主なので難しい部分ばかりが自分にきてしまいます。

これらを行っていると物が完成した時の達成感が薄くなってしまいます。
一人で行っていた場合は設計し、設計通り動き、テスト等で度々上手くできたとの実感がわきます、これが最近は人を使う事が多いので少なくなっている気がします。

上記で思う事はシステム開発で上の管理する側の人間はあまり開発者としての達成感という物がないのではないかと思います。
もちろん作る部分によってはつまらない部分もありますが全て自分一人で作っていた方がやりがいがあった気がします。
小規模のシステムでもこのように感じるとういう事は、大規模のシステムを作っている総まとめ(プロマネ等)はどのような気持ちで行っているか気になるとこではあります。
毎日何十もの機能の確認、テスト等を行い完成まで持ち込むのはかなり根気がいる作業だと思います。

そういう管理することが好きな人もいるので案外達成感があるのかもしれませんね。
自分はわからないことがあったら調べて自分で作って解決していくほうが好きなのであまり向いていない気がしました。

トラックボール

こんにちはmtjです。

現在トラックボールを使っています。

マウスはマウス本体を動かすことでポインタを動かします
トラックボールは本体にボールがついておりそれを転がすことでカーソルを動かします。

最初は慣れが必要ですが慣れてくるとかなり使いやすいと思います。
自分はマウスでは画面全体をマウスを浮かすことなく移動できるようにしているのであまり気にはしませんが
何回もマウスを上げてマウスパッドの真ん中に戻してをするより指を何回か転がすだけで移動できるトラックボールのほうが
良いのではないかと思います。

特にマウスパッド等が必要ないのが利点で狭い場所でも操作しやすいのが利点ですね
手首の負担が少ないは聞きますが自分は上記で記載した通りそもそも手首に負荷のかかる感度ではないので
個人的にはボールを転がしている感覚が好きなので使っている感じです。

また親指でボールを動かすタイプより中指等で転がすタイプがおすすめです。

マルチGPU

こんにちはmtjです

マルチGPUを使用して半年以上経ちまして大体結果が見えてきました。
結果として普通のゲームをする人向けにはあまり向かないという結論でしょうか。

今回の自分の場合はradeon rx480を2つ付けていたのですが
最適化されていないソフト(マルチGPUに対して)では1つのGPUのみ動くので性能が発揮されず勿体ないという事が分かりました。

rx480×2の意図はミドルGPUを2つ付けて ハイエンドGPUと同等の性能を出そうと目論んでいたので見事に失敗しました。

これがGTX1080×2だったらまた別の話ですが、それでも性能が2倍になるわけではないので本当にマイニング、エンコーディング等向けではないでしょうか。

というわけでゲームをする、動画を見る人はGPUを1つで良いのを買いましょうということです、今回は良い勉強になりました。