※このホームページは、バリアフリーを目指し、音声読み上げソフトに対応しています。

 


新・電子ノートブック Snap Note 3
  フリーソフト Snap Note 3 mini 公開!  

ソフトウェア・デザイン館 Sage Plaisir 21 へようこそ!
隔週月曜更新 : 毎週1つのニュースまたはプログラミング技術を取り上げ、解説します。

東日本大震災 まとめページ

[PR] 最強のスクリプト・ライブラリ vbslib5 が Windows 10 に対応!
[PR] シェル・スクリプトを格段に使いやすくする bashlib1 公開中


2020年より、IT ニュース&コラムは 3週に1度の配信となります。

週刊 IT ニュース&コラム 2021/ 1/11

ソフトウェアエンジニア40年のキャリアから学んだ 6つのアイデア

2021年1月15日、ソフトウェア開発会社のBTI360のブログに、退職するジョエル・
ゴールドバーグ氏による、ソフトウェアエンジニアとして40年のキャリアから学んだ 
6つのアイデアを公開した。 自己研鑽やチームワーク形成の参考に大いになるだろう。
なお、以下では、ゴールドバーグ氏による説明をほぼそのまま記載した後で、筆者による
補足も加えている。

1. 知識の呪いに気を付ける
知識の呪いとは、知っている知識でも、その知識の知らない側面や部分について想像することが
ほとんど不可能であることです。

自分と相手の間である用語について分かっていると言っていても、実は異なる意味で
認識していると無数の誤解が発生してしまいます。 これにより、何度も言っているのに
理解しない相手には能力が無いと決めつけてしまい、自分は理解しているので相手より
能力が高いと勘違いしてしまいます。 
相手も何を言っているのか分からない自分を説明が下手な人と思っているかもしれません。 

この呪いに対処するには、用語の誤りを気にしてはダメで、どういった意味でその言葉を
相手が使っているかを理解することです。 最初は相手の持っている知識体系や視点に、
自分が合わせていく必要があります。 時にはリーダーシップをとって理解を合わせることを
お願いすることもあります。 経営者、営業、ユーザー、管理者、開発者など、立場によっては
同じ用語に対する役割や重要度が異なります。 
たとえば、借金の金額は貸し手にとっては増えたほうが得であり、借り手にとっては減ったほうが
得という価値観の違いがあります。 バグが発生したときに自分が責任を取る立場であるかどうか
によってテストの厳密さへの要求度合いが変わります。 

2. 基礎に焦点を当てる
テクノロジーは40年を通じて変化してきましたが、ソフトウェア開発に対する基本的な
アプローチの 6つの基本的な重要な要素は変わりません。

・チームワーク
優れたチームが優れたソフトウェアを構築します。チームワークを当然のことと考えてはいけません。

自分の都合をチームに押し付けて相手にチームワークを求めてもうまくいきいません。

・信頼
チームは信頼のスピードで移動します。一緒に働きたいと思うような信頼できる人になってほしい。

信頼がおける人を近くに置くべきということと、相手から信頼されるように行動することです。
自分が正しいことを争っても自己満足するだけです。

・コミュニケーション
誠実かつ積極的にコミュニケーションを取る。知識の呪いを避ける。

・コンセンサスを求める
チーム全体を呼び出す時間を取ります。議論と意見の相違が最善の解決策にあなたを導きましょう。

ユーザーと設計者、設計者と実装者といった関係において、合意が取れた機能だけが使われます。
相手と考えが違うからと合意を取れないとほおっておくと失敗するでしょう。

・自動テスト
よくテストされたコードにより、チームは自信を持って迅速に動けます。

自動テストがないと仕様変更のコストが高くなり、時代の流れに追いつけなくなります。

・クリーンで理解でき、ナビゲート可能なコードと設計
次のエンジニアがコードを顧客として引き継ぐと考えてください。
後継者が読み取り、保守、更新に問題を起こさないコードを作成します。

それを踏まえた上で速く出荷するには、機能を厳選することです。

