Apple WWDC 2020 Keynote まとめ

macの刷新

https://www.apple.com/newsroom/2020/06/apple-announces-mac-transition-to-apple-silicon/

  • macOS 11.0 Big Sur リリース
  • Appleチップ(A12Z ARM) へ移行する
  • Xcode12でAppleチップへ
  • Universal 2 という新バイナリが登場し、intelとarmアーキを1つのバイナリにまとめられる
  • Rosetta 2 というバイナリトランスレーション技術を導入。アプリインストール時のプリコンパイル、実行時のJITintel命令を実行時にarm命令へ)などができる

まずは A12Z入り mac mini が開発者向けにレンタルされます。(抽選) リンク https://developer.apple.com/programs/universal/ で、今日から申し込み開始です。 macOSアプリ開発者が優先されます。 全部で $500 になる見込みとのこと。

年末リリースのmacからチップの移行が始まるとのこと。

iPadアプリ が全て macOS アプリに

iPadアプリをmacOSのAppStoreからインストールできるようになります。 iPadアプリをmacOSで使えるように変換できる Catalyst という技術が使われているとのこと。

UIシステム刷新

フラットデザインを採用した iOS7のように、macOSにも新しいUIフレームワークが導入されます。 ざっくりいうと、macOSアプリが、iPadアプリのUIの考え方に近いものになるようです。 メニューバー、(アプリ上部)ツールバー、サイドパネル、Widgetなどなど一新されます。

新OS beta版リリース

下記のサイトからダウンロードできます。 https://developer.apple.com/download/

iOS

App Clip

特定のQRコードや、NFCタグなどをiPhoneで読むと、 対応するアプリ「クリップ」をその場ですぐに起動できます。

このアプリクリップは、iOSユーザへアプリを手に取ってもらうチャンスを広げるためのものです。 ユーザがアプリクリップを気に入れば、完全版アプリをダウンロードしてもらえるような導線を用意しています。

アプリクリップは1回の使うたびに課金したり、Apple IDでの認証を求めたりできまうs。

Widget

AndroidWidgetみたいなやつが登場。ホーム画面におけます。

NervesでのEV3ファームウェア開発

Nervesは(RailsやElixir由来の)Web開発体験を組込みLinuxファーム開発に組み入れたという点でユニークです。IoT時代に注目されるべきプラットフォームだと私は確信します。

EV3はLEGOが販売してプログラミングできるLEGOで、ロボットなどが作れるものです。 Wikipedia Lego Mindstorms EV3 日本ではEV3を使ったロボットコンテストが開催されていますし、EV3を授業や研修、研究に使っている事例も目にします。私の知り合いにもEV3をお持ちの方がいるので、私はそういう方々とこのNervesでの開発体験を共有したいなと普段から考えています。

Nervesチームは去年の2018/9月頃までLEGO MINDSTORM EV3をサポートしていましたが、 利用者数があまり多くない割にはメンテナンスコストが高いことを理由にサポートを打ち切りました。 fhunlethさん EV3サポート終了のおしらせ

EV3の発売日は2013年9月でそれ以降のハードウェアの更新はありません。じゃあ何にコストがかかっているのかというとソフトウェアです。ev3devというEV3向けのLinuxがありまして、そのソースをEV3向けNervesへ移植しているようです。fhunleth さんはev3devの更新頻度が高くてNerves側への反映の手間がかかっているというとおっしゃっています。

Nervesは2018/9時点で1.3がリリース済みで、現在リリースされている1.5と使い勝手は大きく変わりないと私は思います。古いソースコードをわざわざ掘り起こして使っていただく意義も十分あります。そこで、まずは現時点での(2019/12/15)開発環境の設定方法をまとめました。

開発環境の準備

EV3用のプロジェクトを作るためには、インストールするバージョンの制約があります。 結構難しかったのでバージョン設定は下の手順を見ながら正確にインストールすることをお勧めします。

インストール手順

erlangとelixirのバージョンは以下の通りにしてください。

$ asdf install erlang 21.3.8.6
$ asdf install elixir 1.7.3
$ asdf global erlang 21.3.8.6
$ asdf global elixir 1.7.3

