2006年に会社を設立し、おかげさまで今年の5月23日で創業20周年を迎えました。
先月には、社員、顧問の先生、開発パートナーの皆さま、そして元社員の皆さまで、創業20周年記念パーティーを開催しました。
会社を始めた時「20年は全力で取り組む」と、20年先に旗を立てました。
そして、その20年という旗にたどり着き、折り返すことができました。
折り返しの道は、肩の力を抜き「脱力」をテーマに歩んでいこうと思います。
2006年に会社を設立し、おかげさまで今年の5月23日で創業20周年を迎えました。
先月には、社員、顧問の先生、開発パートナーの皆さま、そして元社員の皆さまで、創業20周年記念パーティーを開催しました。
会社を始めた時「20年は全力で取り組む」と、20年先に旗を立てました。
そして、その20年という旗にたどり着き、折り返すことができました。
折り返しの道は、肩の力を抜き「脱力」をテーマに歩んでいこうと思います。
BPStudy(株式会社ビープラウドが主催するIT勉強会)が、2024年4月26日(金)に開催され、200回目を迎えました。
ここまで続けてこれたのも、登壇していただいた方々、参加していただいた方々、開催を手伝ってくださった方々のおかげです。感謝いたします。
記念すべき200回目は、私が登壇させていただきました。
資料は以下です。
2011年11月には、ITmediaエンタープライズで取材していただきました(当時50回を超えた頃)。
コミュニティー運営の要諦 技術と人、人と人がつながる場所を作りたい
いろいろな人の考えを聞いたり話し合ったりすることで、会社以外の世界の考え方を知るきっかけになるとうれしい。その出会いが、こんな人になりたい、自分もこういうことをやってみたいというモチベーションにつながり、技術者が未来について考えるようになるといい
記事の中にこのように私のコメントが書かれていますが、これがBPStudyの理念であり、connpassの理念にもつながっています(上記のITmediaエンタープライズの記事が掲載された同じ月にconnpassもリリースされました)。
さまざまなコミュニティが積極的に活動し、横のつながりが強いというのはIT業界の文化であり、大きな特徴です。
今後、会社としても個人としてもIT業界のコミュニティに貢献できるよう、さらに活動していきたいと思います。
「Pythonプロフェッショナルプログラミング第4版」を2024年2月16日に上梓しました。
書籍の構成を下図に示します。

本書は、第2章の「読みログ(読書ログを管理するWebアプリケーション)」というシンプルなアプリケーションを中心に展開しています(図中の赤い四角で示されています)。コードを書いて機能を実現する章は第2章のみであり、他の章はより品質が高く、効果的なシステム開発を目指すための内容になっています。
この構成をとった理由は、書籍のタイトルに掲げている「プロフェッショナル*1」な開発現場でのシステム開発が、単にコードを書くこと以上の意味を持つからです*2。
プロフェッショナルな開発現場では、動作するアプリケーションを作ることだけが目的ではありません。限られた時間、人材、スケジュールの制約の中で、長期にわたり発展し、価値を創り出すシステムを構築することがミッションとなります。
ITが現代社会の基盤として不可欠な存在になっている今、その役割の重要性はさらに高まっています。
このミッションを果たすため、エンジニアは日々、時間を節約し生産性を高める方法、安定した開発や運用を支えるための知識や技術、効率的な仕事の進め方を学び、模索し、実践しています。
さらに、チーム内での相乗効果を最大化するためのコミュニケーション手法や情報共有の技術、効果的な作業進行方法も、日々改善しています。
また、技術やライブラリ、ツールは日々更新され、新しいものが次々と登場します。これらが実際に役立つかどうかを評価するためには、ドキュメントを読むだけではなく、実際に試用し運用してみることで、その利点や欠点を理解できます。このような活動を通じて経験を積み、感覚を磨いていきます。
これらの取り組みは、エンジニアとしての価値創造の土台であり、醍醐味の一つです。
本書は、これら日々の活動と努力の成果を集約したものであり、弊社エンジニアの実践知の結晶です。
「Pythonプロフェッショナルプログラミング」初版の企画時に、私たちはこの書籍を「ビープラウドに新たに加わったメンバーが、ビープラウドの開発プロジェクトに円滑に参加するためのガイド」として位置づけました。この目的は現在も変わりません。
しかし、弊社が長年にわたり試行錯誤を重ねてきた実践知を集約した本書は、Pythonを用いた開発が活発な現代において、広く社会にとって価値ある一冊であると確信しています。
Pythonを用いた開発に携わる方々に、本書を手元に置いていただき、実践の際の参考として活用していただければ幸いです。
「Pythonプロフェッショナルプログラミング 第4版」の共著者2名による勉強会(オンライン)を開催いたします。興味のある方は、ぜひご参加ください。 bpstudy.connpass.com
年末年始休暇に入り、通常より学びの時間を確保することができそうです。そこで、この機会に「人はそもそもなぜ学ぶのか」というテーマについて考えてみることにしました。