3. シンプルさ
次にコードを管理する人が、自分ほど賢くならないと仮定します。
「デザイナーは、追加するものが何もない時ではなく、取り除くものが何もないとき、
彼が完璧を達成したことを知っています。」アントワンヌ・ド・サン=テグジュペリ

自分が作成したコードに対して複雑な仕様を理解できることは、
頭のいい証拠ではありません。 自分の考えをアウトプットしたコードを読むことで
他人や未来の自分がインプットできるとは限りません。
古いコードが理解できないうちは大した実力はありません。

また、シンプルにするには設計段階からリファクタリングを繰り返す必要があります。
ライブラリを活用し、既存のフレームワークの構造と同じにすることで、
独自の構成要素、他人が勉強しなければならないことを減らすことです。

4. 最初に理解を求める
スティーブン・コービーの7つの習慣の一つは、「最初に理解し、
次に理解されることを求める」です。

相手の立場に立つには、相手によって異なる考え方を理解する必要があります。
世の中にある正しい知識を相手が知っているとは限りません。
相手の立場や職種では知る必要がない知識の可能性もあります。

5. ロックインに注意してください
プログラミング言語やツールやフレームワークの変更には大きなコストがかかります。
そのため、ロックインが発生してしまいます。

多くのフレームワークの経験があれば、不変的な概念を理解しているので変更のコストは
小さくなりますが、多くの人はそうではありません。
生産性が高いフレームワークの調査を行いつつ、チームで合意を得られるわずかな
タイミングを厳選してロックインを防ぎます。

6. 正直で、役割に合わないときには認める
与えられた役割が自分に合っていないときは、自分が進化するか役割を進化させて
解決できることがありますが、どうしても合わないことがあります。
それを自分や組織が認めなければ、有能な従業員が出世しても、ピーターの法則によって
役割に合わない人員だけからなる組織になってしまいます。
ピーターの法則の問題を回避するには、昇進と昇給を連動させないことと、
役割を変える前に役割を遂行するための訓練をすることです。

ソース
  >>>  https://gigazine.net/news/20210108-45-years-software-industry/
  >>>  https://www.bti360.com/what-ive-learned-in-45-years-in-the-software-industry/
  >>>  https://ja.wikipedia.org/wiki/ピーターの法則



Sage Plaisir 21 のブログやツイッターを読もう!

Sage Plaisir 21 では、ここのホームページのほかにブログとツイッター も行っています。
ブログは、こちら。
ツイッターは、こちら。

Sage Plaisir 21 メールマガジンを読もう!

週刊 IT ニュース&コラム』には、 このページに掲載している コラムの他に、注目ニュースを集めたリンク集も、掲載しています。 日々多く集まる IT 情報から、注目すべき話題をコラム形式で取り上げますので、 ぜひチェックしておきましょう。 (サンプル、および登録)


Sage Plaisir 21 Contents
[ English | 日本語 ]

自動化ツールのダウンロード (2017-01-04) update!

急速な IT 革命により開発スピードの向上が課題になっています。 その鍵になるのがツールの活用または開発です。 一般的なものから専門的なものまで使えるツールを公開しています。

技術資料&オープンソース (2012-03-19)

扱う技術が多くなってくるにつれ、 技術はマスターするものではなく調べるものになり、 どれだけ実践に即した資料を集められるかどうかが、 勝負になります。標準的な技術の資料だけでなく、 プログラムソースやライセンスフリーのライブラリも公開しています。

オブジェクト指向プログラミング設計 (2000-04-01)

Visual Basic 7 にもついに本格的なオブジェクト指向の 機能が追加され、ソフトウェア技術者には必須の知識に なりつつあります。長年の研究の成果から、最新の応用方法まで 様々なメモを公開しています。

ソフトウェア・デザイン館より(技術エッセイ)   (2000-11-01)

プロの経験を通じて習得したソフトウェア全般に関する 技術を解説しています。 ソフトウェアとは何かといった根本的なことを通じて、 デザインに関するポイントをわかりやすく説明しています。


          
 ソフトウェア
デザイン館
Sage Plaisir 21

Simple and Visual

SagePlaisir21サーチ
パワード・バイ・グーグル

週刊 IT ニュース&コラム