nerves用のmix taskが入っている nerves_bootstrapをインストールします。 versionを1.3.2を使うよう気をつけてください。 確認は mix archiveでできます。 これをすると nerves_bootstrap のバージョンが上書きされることに注意です。

$ mix archive.install hex nerves_bootstrap 1.3.2
$ mix archive
* hex-0.20.1
* nerves_bootstrap-1.3.2
Archives installed at: /Users/yoshinori/.asdf/installs/elixir/1.9.1-otp-21/.mix/archives

nerves_bootstrapを最新に戻したい場合はもう一度インストールしましょう。

$ mix archive.install hex nerves_bootstrap

プロジェクトの雛形作成

nerves_ev3_exampleプロジェクトを新規作成します。 依存ライブラリはこの時点でインストールしないでください。 この後インストールする nerves のバージョンを固定する必要があるからです。

$ mix nerves.new nerves_ev3_example --init-gadget
Fetch and install dependencies? [Yn] n

フォルダへ移動し、MIX_TARGETを設定します。

$ cd nerves_ev3_example
$ export MIX_TARGET=ev3

nerves のバージョンが1.4.0がインストールされるようにします。 1.3.2の方が相応しい気もするのですが、ビルドエラーを解決できませんでした。 1.4.0をインストールください。

mix.exs

  # Run "mix help deps" to learn about dependencies.
  defp deps do
    [
-      {:nerves, "~> 1.3", runtime: false},
+      {:nerves, "~> 1.4.0", runtime: false},
      {:shoehorn, "~> 0.4"},
      {:ring_logger, "~> 0.4"}
    ] ++ deps(@target)
  end

依存ライブラリをインストールします。

$ mix deps.get

リリースフォルダにリソースファイルを設置します。

$ mix nerves.release.init 

ファームウェアをビルドします。

$ mix firmware

_build/ev3/dev/nerves/images/nerves_ev3_sample3.fwファームウェアができているはずです。

ファームアップ用のスクリプトを生成しておきます。

$ mix firmware.gen.script

下のコマンドでファームアップできるので便利です。 ssh越しにファームアップするので、パスワードを要求されたら入力してください。

$ ./upload.sh

開発

EV3のmini USBポートと開発PCをつないでください。 sshでEV3にログインして作業してみます。 この後パスワード等を入力を要求されたら入力してください。 以下のように iex が始まります。

$ ssh nerves.local
Enter passphrase for key 'XXXX': 
Interactive Elixir (1.7.3) - press Ctrl+C to exit (type h() ENTER for help)
The Nerves.Runtime.Helpers have been removed. Use https://hex.pm/packages/toolshed instead.
RingLogger is collecting log messages from Elixir and Linux. To see the
messages, either attach the current IEx session to the logger:

  RingLogger.attach

or tail the log:

  RingLogger.tail

iex(1)> 

EV3に繋がるデバイスとはdevfsで通信できます。 lsコマンドで通信IF(ファイル形式)を調べてみてください。 サーボモーターを装着した場合、以下のパスにモーターのIFが生えています。

ls "/sys/class/tacho-motor/motor0/

あとはFile.readやFile.writeを駆使してモータを制御してみてください。 Elixir File

残念ですが時間切れなので、記事はここまでです。

参考情報

Nervesの歴史をさかのぼっていつのNervesが使えそうかを調査しました。githubnerves/nerves_bootstrapリポジトリのログを見ると、Remove ev3 target and bump bbb to 2.0を見つけました。 nerves_bootstrapはこのコミット以前のv1.3.2 が最後だとわかります。

nerves_bootstrap はNervesの開発を支援してくれるツール群です。mix nerves.newで新規プロジェクトを作るときに使います。mix nerves.newのソースを見ると必要なライブラリのバージョンがわかります。

nerves_bootstrap

  @nerves_vsn "1.3"
  @shoehorn_vsn "0.4"
  @bootstrap_vsn "1.0"
  @runtime_vsn "0.6"
  @ring_logger_vsn "0.4"
  @init_gadget_vsn "0.4"
  
  ...
  
  defp nerves_dep("deps/nerves"), do: ~s[{:nerves, "~> #{@nerves_vsn}", runtime: false}]

