技術とか戦略とか

SIerで証券レガシーシステムを8年いじってからSESに転職した業務系エンジニアによる技術ブログ。

TypeScript+Node.jsのHelloWorld

TypeScriptは、JavaScriptを拡張して作られた言語です。 JavaScriptを大規模開発で採用する場合、実行時のエラーが頻発することで生産性や品質が悪化する恐れがあります。JavaScriptのこの問題を、ビルド時のエラー判定を強化することで解決した言語が、Type…

ReactのHelloWorld

フロントエンドのSPA(シングルページアプリケーション)向けのJavaScriptのライブラリであるReactを使用して、HelloWorldを書いてみました。Reactで何かしらの記述の挙動を確認したい時のベースとして使いやすいようにしています。 今回は、下準備無しで動…

2023年からの更新予定について

来年からこのブログのあり方が変わるため、事前に連絡です。 私情なのですが、来年から私の働き方が変わります。これまでは、自社の若手を率いて客先に常駐したり仕事を請け負ったりする働き方でした。その中で、若手に教育を行う機会があったため、教育の一…

比喩表現により納得感のある説明をする

仕事を進める中で、誰かを説得しないといけない場面があります。ここで、社内や社外の事情を話したり、論理立てて説明したりすることで納得してくれれば良いのですが、それだけでは納得されにくいこともあります。 このような場面で有効な手段の一つが、比喩…

プログラムリリース時のコンティンジェンシープラン

コンティンジェンシープランとは、想定外の事態が起きた時に備えて事前に定めておく対応策のことです。この記事では、プログラムのリリース時に定めておくべきコンティンジェンシープランについて、具体的に述べていきます。 ---- プログラムのリリース作業…

統計データを読み取る際に注意するべきこと

物事を定量的に語る上で、統計データは大きな武器になります。しかし、この統計データが正確に計測されたもの、かつ作為的に計測されていないものであるとしても、解釈次第で誤った結論に至ってしまうことがあります。 この記事では、誤った結論に至ってしま…

シグナリングとスクリーニング

採用や販売などの事業活動を行う場合、特定の属性や価値観を持った人が自然に集まるようにした方が効率が良くなります。そのためには、そのような人が自然と集まるように情報を発信することが有効です。このような情報発信を「シグナリング」と呼びます。ま…

トラブルのインパクトの大きさを過小評価すると大トラブルが起こる

システムの運用においてトラブルの対策を考える際、インパクトが大きいトラブルに対しては大きな労力を、そうではないトラブルに対しては小さな労力をかけるのが効率的です。 ここで、ホビーの売買サイトの運用を例に挙げて説明します。 例えば、エンドユー…

ラポール形成とは

ラポール形成とは、相手との信頼関係を築くことで、コミュニケーションを円滑に進められるようにするためのテクニックです。元々カウンセリングのテクニックですが、ビジネスにも応用可能です。 ---- 自分の立場からの意見を通したり、アドバイスにより相手…

人間は学び始めの時に自信過剰に陥りやすい

表題の通り、人間には、学び始めの時に自信過剰に陥りやすい、という特徴があります。一般的に、ある分野について学び始めた時は自信過剰になり、更に学ぶとその分野の知見の深遠さに気付き自信がなくなる、そしてそれ以降は徐々に自信がついていく、という…

開発現場における傍観者効果とそれを防ぐ方法

ITの開発現場で活用できる心理学の知見の紹介です。今回紹介するのは「社会的手抜き」と、社会的手抜きの一つの具体例である「傍観者効果」です。 ---- 社会的手抜きとは、集団で一つの作業を行う時に、各々の個人のパフォーマンスが一人で作業する時のパフ…

要件が不明確な場合は慎重に見積を行うべきである

経営や営業の都合では、開発者が直感に基づいて迅速に案件の見積をしてくれると助かります。見積が早く出てくれば、案件の優先順位付けや案件の受注もスムーズに進むようになり、利益も出しやすくなります。 要件が明確で見積時点で具体的な実装がイメージで…

新たな状態が発生する修正は影響が大きい

既存のシステムの機能拡張の見積もりを行う際、その機能強化による影響の大きさを正しく把握する必要が肝要です。影響の大きさを把握する上で、もし新たなデータの状態が発生するような修正をするのであれば、その修正の影響が思いの他大きくなることを警戒…

作業を上手く依頼するコツ

何かしらの作業を行う際、自分一人で作業するとなると、どうしても時間的・能力的に限界がありますし、得意不得意もあります。一方、手が空いている人や、比較的重要ではない作業をしている人が周囲にいることも少なくありません。このような場合、自分が持…

問題は分割して考えるべき

一般的に、何かの問題を解決したい場合は、解決する道筋を考えて、問題を分割しようとするべきです。そうすることで、・やるべきことが明確になる・わからない所が出てきた時に調べやすくなる・作業分担ができるようになるといったメリットがあります。 これ…

一時的なエスケープ文字としてバイナリ文字を使う

