ソフトの作りのこだわり。

こんにちはmtjです。

ソフト開発の費用について。
ソフトの費用というと機能である程度平滑化できるように思われますが 実際は同じ金額で全く同じソフトができるわけでは有りません。

同じ人が作ればある程度は平均化ができますが別な人、会社が作ればUIの作り、処理の作り等により金額もばらばらです。
UIのアニメーション、綺麗さ等に凝れば金額は上がります
処理も1秒も待たせたくないという仕様であれば金額は上がります

そこで大事になっていくのが営業の手腕だと思います。
アニメーションが必要無い箇所で凝ったアニメーションを作る必要はないですし
処理も別に時間がかかってもいいような物であれば即終わるような仕組みを作らなくてもいいです。

相手にとってどの部分が重要かを判断し提案できるかが技術者の腕だと思いました。

ソフトウェアの価値。

こんにちはmtjです。

ソフトウェアの価値についてですが ソフトウェアは基本買ってきただけでは価値を生まないと思っています。
それこそ普段使うプログラム開発用のIDEも買うだけでは何も生産を行いません。

IDE等もプログラムを効率よく開発したいから買うので購入して即成果が上がるような物でもありません。
道具を使いこなして価値を産む人がいて初めて価値が生まれます

流行りのIOT等の機器も遠隔で情報を知れるだけの物ですが
その情報を使って価値を生んでいくのは利用者側です。

自分たちもソフトを作る上でその先に価値があるのかを考えながら開発していきたいです。

新しい言語と古い言語

こんにちは mtjです。

世の中には様々なプログラムの言語がありますが その中にももうサポートされていない古い言語だったりできたばかりの言語があります。

自分は古い言語、フレームワークは基本しかたなく使う者だと思っています。
新しい言語はそれこそ使う側の負担、言語自体の新たな不具合、仕様等未知の部分が多く使う場合のリスクが読み難くなります。
慣れた言語の方が開発スピードも既存のライブラリ等も使用できるので開発費用も低く済みます。
しかし新しいOSで動かなかったり 新しい機能が使えなかったりします。

では新しい言語の利点で自分が思うことは
・新しい言語のほうがセキュリティ懸念が低い
 現在のOSのセキュリティ機能を使ったりするので言語自体のセキュリティは高い場合が多いです。
・新しいOSの機能が使える
・コードの書き方等が簡潔だったり古い言語では使えない用な機能があり 速度が結果的に早くなる場合がある。
・最新のサービス等の機能が使える。

プログラム言語は基本新しい物を取得していくのが最良だと自分は思います。

しかし、MACネイティブの場合はOSで強制的にSDKが移行されてしまうので 古い機能を全部消して新しい機能に置き換える事が強制されてしまいます
既存のコードはもちろんまともに動かない場合が多いです そういった意味でもMACは開発者に優しく無いとは思っています。
ちょっとの機能追加でも莫大な時間がかかってしまう場合があるのがMACです。

AIとプログラム

mtjです。

とある人がAIでプログラマーがなくなると言ってから結構経った気がします。
いずれかはそうなるかもしれませんが 正確性が必要なソフトになればなるほどAIでの自動化は難しいと感じます

絵とか エンタメ等間違っていても問題ないような物ではAIでの自動生成は有用で 速いと思いますが
正確性が必要な部分ではAIで出力したソフトのテスト等 実運用での問題点等を把握できる人の介入が現状どうしても必要です。

これは数年でどうにかなる問題ではないと感じます。
例えばあるOS、環境等では動かないPGが生成された場合それを修正するためには動かないPGを生成させないための仕様等をAIに指示できるエンジニアが必要でしょう
止まっても問題無いようなシステムであれば止まるたびにAIに指示をしエラーを修正させることも可能でしょうが 可用性は皆無だと思います。

限られた環境で動かすプログラムを作るにはそれ相応の知識が必要になると自分は思っていますが
それらを考えずにAIで指示し良いプログラムを作ることができるのかは今後が楽しみではあります。
(特にスレッド関連、メモリ関連、実行速度関連がAIでいい感じに作れると平和になるエンジニアが多いと思います)

AIでプログラマーが無くなるという点についてはなくなると思います。
エンジニアが仕様書をしっかり作るだけでソフト、テストコードまでできるのであればそのエンジニアの下に在籍していた開発者は全員いなくなると思います。

変なシステムを作らないために。

こんにちは mtjです。