ここから{:nerves "~> 1.3"}はNerves 1.3系がヒントになりそうです。

elixir 1.9.1 と erlangは 22.0.1 を使っているとmix firmwareでエラーが出ます。

** (Mix) Major version mismatch between host and target Erlang/OTP versions
  Host version: 22
  Target version: 21

This will likely cause Erlang code compiled for the target to fail in
unexpected ways. Install an Erlang OTP release that matches the target
version before continuing.

なので erlangは21を使うことにします。

elixir のバージョンですが、1.9.1 を使うと以下のwarningが発生するので、 1.7.3を使います。 これは 2018/9月頃にリリースされたバージョンです。

$ mix firmware
==> nerves
warning: the dependency :nerves requires Elixir "~> 1.6.0 or ~> 1.7.3" but you are running on v1.9.1

ETロボコンシミュレータ 体験報告

モデルベース開発をするのであればシミュレータ環境は欲しいところ。

TOPPERS/箱庭プロジェクトからリリースされたシミュレータの使い方を体験するチュートリアルがあるので、追試してみました。

https://qiita.com/kanetugu2018/items/0e521f4779cd680dab18

環境

Windows10 1909 18363.476 WSL Ubuntu18.04 gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0

Unity 2018.3.7f1 のインストール

Unityはバージョンアップによる機能追加が多く、互換性もボチボチ壊れるので、インストールするバージョンは合わせるのがよい。 2018.3.7f1 はLTS版ではないようなので、LTS版のページに飛んでしまうと見つけられない。

インストーラをダウンロードしたら、ダイアログにしたがって進められる。

WSL のインストール

私の環境ではインストール済みだった。UbuntuのLTS版である18.04を使っている。

Rubyのインスト―ル

ロボット制御プログラム(つまり、EV3のファーム)のソースを自動生成するツールがあるのだが、それがrubyで出来ている。

sudo apt install ruby

Windows Terminalをインストール

WSL上で開発を進めることになるので、実用できるターミナルがあるとインストール作業が捗る。 Windows Terminal (preview) がMicrosoft Storeからリリースされているのでそれを使う。

athrillのインストール

このページを参考にした。

https://qiita.com/kanetugu2018/items/81713a3431482eab0f52#ros%E5%AF%BE%E5%BF%9C%E7%89%88%E3%81%AEathrill%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86

$ make timer32=true

のところでエラーがでた。

$ gcc -O3 -c -g -Wall -Wunknown-pragmas -Wimplicit-int -Wtrigraphs -std=gnu99 -mtune=native -march=native -mfpmath=both  -I. -I../../../athrill/trunk/src/inc -I../../../athrill/trunk/src/lib -I../src/cpu -I../src/cpu/config -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/api -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/api -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/config -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/config/os/target/os_asp -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/target -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/target/os -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/device -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/inc -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/os/target/os_asp -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/protocol/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/node/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/topic/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/comm/cimpl/target/lwip -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/comm/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/packet/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/packet/template/version/kinetic -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/packet/cimpl/version/kinetic -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/protocol/cimpl -I../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/transfer/cimpl -DTARGET_ATHRILL  -DLWIP_TRANSPORT_ETHERNET -DOS_LINUX -DSUPRESS_DETECT_WARNING_MESSAGE ../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/comm/cimpl/mros_comm_tcp_client_factory_cimpl.c
In file included from ../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/config/mros_sys_config.h:9:0,
                 from ../../../athrill/trunk/src/device/peripheral/mros-dev/mros-src/comm/cimpl/mros_comm_tcp_client_factory_cimpl.c:19:
../../../athrill/trunk/src/device/peripheral/mros-dev/mros-athrill/config/os/target/os_asp/mros_os_config.h:15:28: error: unknown type name ‘intptr_t’; did you mean ‘__intptr_t’?
 extern void cyclic_handler(intptr_t exinf);
                            ^~~~~~~~
                            __intptr_t
