タグ

ブックマーク / kuranuki.sonicgarden.jp (43)

  • 直感を超えたソフトウェア開発8つの常識と注意点 | Social Change!

    2023年6月10日に発売の拙著「人が増えても速くならない ~変化を抱擁せよ~」は、経営者やマネージャの方々がソフトウェア開発の経験がなかったとしても、その質を掴めればと思って書きました。 今や経営や事業をしていく上でITを使ったシステムは欠かせなくなっており、関わらないわけにはいきません。特に、事業そのものにソフトウェアを内包している場合において、ただ使うだけでなく開発して活用していく必要があります。 そこでソフトウェアと、ソフトウェアを作るエンジニアたちをマネジメントしていかねばならないとき、従来通りのマネジメントをしていると、うまくいかないときが出てきます。 ソフトウェアとエンジニアのマネジメントは、ともすれば直感的なものから外れていることがあります。のタイトルにある「人が増えても速くならない」のも、その一つです。 書では章の目次ごとに、そうした直感とは違っているソフトウェアな

    直感を超えたソフトウェア開発8つの常識と注意点 | Social Change!
    peketamin
    peketamin 2023/06/08
  • プログラミングにおける設計力を高めるには 〜 良いコードを書くために | Social Change!

    プログラミングとはコードを書くことだけではありません。どういった構造にするのか、データはどう扱うのか、どのライブラリを使うのか、いくつもの設計を踏まえてコードを書くのです。設計を表現したものがソースコードです。 設計の良し悪しは品質に影響します。では、良い設計を作るスキルは一体どうやって身につけることができるのでしょうか。プログラミング言語の文法は知識なので、独学でも学ぶことができますが、設計に関してはそうはいきません。 稿では、プログラミングにおける設計力を高めるためにはどうすれば良いのかを考察します。ここで言う設計は、画面や仕様ではなく、ソフトウェア内部の設計ですが、抽象化するとクリエイティブな仕事全般に通じるかもしれません。 稿の内容は「良い設計」について論じたものではなく、どうすれば身につくのかを考えたものになります。また、私たちソニックガーデンで行っている、良いコードを書ける

    プログラミングにおける設計力を高めるには 〜 良いコードを書くために | Social Change!
    peketamin
    peketamin 2021/11/13
  • マネージャの資質とマネジメントの本質 | Social Change!

    前回の記事では、「マネジメント」と「管理」は違うものであるという主張を述べた。管理はマネジメントの手段の一つに過ぎず、現代の再現性の低い仕事や多様な人材がいるチームビルディングにおいて、昔ながらの管理という手法は通用しないのではないか、と。 では、マネジメントとは何で、それを職務とするマネージャの役割は何か、その質について考えてみたい。 マネージャに求められる能力の誤解 以前にシステム開発の現場でプロジェクトマネージャをしていた頃は、マネージャたるもの技術や業務、顧客のことまですべて把握して理解していなければいけないと考えていたし、そう実践していた。 マネージャの大事な仕事の一つは、決断することだと考えていたし、その決断に伴う責任を負うことである、とも。そのためには、あらゆることを知っていないと判断ができない、だから大変だけど向き合ってきた。 しかし、そんな全知全能であろうとするのは遅か

    マネージャの資質とマネジメントの本質 | Social Change!
    peketamin
    peketamin 2019/05/30
  • プログラミング初心者のうちに身につけたい3つの習慣 | Social Change!

    プログラミング技術さえ身に付けば、プログラマとして一人前と言えるでしょうか? プログラミングを始めたばかりのうちは、プログラミング言語の習得や周辺の知識を得ることばかりに目がいきがちですが、それだけでは一流のプログラマになれません。(プログラミング言語を学びたいならこちら:写経で身につけるプログラミングの基) プログラマとして成長するためには、プログラミング技術を学ぶだけではなく、良いソフトウェアを作るための良い習慣を身に付けることが大事になります。初心者のうちに良い習慣を身につけておけば、ただ知識を追い求めるのではなく地に足をつけた成長ができるはずです。 記事では、私自身も先人たちから学んだプログラマが身につけたい3つの習慣について書いています。 自分で書いたすべてのコードを説明できるようになろう プログラミングは全て、明確な判断の結果です。if文を使うべきかどうか、どのAPIを使う

    プログラミング初心者のうちに身につけたい3つの習慣 | Social Change!
    peketamin
    peketamin 2018/08/22
    たしかに…
  • プログラミング経験がない経営者のためのソフトウェア開発 11の事実 | Social Change!

    今やどんなビジネスでもITが関係している。ITを支えているのはソフトウェアだ。あらゆるものがソフトウェアで実現される時代になった。そんな事業や生活に密接に関わるソフトウェアだが、その開発について知られていないことも多い。 とくに経営者がプログラミング経験がないことで、ソフトウェア開発のリーダーシップをとるときに的外れなマネジメントをしてしまうことがある。あまねく経営者がプログラミング経験があれば良いのかもしれないが、それは現実的ではない。 プログラミング経験がなくても、せめてソフトウェア開発の特性について知っておくと良さそうなこともあると思い、なるべく専門用語を使わずに稿を書いた。 プログラミングは製造ではなく、設計である いまだにソフトウェア開発を、ビルや家屋の建築に喩える人がいるし、工場でモノを製造するようにプログラムが作られると思っている人もいる。 ここが間違いのもとだ。ハードウェ

    プログラミング経験がない経営者のためのソフトウェア開発 11の事実 | Social Change!
    peketamin
    peketamin 2018/03/15
  • プログラミングの初心者を抜け出すための習慣 | Social Change!

    少しプログラミングが出来るようになると、それはそれでまた伸び悩むこともある。始めたばかりの頃は、プログラムが動くだけで楽しかったけれど、実用的で、少し複雑で難しいものを作ろうとすると、途端に時間がかかってしまう。 プログラミングがうまくなる近道などないとはいえ、経験者だからこそ伝えられることもあるのではないか。そう言えば、私も若い頃に先輩から、コードを書くこと以外にも、プログラミングをする上での姿勢や習慣などを教わった。 私もプログラミングを再開したがブランクがあるので、今となっては古い習慣もあるかもしれないが、私が先達から学んだことを伝えておくために残しておこう。もしかしたら、抽象化すればビジネスにも通じる習慣もあるかもしれない。 エラーが出ても慌てず、メッセージを読もう プログラミングをしていてエラーに出会わないことはないだろう。うまく出来たと思って実行ボタンを押したけど動かない、落ち

    プログラミングの初心者を抜け出すための習慣 | Social Change!
    peketamin
    peketamin 2018/01/19
  • 業務改善とシステム化を一緒にやってしまう「業務ハッカー」という新しい職業 | Social Change!

    前々回の記事『理想の働き方改革より現場の業務改善を 〜 現実的で効果的な「業務ハック」のはじめ方』では、業務改善とシステム化を一緒にやってしまう「業務ハック」というコンセプトについて書いた。 そして、今週末には業務ハックの初の勉強会が開催される。おかげさまで好評なため、大阪でも開催することに。(業務ハック勉強会@東京、業務ハック勉強会@大阪) 今回の記事では、そんな「業務ハック」に取り組む職業「業務ハッカー」、すなわち業務改善とシステム化を一緒にやってしまう仕事について書いた。 業務改善とシステム化を兼業する「業務ハッカー」の土壌 「業務ハック」では、現行業務の分析と見える化を行い、ボトルネックを発見し、もっとも効果的な部分から小さく始めていくことを特徴としている。そして、なんでもかんでも作るのではなく、便利なツールやプラットフォームを駆使して、もっとも費用対効果の高いところだけをプログラ

    業務改善とシステム化を一緒にやってしまう「業務ハッカー」という新しい職業 | Social Change!
    peketamin
    peketamin 2017/12/12
  • 数字や営業が苦手なプログラマだから辿り着いた「エクストリーム経営」 | Social Change!

    「心はプログラマ、仕事は経営者」プログラマである自分が働きたいと思える会社を作りたいと思って経営をしてきた。結果として、セルフマネジメントでフラットで自己組織化された組織、最近だとホラクラシーと呼ばれるような経営をしている。 いい会社だと言ってもらえることもあって誇らしく思うのだが、果たして当に良い会社かどうかはわからない。価値観に合致するプログラマにとっては良いかもしれないけれど、合わない人や他の職種の人にとっては全然ダメな会社かもしれない。 よく取材などでも聞かれるが、今の経営スタイルは、たいそう立派な理念や理想があって実現した訳ではなく、プログラマである自分自身が苦手なことをせずに済むように、逆に出来ることと得意なことは徹底的に活かそうとしてきたに過ぎない。 思い返せば、徹底的に極端にしてきたことが功を奏したことから、この経営スタイルは、もし名付けるなら「エクストリーム経営」と呼べ

    数字や営業が苦手なプログラマだから辿り着いた「エクストリーム経営」 | Social Change!
    peketamin
    peketamin 2017/06/28
  • コピペするプログラマに足りないもの 〜 プログラミング脳の鍛え方 | Social Change!

    長くなったので先に三行でまとめておこう。 コピペするプログラマが生まれるのは教育の問題ではないか(仮説) 文法は学んでも処理の流れから考えることは教わっていない(根拠) ロジックを訓練するには脳内プログラミングが良いのでは?(提案) 少し前に私のMediumで、こんな記事を書いた。タイトルが言葉足らずだったおかげで、少し話題になった。「量産型プログラマを撲滅したい」 今回の記事では、この中で書いたコピペするプログラマがなぜ生まれるのか、どうすれば良いのか、考えてみたい。 どうすれば見分けられるのか 書いたプログラムを説明させてみれば、その人が、ちゃんと考えて作れる人か、コピペでしか作れない人か、すぐにわかる。自分の書いたプログラムの流れを説明できるということは「わかって書いた」ということだ。わかっていなければ説明できない。 「わかって書く」という一見すると当たり前のことができない人もいる。

    コピペするプログラマに足りないもの 〜 プログラミング脳の鍛え方 | Social Change!
    peketamin
    peketamin 2017/02/16
  • 心理的安全性の高いチームを作るための取り組み | Social Change!

    社員一人ひとりが会社で来の自分を曝け出すことができること、そして、それを受け入れるための「心理的安全性」、つまり他者への心遣いや共感、理解力を醸成することが、間接的にではあるが、チームの生産性を高めることにつながる。 これは現代ビジネスのウェブ版に掲載された以下の記事からの一節だ。 グーグルが突きとめた!社員の「生産性」を高める唯一の方法はこうだ グーグルが取り組んだ生産性向上計画についての記事で、それによると生産性の高いチームに共通するのは「他者への心遣いや同情、あるいは配慮や共感」がうまくいっていることだと言うのだ。 チームの中で、気兼ねなく安心して発言や行動できるような心理的な不安がない状態が、高い生産性を実現すると言われれば、確かにそう思う。そうした状態を心理学の専門用語から「心理的安全性(psychological safety)」と呼ぶらしい。 これまで言葉として認識していな

    心理的安全性の高いチームを作るための取り組み | Social Change!
    peketamin
    peketamin 2017/01/04
  • 経営者が新規事業を失敗させてしまう7つの罠 | Social Change!

    多くの企業が新規事業に取り組んでは失敗している。新規事業はそもそも難しく、企業の中で始める新規事業もスタートアップも成功するケースはわずかしかない。中でも既存事業をもった企業の中で新規事業を立ち上げるのは、非常に難しい。スタートアップに比べて恵まれた環境にあるにも関わらず、である。 私たちも大手システム会社の社内ベンチャーからスタートしたので事情はよくわかっているし、「納品のない受託開発」では新規事業に取り組むお客様の相談を多く受けてきた。記事では、そうした経験から新規事業の当事者でなく、既存事業の経営側がやっていることで失敗させてしまっている点について考察した。 たくさんの関係者を入れる 仲間内で始めるスタートアップと違い、企業で新規事業に取り組む場合は、社内からメンバーを集めてきて体制を作るところから始まる。事業計画をもとに必要なスキルを持った人員が配置される。しかし、そこに落とし穴

    経営者が新規事業を失敗させてしまう7つの罠 | Social Change!
    peketamin
    peketamin 2016/09/03
  • セルフマネジメントの必須スキル「タスクばらし」そのポイント | Social Change!

    私たちソニックガーデンでは、指示命令のマネジメントを捨て、メンバーそれぞれが自分で考え自律的に行動することで、高い生産性を発揮しつつ様々な変化に対して柔軟に対応できる組織づくりに努めている。 そんなメンバーたちに求めるのはセルフマネジメントができることだ。セルフマネジメントができるために身に付ける素養は少なくない。しかし、セルフマネジメントを身につける最初の一歩は何かを聞かれたら「タスクばらし」だと答えるだろう。 記事では、セルフマネジメントをマスターするための最初の必須のスキル「タスクばらし」について紹介する。 「タスクばらし」とは 「タスクばらし」とは、読んで字のごとく、仕事をタスクにバラすことである。仕事に取り掛かる前に、その仕事の要素を分解し、どのように進めるか道筋を立てることで、どれくらい時間がかかるか、リスクは何か、見通しを得ることができる。 当たり前のことだと思っていたが、

    セルフマネジメントの必須スキル「タスクばらし」そのポイント | Social Change!
    peketamin
    peketamin 2016/07/22
  • 手を動かせるプログラマの市場価値が高まる理由 〜 この10年間で起きた4つの環境変化 | Social Change!

    プログラミングができるITエンジニア人材の市場価値は、以前と比べて非常に高まってきているように感じる。そこで求められている人材とは、自ら手を動かすことで問題解決をするナレッジワーカーとしての「プログラマ」である。 決して、仕様書通りにコーディングだけする職種のことではない。それは以前に書いた。ソフトウェアエンジニアの目指す道 〜 ナレッジワーカーとしてのプログラマ 今回の記事では、この10年間で起きた市場や環境の変化から、手を動かせるプログラマの市場価値が高まってきた背景について、そして、これから求められるITエンジニアの姿について考えてみた。 12年前の転職市場で求められていたスキル 私が30歳を過ぎた頃、今から12年前(2004年頃)の話になるが、その当時に転職しようと少し調べたことがある。自分の年齢と経験をもとに探した応募要項で求められるスキルは、マネジメントであり大規模プロジェクト

    手を動かせるプログラマの市場価値が高まる理由 〜 この10年間で起きた4つの環境変化 | Social Change!
    peketamin
    peketamin 2016/06/17
  • 2016年「ITエンジニア本大賞」受賞作を紹介 | Social Change!

    今回の技術書部門での大賞は、こちらの「プログラマ脳を鍛える数学パズル」でした。おめでとうございます。 パズル的な問題をプログラムを作って解くという、数学的な発想だったり、アルゴリズムを考えたりするような頭の体操になるような問題を集めた一冊。プログラミングが好きで、パズルを解くのが好きな人ならハマりそうなです。 プレゼンも良かった。CodeIQでの問題をまとめたものだけれど、その問題をコツコツと作り続け、提出される回答のソースコードのすべてに目を通して、コメントをし続けたという話は壮絶でしたね。その努力に投票した聴衆もいたでしょう。

    2016年「ITエンジニア本大賞」受賞作を紹介 | Social Change!
    peketamin
    peketamin 2016/02/20
  • 成長のスピードが早い人と遅い人の3つの違い 〜 テーマをもって仕事に取り組んでいるか | Social Change!

    これまで多くの人の成長を見てきましたが、人によっては成長のスピードが非常に早い人とそうでもない人がいて、そこには幾つか違いがあると気付きました。 この記事では、その気付きから成長のスピードが早い人と遅い人の違いは何があるか考えてみました。もしかすると、ほんの少し意識を変えることで成長のスピードを早くすることができるかもしれません。 1)仕事のあとに「ふりかえり」をしているか 自分の仕事の進め方はいつ改善されるのでしょうか。毎回、同じことを繰り返すだけでは進歩がありません。仕事が終わったら、自らの仕事ぶりをふりかえり、良かったところを伸ばし、まずかったところを直すと良いでしょう。 私たちの会社では、仕事の「ふりかえり」に慣れていないメンバーは、最初のうちは週に1度くらいの頻度で「KPT」というフレームワークを用いて行っています。詳しくは、このブログの「ふりかえり」に関する記事に書いてあるので

    成長のスピードが早い人と遅い人の3つの違い 〜 テーマをもって仕事に取り組んでいるか | Social Change!
    peketamin
    peketamin 2016/01/13
  • ガントチャートの功罪 〜 新規事業で工程表を作ることに意味はあるか? | Social Change!

    「納品のない受託開発」を通じて、新規事業におけるソフトウェア開発を手伝わせて頂いていることもあり、そこで得た知見を活かして新規事業の審査員のような仕事をさせて頂くことがあります。 そこで審査のために提出された資料の中にあるガントチャートや工程表を見るとき、いつも違和感を感じていました。この記事では、ガントチャートが新規事業においては有効ではないという気付きについて書きました。 ガントチャートは決められた工程の管理をするのに最適 ガントチャートや工程表は、あらかじめ完成品が見えており、工程がはっきりしたものを「製造」していくときに非常に役に立ちます。どの工程にどれくらいの工期がかかるのか見えるようにすることで全体の計画が把握できます。 ガントチャートを有効に使うためには、きちんと工程を分解できること、とりかかる工程の順番がはっきりしていること、それぞれの工程にどれくらいの期間がかかるのか見積

    ガントチャートの功罪 〜 新規事業で工程表を作ることに意味はあるか? | Social Change!
    peketamin
    peketamin 2015/11/10
  • 「頭の回転」は才能ではなく努力で鍛えられる 〜 打ち合わせのアドリブ力を上げる4つの要素 | Social Change!

    一方通行の報告だけの会議は生産的ではありません。生産的な会議とは、その場でディスカッションをしてアイデアを出し合って、その打ち合わせの時間内に結論や成果を出すような会議です。そのためには、打ち合わせでの発言の質が大事になります。 会議で良い発言をするためにも、頭の回転の速さが求められますが、それは才能ある人だけの特権でしょうか。否、そんなことはなくて、努力をすることで身につけることができるのではないか、と私は考えています。この記事では、会議でのアドリブに強くなるための思考スピードを鍛える方法について考察しました。 デキる人は「持ち帰って検討します」を言わない 打ち合わせをしていても、その場で考えることをギブアップして「持ち帰って検討します」「あとで考えてみます」みたいな発言が出ることがあります。そうした後回し思考の発言が出ると、打ち合わせは進まなくなってしまいます。 優秀だなと思う人との打

    「頭の回転」は才能ではなく努力で鍛えられる 〜 打ち合わせのアドリブ力を上げる4つの要素 | Social Change!
    peketamin
    peketamin 2015/09/17
  • 「受託脳」から「提案脳」へ 〜 目線を変えて問題解決のプロフェッショナルになるためには | Social Change!

    不特定多数に物を売るのではなく、特定の誰かの問題を解決する仕事をするときには、相手のことを考えるだけではうまくいかない場合があります。どうすれば顧客の当の満足を得ることができるのでしょうか。 これまで一緒に仕事をして素晴らしいと感じた人たちは皆、その見ている「目線」が違うことに気がつきました。この記事では、問題解決のプロフェッショナルが備えている目線の持ちかたについて書きました。 アウトソースをするときの2種類の目的 私たちが仕事をアウトソースするとき、2種類に分けて考えています。 一つは、決められた単純作業や繰り返し作業のアウトソースです。そういう作業はクラウドソーシングを活用することもありますが、私たちの会社ではそれほど多くありません。だいたいの単純作業はコンピュータを使って自動化してしまうからです。 もう一つは、自分たちには出来ない問題を解決するためのアウトソースです。ウェブサイト

    「受託脳」から「提案脳」へ 〜 目線を変えて問題解決のプロフェッショナルになるためには | Social Change!
    peketamin
    peketamin 2015/08/06
  • リモートチームのメンバーが気をつけている常識ではありえない4つの習慣 | Social Change!

    リモートチームとは、物理的に離れた場所で働きつつもチームワークを発揮して、チームで助け合って成果を出していく働きかたです。私たちソニックガーデンでは、リモートチームを5年以上続けてきました。 この記事では、私たちが経験から学んできたリモートチームを実現するときにメンバーが気をつけておくと良いだろうと思う4つの習慣について書きました。 1)仕事に関する「雑談」をして連帯感を出す習慣 チームビルディングの第1歩は、チームを構成するメンバーをお互いに仲間だと認識することから始まります。それはたとえリモートチームであっても同じことです。 もしオフィスにいれば、飲み会や事の機会があったりして、お互いのことをなんとなく認識することが出来るのかもしれませんが、リモートではそうはいきません。 そこでリモートチームでは、互いに認識しあう機会として、あえて仕事の合間に雑談をするよう気をつけています。雑談とい

    リモートチームのメンバーが気をつけている常識ではありえない4つの習慣 | Social Change!
    peketamin
    peketamin 2015/04/23
  • 熟練の技術者だけが知っている効果的に成長するための「努力の指針」とは | Social Change!

    最近、若い技術者を一緒に開発しながら育てています。若者たちが一人前になるためには、勿論しっかりと努力をしなければいけませんが、ただし闇雲に頑張るよりも指針があったほうがいいでしょう。 その視点でベテラン技術者たちを観察すると、効果的な努力の仕方があることに気づきます。この記事では、熟練の技術者たちが日常的にやっている「努力の指針」について考えました。 品質:価値判断を増やすためのレビューを受ける 何よりもまず身に付けるのは、基礎体力です。体力といっても肉体的な意味ではなく、その仕事における基礎的な力のことです。たとえばプログラミングであれば、より速く、より美しいソースコードを書けるようになることです。 未熟なうちは、何をするにしても時間はかかりますし、成果物の品質もよくないでしょう。では、どうすれば上達するのでしょうか。 品質は熟練者からのレビューを受ければ高めていくことができます。品質を

    熟練の技術者だけが知っている効果的に成長するための「努力の指針」とは | Social Change!
    peketamin
    peketamin 2015/02/17