プログラマーの仕事をしていると 世の中のどうしてこうなった ようなシステムを見るともやもやする機会が増えます。
そこからこうなった原因はどこなんだろうと考えるのも面白いですがそうならないためにを考えていきます。

まず変なシステムを作らないためにはお客さんの要望をしっかり聞く事が大事です
・何をしたいか。
・その後どう使うか。
・どのような人が使うか。
のようにしっかり要点をまとめ、お客さんの依頼通りのシステムだけでなく 用途にあったシステムを作っていくことが重要だと思います。

依頼主は依頼主の知識内でしか想像できませんし、開発側も開発側の知識しかありません。
その2つを上手くすり合わせし必要なシステムを作ることが大事だと思います。

しかし、提案だけではシステムは上手くいきません。
システムはそこから作る人の問題もあるため結局はお客さんの伝える能力、開発側の依頼を受ける能力、開発側の開発自体の能力等すべて揃って初めて良いシステムになると思います。

自分も変なシステムを作らないようにそういった意識を持って開発していきたいと思います。

ツールの勉強、知識

こんにちは mtjです。

開発にはバージョン管理ソフトというツール または サービス等を利用し複数人で開発が行いやすいように開発します。
しかしこれを使用しない会社も存在します、大体がツールを使うための知識不足かのらりくらりと同じ昔の手法でやりたいからだと思います

開発というのはプログラム等の知識だけでなく そういった開発自体を便利にするためのツールを上手く使うための知識も必要になると思います
日々新しく出たIDE バージョン管理ツール 入力サポートツール等の知識を入れ開発の速度が遅れていかないように自分も気をつけたいと思います。

管理ツールを使わない会社では
・共有フォルダにプロジェクトを入れる
・バージョン別にファイルを別名で保存する。
・コメントでコード内に変更点を記載する(旧コードをコメントアウトしながら)
・同じファイルを編集する場合は声がけして行う
ような感じでかなり古い体制で開発を行っているようです。

普段から癖

こんにちはmtjです。

世の中にはマイコン、PC上で動いているソフトであったり様々な物がプログラムで動いています
UI等であれば飲食店だったり電子注文システム、ゲームであったり
センサー等の実際の動きであれば自動配膳、アミューズメント機器であったり

色々動きを見ていると面白い物があります。

自分は昔から気になった機械があれば 分解して中身を確認するような人間でした。
ジャンクのプレイステーション等ゲーム機器であったり ノートPCであったり様々な物を分解してきました。

観察している物がどのようなプログラム、センサー、機械で動いているかを考えるのは楽しいですし勉強にもなります。
現在の知識で動き方が分からないなら自分で情報を集めて調べて こう動いてるかもしれないと考えるのも楽しいですね。

そういった動きに興味があるからこそ今この業界にいるのだと思います。

地方住みの苦悩

こんにちは mtj です。

自分は割りと地方の方に住んでおりますが 京都の繁華街も大阪の繁華街も絶妙に1時間ぐらいかかってしまうところに住んでます。
そのせいで何か買い物に行きたい、遊びに行きたいとなってもなかなか及び腰になってしまいます。

住むには静かで問題も少ないいいとこなのですが そういった点だけが悩みです。

往復2時間以上なので何か実物見て買いたい! となっても小旅行の気分です。
移動時間は本等を読むのでそれも味といえば味なんですが

宇宙

こんにちは mtj です。

最近とある宇宙のゲームをやっているので やっぱり宇宙は面白いなと改めて感じました

スケールがなんでも大きい 光年なんて単位はなんて宇宙でないとほぼ聞かないと思います。
またワープとかの理論も面白いです。

Alcubierre driveというものがありますが 物体は光を超えることができないから 光の速度を超えているビックバンを起こして移動するという理論です。
そういった関連の話は見ていて面白いので読み物として読んでも面白いです。

また点在する星についても色々あって面白いですね ガス惑星だったり 氷で覆われていたり地球では起こり得ないようなことが起こっている星がいっぱいあったり
色々夢がありますね。

朝倉氏遺跡に行ってみて。

こんにちは mtj です。

福井の朝倉氏遺跡にいってきました。
発掘物の復元方法等色々展示されており勉強になる部分も多々ありました。

巨大な城下町復元ジオラマ等もあり そういった物を作るのも面白そうと感じました。
様々な復元を見て職人の技だなと関心しました。

職業柄エンジニアの視点になってしまうので地味にタッチパッドだったりそういった機器の動作にも惹かれました。