Makefile.env:61: recipe for target 'mros_comm_tcp_client_factory_cimpl.o' failed
make[1]: *** [mros_comm_tcp_client_factory_cimpl.o] Error 1
make[1]: Leaving directory '/mnt/e/src/github.com/tmori/athrill-target/v850e2m/build_linux'
Makefile:70: recipe for target 'libmros.a' failed
make: *** [libmros.a] Error 2

インストール作業中にビルドエラーが出てしまったので中断。解決できそうか判断でき次第再開することになりそう。

.cソースに #include <stdint.h>や #include "stdint.h" を追加するだけでは解決しないようです。

今日はここまで。解決できれば次回に続きます。

(2019/12/03 続き)

athrill-targetで make するとビルドエラーが発生する件はリポジトリごと再取得することで回避できました。

gcc5とgcc7での結果を比較するためにgcc-5をaptでインストールしたことも関係あるかもしれません。

原因は分からないのですが、インストール作業を進めることを優先します。

athrill用gcc

V850向けクロスコンパイラを取得します。

$ wget https://github.com/tmori/athrill-gcc/releases/download/v1.0/athrill-gcc-package.tar.gz
$ tar xzvf athrill-gcc-package.tar.gz                                                                                  │make[1]: Leaving directory '/mnt/e/src/github.com/tmori/athrill-target/v850e2m/build_linux'
athrill-gcc-package/                                                                                                                    │ranlib libmain.a libcui.a libcpu.a libbus.a libmpu.a libdevice.a libloader.a libstd.a libmros.a
athrill-gcc-package/athrill-gcc.tar.gz                                                                                                  │gcc -O3 -Wl,--allow-multiple-definition libmain.a libcui.a libcpu.a libbus.a libmpu.a libdevice.a libloader.a libstd.a libmros.a -o athathrill-gcc-package/binutils-2.24.tar.gz                                                                                                │rill2  -lpthread   -lm
athrill-gcc-package/libgmps.tar.gz                                                                                                      │/bin/cp athrill2 ../../../athrill/trunk/src/../../bin/linux/
athrill-gcc-package/README.txt
$ cd athrill-gcc-package/
$ tar xzvf athrill-gcc.tar.gz  
$ sudo mv usr/local/athrill-gcc /usr/local

箱庭用 EV3RT 開発環境のダウンロード

 git clone https://github.com/tmori/athrill-sample.git

以上でインストール作業は終わりです。 最後に、ソースの修正やドキュメントの更新を迅速に対応して頂いた @tmori さんありがとうございました。