1/11 ソフトウェアエンジニア40年のキャリアから学んだ 6つのアイデア

12/21 リセット状態の Windows から Jest + TypeScript + React + Visual Studio Code を確実に構築する手順

11/30 Apple Silicon がインテルや ARM の性能を大幅に超える結果に

11/9 チュートリアルや手順書を手軽にするプレースホルダーの書式

10/19 ドコモ口座から不正な引き出し、スマホ決済会社はセキュリティを軽視

9/28 したくない作業でもするようになる 5分スイッチ テクニック (4)

9/7 30%の手数料を支払っていないとしてアップルが Epic Games の Fortnite を削除

8/17 したくない作業でもするようになる 5分スイッチ テクニック (3)

7/27 Linux と Apple が人種差別的な用語を包括的な用語に置き換えると発表

7/6 したくない作業でもするようになる 5分スイッチ テクニック (2)

6/15 GitHub と MySQL を組み合わせたサーバー DoltHub

5/25 したくない作業でもするようになる 5分スイッチ テクニック (1)

5/4 Apple と Google が新型コロナウイルス感染者を追跡するシステムを発表

4/13 手続き型プログラミング言語で宣言型プログラミングをする(2)

3/23 新型コロナウィルスの影響でリモートワークの仮導入が進む

3/2 手続き型プログラミング言語で宣言型プログラミングをする

2/10 飲食店や病院などの予約システムをクラウドで簡単に作れる SELECTTYPE

1/20 コメントを書かずに概要を説明する方法 - リーダブル コード(61)

12/30 書くスペースを半自動的に作ってメモをしやすくする SpaceInk

12/16 手続き型プログラミングと宣言型プログラミングを使い分ける

12/2 ヤフーとLINEが経営統合して、あらゆる決済ができるスーパーアプリを提供へ

11/18 Linuxによくある謎の記号による処理を説明変数で読みやすくする方法

11/4 アップルが HKmap.live を香港デモを支援するアプリと判断し配信停止

10/21 エラーが発生したときに例外を投げずに返り値としてエラーを返したときの問題

10/7 暗号化PDFを開こうとパスワードを入力すると流出する脆弱性

9/23 Go 言語でよく defer される Close 関数のエラーを捕まえる

9/9 多くの Web サービスのインフラを提供している aws に障害発生

8/26 POSIX の ls コマンドで表示される一覧の区切りの空白は2文字

8/12 Google が Chrome のシークレットモードで有料記事を無料で読める機能を強化

7/29 プログラムとしての定数と仕様としての定数を明確に分けること

7/15 電子決済サービス開始で再び不正利用。7pay の対応の問題とは

7/1 インストール手順にバグがある原因は、スクリプトを作っていないから

6/17 音楽権利情報処理にAWSのブロックチェーン技術が採用される

6/3 インストーラーでインストールする対象のバージョンは、最新版より特定版

5/20 PC上での共同作業をインテリジェンスにする Fluid Framework

5/6 Windows で Python スクリプトを Python の仮想環境の中で起動する方法

4/22 Windows で USB デバイスの安全な取り外しの操作が不要に

4/7 ブール型の説明変数の名前は文にする - リーダブル コード(60)

3/25 グーグルがゲーム ストリーミング サービスに参入、STADIA を発表

3/11 ソースコードが早く読めるようになる、シンプルコメント2 - リーダブル コード(59)

2/25 無料で使えるように改変した iOS アプリを何者かが配布

2/11 ソースコードが早く読めるようになる、シンプルコメント2 - リーダブル コード(58)

1/28 5月1日から変更される新元号の名前の発表が 4月1日に決定

もっと前の記事

自動化ツールのダウンロード

Snap Note 3 mini - サクサク使える自由ノート  new!

Plastic Window 1.20 - ウィンドウを半透明に  new!

Shortcut Director 1.00 - ショートカットのリンク切れ修正

Archives Folderizer SV 1.10 - 圧縮解凍

デジタルスクラップブックSVG Cats 2

その他のツール

オブジェクト指向プログラミング設計

技術資料

All Text composed by T's-Neko ts-neko@sage-p.com,