ファイルで文字列置換を行う際、特定の条件を満たす文字を置換したくない場合があります。例えば、CSVファイルの区切り文字であるカンマをタブ文字に置換したい場合、文字列項目中に出現する区切り文字ではないカンマ、具体的に言うと""で囲まれた箇所のカン…

java:参照型変数の中身のイメージ

Javaの参照型変数の中身は、何年かJavaの実装経験を積んだ人でもイメージすることが難しいです。しかし、ここがイメージできていないと、思わぬ落とし穴にはまることもあります。 C言語を経験していればイメージしやすくなりますが、そのためだけにC言語を学…

効率的な会議の進め方

仕事を進める上で会議は欠かせません。 例えば、以下の目的で会議を行います。・管理表やチケットで管理されたタスクの棚卸・要件や作業状況等のヒアリング・問題に対する対応案の検討・成果物に対するレビュー 会議を上手く運営すると仕事はスムーズに進み…

相手の拘りに合わせて柔軟に計画を変更する

計画を策定する場合、自分に最終的な決定権がないという状況が往々にして起こり得ます。具体的には、取引先や上司、先輩、プロパーの決定に従わざるを得ない、ということは少なくありません。 このような場合、自分が推す案に拘り、無理に押し通そうとするの…

ディベートから学ぶ案の検討の方法

仕事をする上では、システムの計画や設計等で案を検討することがあります。検討する際に、ディベートの考え方を用いると、肯定・否定に偏ることなく案を検討しやすくなります。 この記事では、案を検討する上で参考になるディベートの考え方を簡単に説明した…

ゲーム理論を現実世界へ適用するにあたっての問題点

この記事は「ゲーム理論:物事をゲームとして正しく認識するための方針」を焼き直したものです。 ---- ゲーム理論は話だけ聞くと簡単そうに見えますが、実際に適用しようとするとある壁にぶつかります。その壁とは、「適用対象をゲームとして正しく認識する…

ニーズとウォンツを意識することの重要性

「ニーズ」「ウォンツ」とはマーケティング用語であり、人間が何かを求める時の行動を分類したものです。それぞれ、以下の意味で使われます。ニーズ …生活を送る上で感じる満ち足りない状態ウォンツ…ニーズを満たすための具体的な手段 例えば、「本棚を作る…

最強の主張は相手の論理に乗っかった主張である

交渉や議論の場で、相手の主張に対して自分の主張を通したい場面があるとします。この場合、最強の主張は、相手の論理に乗っかった形で展開される主張です。 相手は、何かしらの主張を行う際に、論理を積上げます。その論理の中で何かしらの問題点があれば相…

自社のポジションを考える思考フレームワーク「ポーターの3つの基本戦略」「コトラーの競争戦略」

自社サービスを展開しているIT企業では、自社のサービス展開に関する戦略を練る必要があります。優れた戦略を作る上では、それぞれ異なった立場や知見を持つ関係者が集まって、関係者間で思考をまとめるのが有効です。そして、思考をまとめるのをサポートす…

自社を中心に外部環境を俯瞰する思考フレームワーク「SWOT分析」「3C分析」

自社サービスを展開しているIT企業では、自社のサービス展開に関する戦略を練る必要があります。優れた戦略を作る上では、それぞれ異なった立場や知見を持つ関係者が集まって、関係者間で思考をまとめるのが有効です。そして、思考をまとめるのをサポートす…

クリティカルパスとは

この記事は、以前に投稿した下記の記事の焼き直しです。 情報処理技術者試験対策「クリティカルパス」https://akira2kun.hatenablog.com/entry/2018/07/08/184908 ---- この記事では、クリティカルパスの説明とその重要さを説明していきます。 【クリティカ…

サクラエディタのマクロで大量のコマンドを実行した場合の予期せぬ挙動

この記事は、以下の2記事をまとめたものになります。 サクラエディタのマクロ(置換処理記述)をバッチから並列実行すると処理が競合するhttps://akira2kun.hatenablog.com/entry/2019/03/11/234403 サクラエディタのマクロに大量(500以上)のコマンドを記述…

IT業界におけるメンタルヘルス対策

IT業界は、メンタルヘルス不調が出やすい業界であると言われます。メンタルヘルス不調者が出てしまうと事業に悪影響がありますし、何より心情的に心が痛むものがあります。 この記事では、IT業界の特殊な背景と、IT業界でのメンタルヘルス対策について、簡単…

for文を書けない・使いこなせない方に向けて

for文は意外と理解が難しく、ここで躓いた経験がある人は決して少なくありません。for文の文法を理解していたとしても、for文を使うべき箇所で使えていないこともあります。 プログラムの基本は「順次」と「分岐」と「反復」ですが、for文は最後の「反復」に…

コーディング中のバグ対応の一般的な手順

コーディングにおいては、実行時に見つかる些細なバグの対応がつきものです。バグの対応を素早く行うことができれば、コーディングも早く行うことができるようになります。 今回の記事では、バグ対応の一般的な手順を説明しようと思います。手順を大まかに書…