私が子供の頃、文字を読めるようになったり計算ができるようになったりといった一つ一つの成長に喜びを感じたことを今でも鮮明に覚えています。学びを通じて成長することは、自分自身を創ることであり、創造の喜びをもたらします。この経験から、私は「学びを通じた成長、自己創造」は、人間の本質的で根源的な欲求だと感じています。
しかし、やがて「テストのため」「進級・進学のため」といった外的な圧力により勉強するようになると、徐々に学びに対する抵抗感や義務感が生まれます。特に、自分の好きなこと(スポーツや趣味、遊びなど)を犠牲にするフラストレーションは大きいものです。確かにテストで良い成績を取ったときの達成感はありますが、私自身は勉強への抵抗感、義務感が勝っていました。この段階で「学ぶこと」が苦痛だと感じると、その後の人生で無意識レベルで学習を避ける傾向に陥る人も少なくないでしょう。
学びへの抵抗感や忌避が生まれたとしても、多くの人は「進学や就職のために必要だ」という理由で勉強という形の学びを続けます。就職を控えた学生や社会人は仕事で必要とされる技術や知識を、緊急感を持って学びます。
一方で「なりたい自分になるために学ぶ」という動機は「生きるために学ぶ」とは異なります。外発的動機に基づく「生きるための学び」と対照的に、内発的な動機に根ざしています。生きるための焦燥感に駆られて学ぶ時期も、自分の生きる力をつけるのに役立ちます。しかし、あるタイミングで「なりたい自分になるために学ぶ」にシフトしていくことが、自分の人生を主体的に生きるために必要ではないでしょうか。
安岡正篤*1氏は「人は何のために学ぶのか」ということについて以下のようなことを述べています。
人は自分を創るために学ぶのだ。そして、人生のあらゆる艱難辛苦にあっても動じないように、自分をおさめていく。自分を創るのは利己のためではない。世のため人のために自分を役立てるためである。自分を役立てるには、自己の徳を大成し、自己の才能・能力を練磨、向上させていかねばならない。それが学の本質である。成徳達材*2することによって、よりよき運命を創っていくのだ*3。
私は2017年に流山高校で生徒たちに講演する機会をいただきました。
その中で「なぜ勉強するのか?」という問いに対する答えとして「自分の強みをみつけるため」と話ました。自分の得意なことであれば、価値を生み出しやすく、それが社会のためになると考えたからです。
私は本を読んだり、何かを学ぶとき、「自分が学び進歩することで、社会も進歩する(学ばなければ、社会の進歩が遅れる)」とあえて大きく考えるようにしています。この考え方は、自分のモチベーション(使命感)を高めるのを実感しています。
学生時代に勉強への抵抗感を感じたことが原因で、社会人になった後に学びをやめてしまう人もいます。確かに、プライベートな時間を楽しく過ごしたいという願望は理解できます。しかし自分の人生を充実させるために、それだけで十分でしょうか。冒頭で述べたように「学びを通じて成長し、自分自身を創ること」は、人間の本質的かつ根源的な欲求と言えます。
この根源的な欲求を満たすためにも、学び続けることは自分を幸せにする道です。
加えて、その学びが仕事や社会に役立つと、それによって得られる喜びも大きいものです。
学びの他の効果としては、自分に興味のあるジャンルであれば自己目的的に学ぶこと自体が楽しい、学ぶことで知識欲が満たされる、知識が増えることで世の中の事象が解像度高く見えて生活や仕事に役立つ、などが挙げられます。
このように「学び」には、人生を充実させ、幸福感をもたらす力があります。
自分の人生を充実させるためにも、学び続けることを心掛けたいと思います。
*1:日本の易学者、哲学者、思想家。金鶏学院の開学、国維会、師友会の創立など、日本主義の立場から保守派の長老として戦前戦後に亘って活躍した。 (Wikipedia)
*2:成徳は徳を高め、大成させること。達材は能力を練磨し、上達させること。江戸時代の長州藩の藩校「明倫館」の学風とされる
*3:「人生の法則(致知出版)」P.199
学生時代にビープラウドで仕事をされていた@c-bataさん執筆の実践Django Pythonによる本格Webアプリケーション開発を拝読しました。
読み終わり感じたことは「筋肉質で骨太な書籍である」ということです。
なぜ「筋肉質」かというと、それは書籍の構成にあります。
構成は、1章のチュートリアルを一通り学べば、Djangoの主要機能を広く学ぶことができ、さらに知識を深めたい場合は、2章以降を必要に応じて読めば良い構成になっています。
また各章は、必要最低限の要素が学べる洗練されたサンプルコードをもとに説明されています。
これは現場でDjangoを使った開発に取り組む必要があり、短時間で学ばなければならないエンジニアにとってとてもありがたいことです。
「骨太」という点においては、各章の説明が充実していることです。
実運用するWebアプリでは、機能を動かすだけではなく、保守性を高めるための設計、性能やセキュリティなどの非機能要件も当たり前に求められます。
本書は、機能を作るための説明だけではなく、性能問題(N+1問題)、セキュリティ(SQLインジェクション、XSS、CSRF)、再利用性を高めるための設計などについて説明されています。そのあたりが書籍のサブタイトルにもある「本格Webアプリケーション開発」に該当すると思います。
必要かつ十分に説明されていますので、開発現場の時間に余裕の無い中で確認する時にとても役立つでしょう。
謝辞に書かれていますが、PythonやDjangoでの開発に長年携わり、Python関連の書籍を執筆したりカンファレンスで登壇するなどの実績のある方々がレビュワーとして参加されています。
筋肉質で骨太な内容は、このレビュワーの方々とのコミュニケーションの中で生まれていったのかも知れません。
そのように技術書籍としての品質が高められているという点でも、この書籍をおすすめしたいと思います。
本書は、Djangoを速習することもでき、深く学ぶこともできる技術書のお手本のような書籍と感じました。
すべてを読み終わり知識が身につけば、Djangoについて中級以上の知識が身についているといえるでしょう。
Djangoの書籍を探している方に「実践Django」を是非おすすめしたいと思います。
本記事は、匠塾 Advent Calendar 2021の12/23の記事です。
2021年8月にPMBOK(Project Management Body of Knowledge)の第7版がリリースされました。第6版までは「成果物を届けること」が主目的であったのに対し、第7版は「価値を届けること」が主目的になりました。
この変更は、予測型(PMBOKでは第6版まで)から適応型(同第7版)への変化とも言われています。
「予測型」は、「あらかじめ決められたとおり(予測したとおり)に仕事をしていれば価値が生まれる」という前提に立っています。予測型の開発では、その前提のもとに「決められたことを、しっかりやり遂げること=成果物を届けること」にフォーカスします。
「適応型」は、「あらかじめ決められたとおり(予測したとおり)に仕事をしても価値が生まれない」という前提に立っています。適応型の開発では、その前提のもとに「状況に適応して行動し、価値を生み出すこと」にフォーカスします。
ソフトウェアエンジニアの仕事で言えば「ソフトウェアを作ることが仕事」から「価値を創ることが仕事」になったといえるでしょう。
PMBOKの第7版の変更点については、以下の記事が参考になります。
「価値を届けること」を目指して皆で仕事をするときに、目指す対象が曖昧であれば、開発プロジェクトは迷走してしまいます。目指す対象とは価値のことです。
一方で価値を明確にしておけば、その実現のために各自で考え動き出すことができます。
価値を表現し明確化する方法として有効なのが、匠Methodです。*1
匠Methodでは、価値を表層的価値と深層的価値という2つの価値で表現します。
表層的価値とは、製品やサービスを使うことによって得られる機能性やデザイン性などの価値です。価値といわれて思い浮かべるのは、この価値でしょう。
深層的価値とは、自分たちの内面にもつ価値です。一般的にストーリーとして表現され、ビジョン、意志、価値観などで表されます。
匠Methodでは、表層的価値を価値分析モデル、深層的価値を価値デザインモデルという図で表現することで、価値をカタチにします。
※各モデルについては以下のスライドを参照してください。(価値分析モデルは、P36、価値デザインモデルはP39)
匠Methodの価値のモデル(価値分析モデル、価値デザインモデル)を、開発のスタート時点でつくることで、目指すべきものが明確化されます。
もちろん、プロジェクトのスタート時点でつくった価値のモデルも仮説でしかありません。
ソフトウェアをリリースし、使用されることで新たな価値が見えてきます。
ソフトウェアを使用した学びの中から、価値のモデルを洗練させていくことが必要です。
ビジネスでの開発では、仮説検証のサイクルが求められます。*2
開発のスタート地点で、このようなものをつくればうまくいくという仮説をカタチにして人に見せる必要があります。
なぜなら、仮説も無しに企業が人員をアサインすることはほぼ無いからです。「未知のジャンルなので、とにかくやってみよう」という場面でも、最低限の仮説は求められるでしょう。
仮説を立てるときの注意点としては、頭でっかちにならないことです。
頭でっかちにならないためには、仮説をスピーディーにつくることです。
匠Methodの価値のモデルはシンプルなので、慣れれば数時間で価値の仮説を作成できます。
価値のモデルがうまくつくれないのであれば、そのアイデアで進めても、価値は生まれないかもしれません。
「価値を届けること」を目指して皆で仕事をするときに、匠Methodで「価値」を明確化することが有効です。
また、ビジネスでの開発では仮説検証のサイクルが求められるので、匠Methodで価値の仮説をつくってみるとよいでしょう。
匠Methodについて知りたい方は、以下の書籍を読んでみてください。
PythonユーザのためのJupyter[実践]入門を拝読しました。3人の方々はビープラウドのひとたちとも親しくして頂いてる、池内 孝啓さん, 片柳 薫子さん, @drillerさんの執筆です。
本書の構成を下図にまとめてみました。