Ember.js アプリ設計 tips (Ember.Sapporo #23 にいってみた)

背景

私はSEで最近はPCアプリ・モバイルアプリを主に作っている。Web系はあまり経験なし。 ここ何年か、趣味でWebアプリを作ってきたが、一人では中々完成に至らず捨てることも多かった。 近頃は Ember.Sapporo によく顔を出すようになった。 そこでいろいろ教わる中で、少しずつだが欲しいものが作れるようになってきた。 そういうわけで、Ember.jsを使っているのは近くにコミュニティがあることが大きい。 BackboneもAngularもReactもどれも良いと思うけど、近くに聞ける人がいないのだ。 ;( 独学も悪くないけど、私は本を読むのも遅いし、もの覚えも悪いので、アプリを作る前につまずきがちなのだ。 つまづいた時に人に聞けるというのは大事なことだ。

先日 Ember.Sapporo の @tricknotes さんに Ember.js アプリ(以下emberアプリ)の設計・実装について アドバイスをたくさんいただけた。後で見返したいのでここに記録しておく。 また、Ember.jsの内部構造の話も聞けた。そちらは後日書く。

今回のEmber.Sapporoでは、妻が過去に作った小遣い帳Webアプリを作り変えるにあたり、設計を相談してみた。 フロントはBackbone.js バックは素のPHP データベースはsqlite(最近まで何年も素のjsonファイルだった。よく動いていたなぁ。)

作り変えようと思った理由は以下。まとめると、機能追加に耐えられなくなってきたと。

  • 幾度かの機能追加を経て、Viewのツリー構造が崩れてきていた。
  • Event発行、受信に設計がなく、よくバグが出たし、コードがおいづらくなっていた。
  • ViewのrenderがjQueryでゴリゴリ書いてあってレイアウトに手を入れづらかった。
  • ModelやCollectionの関連付けが面倒で、大きなデータ構造の変更が億劫になっていた。

欲しいものは以下。要望度が高いほど早く欲しい機能だ。

  • 出費の入力(要望度 高)
  • 予算・実績の比較(要望度 低)

Emberアプリとバックエンド

Emberで特に面白いのは、Ember.js アプリの作成中、WebAPI バックエンドがなくてもアプリを実装できることだ。 なぜなら Ember.Data と mirage を利用すると便利な WebAPI バックエンドのモックが手に入るから。 モックを使った開発用アプリとWebAPIを呼び出す本番用アプリをいちいち切り替えなくて済むのは嬉しい。 そして、スタブ・モックを使った設計・実装は私の好みに合う。 ただ、スタブもモックも作成に手間と時間がかかるので、普段はスケジュールに余裕がないと作らない。 その手間と時間が省けるなら今後積極的に使ってみたい。

というわけで、画面設計・データ設計ののち、アプリ実装することに。 バックエンド改修はその後。

画面設計

画面設計tipsをメモしておく。

emberアプリにおいて、画面レイアウトとルートには密接な関係がある。 上位ルートのテンプレート内の {{outlet}} に下位ルートのテンプレートが埋め込まれるからだ。 直近必要になりそうな画面とRouteの対応をざっと考えた。以下の通り。

  • 出費 - /expences/
  • 出費一覧 - /expences/index
  • 出費入力 - /expences/new
  • 予実 - /budgets/
  • 予実 月毎 - /budgets/time/yyyy-MM
  • 予実 費目毎 - /budgets/sections/費目名

index ルートを用意するかしないかは、下位ルートの画面の見た目をどうしたいかによって決まる。 例えば、PC向けかモバイル向けかで決めることがあると聞いた。 今回はモバイル向けアプリを作るつもりなので、index ルートを用意する。

データ構造設計

データ構造設計に関するtipsをメモしておく。

Ember.DataはデフォルトでJSON-API形式に対応している。 (JSON-APIはEmberのコミュニティの方々が標準化に関わっているとのこと。) モデルはJSON-APIフォーマットで作ると楽。 バックエンドはWebアプリができてから JSON-APIフォーマット を出力するように書き換える予定。

emberアプリ側でバックエンドAPIに合わせたデータアダプタ(Emberではシリアライザと呼ぶらしい)を 書くのはどうかと質問したところ、バックエンドを書き換える方が楽なことが多いと答えをもらった。

-- (時間がなくなってしまった。今日はここまで)

TEF道プレゼンツHOTATE 『ドリる』原因結果グラフ に参加しました。

ソフトウェアテスト技法ドリル」という本を題材に、テスト技法をワーク形式で学ぶ勉強会です。

今日は3章3節の「原因結果グラフ」について、 グラフの作成方法を参加者全員で学びました。

原因結果グラフって?

原因結果グラフはディシジョンテーブルを作成するシーンで テストする条件の組合せが膨大な数になるような、 複雑な論理関係の組合せのテストをする際に活躍する技法です。

考えられる全てのパラメータの組合せをテストしようとすると、

2 ^ (パラメータの数)

の数だけテストしなければなりませんが(しんどい!)、 全ケーステストしなければならない状況というのは聞いたことがないです。 「原因結果グラフ」を使えば正常系のケースのみを割り出せます。

今日のワークのポイント

ワークの最中に気づいた、原因結果グラフを作成する上で気をつけるべきことをメモしておきます。

  • 最初に原因・結果の洗い出しを行うこと
  • 制約を用いてグラフをできるだけ簡潔にすること

原因・結果の洗い出しが難しかったのですが、場数を踏めば使いこなせるのだろうと思います。

最後に

業務がお忙しいなか開催してくださった @MAQ69さん、参加者のみなさん、ありがとうございました。勉強になりました。

ソフトウェア系の勉強会を調べる方法 @札幌

しばしばソフトウェアに関する勉強会の探し方について聞かれることがあったので、「札幌で」開かれる勉強会について調べる方法をまとめておきました。個々の勉強会の内容についてはふれません。

イベント検索サイト

イベントサイトを横断検索してくれる下記のサービスを使えば、札幌のIT系イベントはほぼ見つけられます。
こういったサービスは数も多く、またサービスが終了することもしばしばあるので、頻繁に参加する勉強会は別な方法で補足できるようにしておいた方がよいです。

北海道IT勉強会カレンダ

IT勉強会カレンダーはユーザからのイベント登録依頼をもとに、有志によって趣味で更新されているそうです。
知名度があり、人気のあるIT系イベントはだいたい登録されている印象があります。

その他

イベント登録サイトを使用しないタイプの勉強会、またはDoorkeeperを使用している勉強会、なぜか検索に引っかからない勉強会(?)は、上記のサービスでは補足しづらいので別な手段でイベント情報を取得します。

上流工程勉強会

@zenzengood さんをフォローしましょう
https://groups.google.com/forum/#!forum/up_process に参加しましょう。

Agile札幌

このページでメンバー登録しましょう。
http://agilesapporo.doorkeeper.jp/

CLR/H

@clrh_bot さんをフォローしましょう。
http://clr-h.jp/ ページ内のイベントRSSを登録しましょう。

えにしテックカフェ

@enishitech さんをフォローしましょう。
http://enishi-tech.doorkeeper.jp/ でメンバー登録しましょう。

せきゅぽろ

@i9R4un1 さんをフォローしましょう。
http://secpolo.techtalk.jp/ 内のRSSをリーダーに登録しましょう。

TEF北海道テスト勉強会

@MAQ69 さんをフォローしましょう。
http://ameblo.jp/tef-do/RSS登録しておきましょう。


探しづらい勉強会がまだいくつかあった気がしますが、思い出したら追記します。


(2013/04/19 追記)

Ruby札幌

http://ruby-sapporo.org/RSS登録しましょう。

(2013/04/25 追記)

北海道のPMP および メトリクス分科会

@MAQ69 さんをフォローしましょう。
https://sites.google.com/site/hokkaidonopmp/home に参加しましょう。

アジャイル札幌 勉強会「平鍋さんを囲んで」に参加しました

以前平鍋さんが札幌にこられたときに海外での受託開発の取り組みやリーンの話をされました。
そのときの内容がとても面白かったので、今回も参加することにしました。

イベントの概要はこちら。

内容

平鍋さんは知識経営理論の野中郁次郎先生が発表された

  • 新しい新製品開発方法 The New New Product Development Game
  • 実践知のリーダー INTELLECTUAL MUSCLE
  • SECIモデル

について、ソフトウェア開発を絡めてお話しされました。
特に、平鍋さんが力を入れて説明されていたのは、SECIモデルでした。
これは、「暗黙知形式知の相互変換運動」をモデル化したものです。

きょうの平鍋さんの言葉を引用すると、2つの知は

  • 形式知 (本に書ける汎用的な知識(ex. 料理のレシピ))
  • 暗黙知 (言葉や文章に表せられない知識(ex. 熟練したシェフの技術))

という意味で、

SECIモデルはこれらの知の変換

を説明するものです。
詳しくはアジャイル開発とスクラムを買ってみてください。(わたしはまだ買ってません)

アジャイル開発とスクラム 顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント

アジャイル開発とスクラム 顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント

お話のあとは、その内容について平鍋さんと参加者の質疑応答が行われました。
自分の職場での取り組みについて話されていた内容が興味深かったです。

感想

  • システム開発における暗黙知形式知に比べてどれほど大きいかを意識するきっかけになりました。
  • 暗黙知形式知に変換する取り組みはどの会社でも行われていますが、暗黙知暗黙知として伝える取り組みを意識的に行っている会社は、そういう取り組みをあまり聞かないことから推察するに、多くないのだろうと思います。
  • システム開発における暗黙知を伝える方法について興味を持ちました。
  • アジャイルスクラムの系譜について語る平鍋さんが熱かったです。

最後になりますが、平鍋さん、agile札幌のみなさんありがとうございました。
頂いた福井名物 羽二重餅 家族でおいしくいただきます。