図に書いたとおり、本書は大きく3つのパートに分かれています。
1つ目はデータ分析ツールについての章です。1章と2章は本書のメインツールであるJupyterLabの環境構築方法と使い方の基本を紹介しています。最終章の8章は環境構築の必要がないクラウドツールのColaboratoryの紹介です。
2つ目はPythonでのデータ分析で最も使われるpandasでのデータ処理の基本を説明しています(第3章)
3つ目は、データの可視化です。標準的ツールであるmatplotlib、matplotlibをラップして使いやすさを向上したseaboanについて説明しています。matplotlib、seaboanともにまずグラフの描画方法を説明し、そのあとにさらに使いこなす方法を説明しています。本書のコアはこの3つ目のパートであるといえるでしょう(4〜7章:合計230ページ)
本書の読み進め方は、以下のようになると思います。
本書の特徴となる章は、5章、7章です。Excelでもそうですが、データを可視化する時に細かい指定方法や設定方法を調べていると、意外に時間が過ぎてしまうものです。そうなるとデータを分析する本質的な作業に使える時間が少なくなっていきます。 本書の5章、7章(matplotlibを使う場合は5章、seabornを使う場合は7章)をひととおり学んでおけば、データ分析の作業に使う時間を増やせるでしょう。
また本書はPythonのデータ分析の基本についてひととおりまとまっていますので、実務のときも本書をリファレンスとして手元においておけば重宝しそうです。
「PythonユーザのためのJupyter「実践」入門」は、Pythonでデータ分析を始めてみようという方におすすめの書籍です。