Ignite 2019 動画をたくさん見た感想

Ignite 2019 動画閲覧感想で感想書いた通り、合計40本くらい動画見たので率直な感想を書きます。

同じカテゴリの動画は似たような話題が多い

同じカテゴリの動画を複数チェックし過ぎると効率が悪い。効率だけ考えるとキーとなる動画 + 自分がどうしても気になる動画をチェックすればいいと思います。

効率はいい

動画を1.5倍速、不要な所はスキップしてみる事で、現地参加より効率的に情報を取得で来ていると思いました。

動画でしか得られないマニアックな情報が転がっていることもある

GraphAPIの仕様やテナント間連携など、能動的に取りにいかないと知れない情報がありました。問題は、そういう情報が転がっているセッションを狙って見れるか、ですが、最初にpptスライド確認すればある程度分かるので、動画を見る前にスライド確認すればもっと効率的だったかも。

外れセッションは2割くらい。

既にほかの動画で知っている内容のもの、内容が期待外れだったものは2割。少ない方かな、と思います。

正直しんどい部分もある

現地参加だとテンションも上がりますが、通勤電車や隙間時間に動画を見るのでは中々「勉強」チックな雰囲気が抜けず、つらい部分がありました。

正直、見終わって忘れる動画もある

見てるときはお役立ちと思っても、動画を見終わって3日くらいに感想書こうと思ったら内容が思い出せませんでした。その程度の、自分の引き出しに残らないような動画は見なくてもよいかもしれません。

来年やるとしたら

辛くない程度に、キーとなる動画 + レア情報の動画を絞ってみようかなと思います。

Ignite 2019 動画閲覧感想

昨年末にIgnite 2019 Exchange Online編Ignite 2019 Microsoft Teams編と称して、Ignite 2019の動画感想をUPしたのですが、年末年始にかけて他の動画も見たので感想をUPします。

なお元動画はMyIgnite – Session catalogMicrosoft Ignite – YouTubeにあるので、興味があればそちらをどうぞ。

目次(見た動画一覧)

  • Microsoft Flow(Power Automate)
    • BRK2094 Automating your business processes with Microsoft Flow and Teams Integration
    • THR4001 Automate your tasks with Project, Planner, and Microsoft Flow
    • BRK2276 Authorize and automate Teams guest access with surgical precision (Part 1)
    • BRK2277 Authorize and automate Teams guest access with surgical precision (Part 2)
    • BRK2058 Deploy Office 365 groups at scale to power Microsoft Teams, Outlook, Yammer, and SharePoint
    • THR3149 Automate workflows using Azure Logic Apps and Microsoft Teams
    • BRK3159 Become a Microsoft Flow super hero
  • Office 365 – 全体
    • BRK1017 What do I do next? Managing asks and tasks with Microsoft 365
    • BRK2056 Embrace Office 365 Groups What’s new and what’s next
    • ADM50 Managing across tenant boundaries in Office 365
    • BRK4004 Architecting your intelligent intranet with SharePoint hubs, branding, and site designs
  • Office 365 – Microsoft Teams
    • BRK2090 Will Microsoft Teams take over from email?
    • THR4004 Microsoft Teams Real-world troubleshooting
    • BRK3204 Troubleshooting Microsoft Teams
    • THR2122 Unify Microsoft Teams across tenants to accelerate M&As and cloud consolidations
  • Teams開発・GraphAPI
    • MDEV20 Microsoft Graph a primer for app developers
    • THR4005 Single sign on in Microsoft Teams
    • THR3088 Microsoft Graph Toolkit Two lines of code to get started with Microsoft Graph
    • BRK3067 Enterprise-grade Node.js on Azure
    • BRK4013 Top seven tips to become a Microsoft Graph guru
    • BRK2180 Microsoft Graph
    • BRK3226 Every team, connected Develop Microsoft Teams apps with Microsoft Graph

Microsoft Flow(Power Automate)

BRK2094 Automating your business processes with Microsoft Flow and Teams Integration

Flowを使ってTeamsのチームを作ろうぜ、という初心者向けセッション。さすがに聞き飽きた感があり特に新しい情報は少なかった。唯一の新情報はAdaptive Cardの話。この辺はしっかりと把握していないので、時間があれば勉強します。

THR4001 Automate your tasks with Project, Planner, and Microsoft Flow

ProjectのデータはCDSに保管されるから、Projectのデータが更新された事を、CDSトリガーにしてPower Automateでひっかけられるよ~というセッション。それだけ。レベル400というほどではなかった。Projectのデータが保管されているCDSのDBを、自分のAzure AD IDでひっかけて自分のタスクを取り出し、Teamsに通知するPower Automate。

BRK2276 Authorize and automate Teams guest access with surgical precision (Part 1)

現場の人間はゲストをTeamsに招待したいがIT部門やセキュリティ部門は難色を示す。そこでゲスト承認フロー!…とあとはお約束のFlowで承認ワークフロー作る話。導入は良かったけどな…。

Teams作るのをカスタムコネクタでやってるのは目新しかった

そもそものテナント設定。テナントとしてゲストを有効にしないと、Teams管理画面で有効にしてもゲスト呼べないので注意。

ここらへんも参照

BRK2277 Authorize and automate Teams guest access with surgical precision (Part 2)

BRK2276の続きだから期待したけど、ゲストユーザーに対してゼロトラストモデルを適用するため、Azure AD P1/P2系の機能を使ってみようぜ!って内容で、あまり面白くはなかったです。

BRK2058 Deploy Office 365 groups at scale to power Microsoft Teams, Outlook, Yammer, and SharePoint

Power AppsでOffice 365 Groupsの申請フォームを作って、Power Automateでデプロイする話。申請履歴をSPOに記録してPowerBIで分析できたりする。以上。目新しいことはなし。

THR3149 Automate workflows using Azure Logic Apps and Microsoft Teams

タイトルまんまのセッション。丁寧な説明ではあったが目新しい情報はない。

BRK3159 Become a Microsoft Flow super hero

BRK3152 Energize mission critical enterprise business processes with Microsoft Flow: Patterns, tips and tricksと同じ人の、似たような内容のセッション。相変わらず面白いが、BRK3152と同じような内容もあるかな。

コードと同じくFlowもメンテナンスしたいよね

なので、Flowの最初に変数として改訂履歴をぶっこむ。この発想はなかった。

debugモードとProductionモードを切り替えられるようにしたり(その下に変数が見えているが)このFlowでプレミアムコネクタを使っているか否かを管理したり。

時刻の概念を定義し、使いまわせるように。

Try-Catch構造ももちろん埋め込む。

エラー管理もしたいので…

Try-Catch構造で…

resultからFAILが含まれたものだけをSharePointのリストに投げて管理したり

以上。後半はBRK3152と同じなので、どっち見てもOKです。

Office 365 – 全体

BRK1017 What do I do next? Managing asks and tasks with Microsoft 365

みんな大好きタスク管理でProductivity。タスク管理にはみんな悩んでおり、さまざまなツールを導入している。M365にもたくさんのタスクツールがあるので関係性を理解する。

Teamsのタスクタブ。これ期待ですね。

OWAのメールを右ペインのTodoにD&Dすることでタスク化出来たり、Todoを予定表にD&Dして予定をブロック出来たり。

Office ドキュメントのコメントメンションでTodoに追加できる。

20分程度でセッションは終わって後半はパネルディスカッションでした。

私がMicrosoft To doをちゃんと使っていなかったのでいろいろ発見があったセッションでした。OWAを使えばシームレスにTo doとやり取りできるのと、Microsoft To do自体にPlannerのタスクを表示できる事は今後も生かせそう。特にTeamsにタスクタブが追加されるときに、各To doの関係性を聞かれそうなので答えられるようにしないとな。

合わせて、組織でのTo do管理は全員が同じツールを使わなければならないが、Planner/To doがその用途に耐えられるかと、ユーザーに浸透するかは未知数、というか微妙。

BRK2056 Embrace Office 365 Groups What’s new and what’s next

Office 365 Groups使おうぜ!っていうセッションで大したことなかったです。2018年~2019年にかけてのアップデートが紹介されてたが、Teamsを追ってる人なら全部知ってることだったからなぁ。お役立ちスライドはこれくらいですかね。

ADM50 Managing across tenant boundaries in Office 365

Office 365 テナント間マイグレーションの話。知らない間に進歩していました。

Active Directory Synchronization Serviceを使ってアカウント同期。この機能、ぐぐっても出てこず、MS営業に問い合わせて調整の上使える機能の様子。

Exhcnage Online -> Exchange Onlineのテナント間マイグレーションも2020 1Hにパブリックプレビュー。テナント間移行の考え方をまとめたポスターもあるよ

ロードマップとして、同一メールドメインを複数テナントで使えるように!

BRK4004 Architecting your intelligent intranet with SharePoint hubs, branding, and site designs

賑やかなSharePointおばちゃん(失礼)がギャーギャー騒ぎながらSharePointポータルを作るセッション。今回見たセッションの中でスピーカーと観客のテンションに一番差があったセッションかもしれん…。細かいSharePointの機能は(私が不勉強で)分かりませんでしたが、どうやら従来のモダンサイトにはなかった機能をくしして綺麗でガバナンスの聞いたサイトを作っているようです。やってる人が無茶苦茶楽しそうなので、自分もモダンサイトをいじってみたくなります。

こんなサイト作るよ。

ハブサイト、チームサイト、コミュニケーションサイト。ここら辺は私も覚えてきた。

MSの中のサイト紹介。これは貴重かも!

ここら辺になってくるともう分らん。

Office 365 – Microsoft Teams

BRK2090 Will Microsoft Teams take over from email?

Teamsはemailを置き換えるのか!?というテーマでTeamsおじいちゃん再び。

わしゃ~1997年からOutlook使っとるんじゃ、と若者をマウント。

Teamsのコミュニケーションを全てメールで行っていたら大変です。その点、Teamsは素晴らしい。

ただし、Teamsの良くない面もある。

集中力が取られ、時間の無駄になる。

Emailの利点。非同期コミュニケーションである事は利点。

従来からの問題ももちろんある。

こういう時に使いましょう。

TeamsはEmailを置き換えません。

THR4004 Microsoft Teams Real-world troubleshooting

Teamsのトラシューについての話。レベル400だが割と基本。

  • トラシューの基本
  • 別ユーザー、別端末、別アプリで切り分け
  • 端末で取得できるアプリの種類
  • 端末で取得できるネットワークの情報
  • FidderとかブラウザのF12とか
  • テナント側で取れるネットワークの情報

を見ましょう、という話。後半はDirect Routingの話なのでちょっと分からなかった。押さえておくのはKnown issues for Microsoft Teams – Microsoft Teams | Microsoft Docsの存在かな…。といっても、MSからもこのページが重要というメッセージが発信されていないように思えるので、忘れてもいいかも。もうちょっと詳しく知りたい場合はBRK3204のセッションを参照。

BRK3204 Troubleshooting Microsoft Teams

THR4004の拡張版。ゲストアクセス関連の部分だけチェック。

  • Microsoft Teams管理センターのゲスト招待有効無効のオプション
  • Office 365 管理センターよりアクセスできる、Office 365 Groupのオーナー権限のユーザーがゲスト招待有効無効のオプション
  • Azure ADのゲスト招待可否設定
  • SharePoint 管理センターの外部アクセス有効無効のオプション

の4つをチェック。詳しくはこちらも参照

Manage guest access in Office 365 Groups | Microsoft Docs

トラブル時は監査ログを見て原因を確認する、あるいはそのうちリリースが予定されているGuest Access Diagnosticsを見て確認する

THR2122 Unify Microsoft Teams across tenants to accelerate M&As and cloud consolidations

Office 365 移行ツールであるBinary Treeの人のセッション。

  • 企業買収のビジネスシナリオは年々増えている
  • Teamsを利用率も年々増えている
  • Teamsのアーキテクチャは複雑で移行元データの種別もさまざま
  • Teams統合の際に気を付ける事は以下。

Binary Treeの"Power365"ならそれが考慮されているよ

という宣伝ぽいセッションでした。O365テナント間移行ツールは他社も出しているので、いざ使うとなればPower365だけではなく他の製品とも比較したい所。

Teams開発・GraphAPI

MDEV20 Microsoft Graph a primer for app developers

ほぼ基本のGraphの話。Graph explorerの新GUIでは、アダプティブカードのサンプルとか他言語のサンプルが出るので使ってね。言語毎のTier1、Tier2の話が興味深かったです。PHP,Python,rubyがTier2だが、Javascript(nodejs)がTier1ってことで、この中だとJS勉強するのがいいっぽいな(私はC#出来ないので)。JSがTier1なのはTypeScriptをMSが作ってるのも大きいと思いまs。

THR4005 Single sign on in Microsoft Teams

Teamsタブアプリをシングルサインオンで使う、という話。AAD認証するTeamsアプリなら、ポータルのアプリ登録を工夫する事でSSOでき、3rdパーティーのアプリならManifest schemaを利用する事で認証情報を持たせられる?ということ?自信なし。AAD認証するアプリは、TeamsアプリのAppStudioから認証情報設定しているデモも見えました。

THR3088 Microsoft Graph Toolkit Two lines of code to get started with Microsoft Graph

GraphAPIを気軽に画面に組み込めるようなツールキットを出したぜ!という話。

ここらへんは最近youtubeにUPされた動画の方が詳しく説明されています。

BRK3067 Enterprise-grade Node.js on Azure

Azure AppでNode.jsアプリを作る話かな…と思ったら、Azure Appはマイクロサービスで最適に使えるサービスでスケールアップやサーバーレスにも最適だぜ!みたいな概念的な話でした。Azure使おうぜ!って目的のセッションでコード的な話がなくてちょっと残念。

BRK4013 Top seven tips to become a Microsoft Graph guru

これは面白かったです!Ignite 2018のGraph APIセッションで不評だった所もちゃんとカバーしていてアンサー的な感じが良かったです。

ユーザー認証とアプリケーション認証を正しく使い分けましょう。

SDK使えば認証もスロットリングも管理できるからSDK推奨します。

バッチ処理すれば早い。これ、Ignite2018と同じスライドです。

SDKのHandle status codeで戻り値が分かる

スロットリングがかかるポイントは多層となるため、各アプリケーション毎に確認が必要。非公開のものもあるが、Graph API Gatewayが10秒毎に5000リクエストと判別しただけでも目安になる。

という感じで、まだまだ不満はあるけど着実に進化している印象を受けました。

BRK2180 Microsoft Graph

Graph系セッションの総まとめ的な感じなので、目新しい情報は少なめでした。気になったのはMicrosoft Graph Connector。

GraphAPIからMicrosoft Searchを叩いて

Microsoft Searchの検索クエリ的なところにアタッチ

情報を取得できる様子。

夢は広がるが、Microsoft Searchも使いこなしてないのに、GraphAPIまで使いこなすことが出来るのか…(業務設計的な意味で)

あとはMicrosoft Graph Data Connectという、GraphのデータをAzureにダイレクトで放り込める仕組み。

確かこの制御項目がO365の管理画面にあったような…。いったんGraphAPIで情報を抜いてAzureにぶち込むのは誰でもできるので、よりO365⇔Azure間で安定性の高いデータのやり取りをするための仕組みなんですかね?

BRK3226 Every team, connected Develop Microsoft Teams apps with Microsoft Graph

ユーザー自身の所属している特定のグループ限定で、アプリケーションに権限を付与できるResource-Specific Consent(RSC)の話。Teamsアプリの開発に大きな英起用がありそうなので重点的にチェック。

現状、アプリケーション権限を有効にすると、Read and write all groups権限を与えてしまい、情報ポリシー的によろしくない。

ほんとはこんな感じで権限絞りたい。

それを実現するのがResource-Specific Consent。

チームのオーナーがアプリケーションのPrivacy and permissionを確認し、アプリをインストールする

既定ではこの操作は出来ないので、以下の管理者ポータルより設定を有効にする。限定したセキュリティグループのユーザーのみに、許可することもできる。

https://portal.azure.com/?feature.groupspecificconsent=true#blade/Microsoft_AAD_IAM/StartboardApplicationsMenuBlade/UserSettings/menuId/

デモ。RSCを使用せずに作ったアプリは管理者同意が求められるが、

RSCを使用したアプリはチームオーナー権限だけで追加が出来て管理者同意も表示されない。

ロードマップは以下

MCP MS-500,MS-100,MS-101を受験して合格しました。

表題の通り、3つのMCP試験を受けて合格しました。

動機

MCP合格無双プレイしたかったから。職場の若者がMCP受験のためにせっせと勉強していると知り、

  • この俺様ならMCP試験なんて寝てても受かるわ
  • なんつっても本場アメリカのMicrosoft社のイベントでMSのエンジニアとディスカッションしてるんやで

と言ってしまったので、受験する流れになりました。巨大すぎるフラグです…。

試験選定の理由

どうやらM365系最高峰の認定資格が以下なので、必要な資格を取る事にしました。MS-100,MS-101は必須で、その他にもう1つ or 2つ必要とのことだったので、1つだけでよいMS-500を受ける事にしました。結果的にこの3つは関連していたので効率が良かったです。

Microsoft 365 Certified: Enterprise Administrator Expert – Learn | Microsoft Docs

受験順番

受験日の関係で、MS-500 → MS-101 → MS-100と受験しました。が、今となってはMS-100 → MS-101 → MS-500の順に取るほうがよいと思います。理由はMS-100が一番簡単で広範囲の知識が問われ、MS-500が狭い範囲の知識を問われるから。これから受験する人は考慮してください。

私のキャリア

オンプレミスExchange Serverからキャリアをスタートして、Microsoft 365歴は5年ほど。Exchange Onlineを中心に、Azure ADの設計、Azure AD Connectの設計などMicrosoft 365の中でも"基盤"と言われる技術を中心に案件多数、EM+S E3の案件を数個こなして、現在は現場を退いて1年ほど。

MS-500

めっちゃギリギリ合格でした。マイクロソフト社主催の対策講座を1回受けて余裕っしょ、で行ったら死にかけた。よく考えたら、私はEM+S E5の案件はやったことがなく、セミナーなどで概要を聞くだけ。何ができるかはだいたい把握していましたが、試験では細かい知識が問われ、その正答率が悪かったと思います。その代わり、案件で取り組んできたExchange Onlineや認証、DLP、保持タグ系の問題は正解出来ました。

また、マイクロソフト社主催の対策講座の前にM365 E5テナントの試用版を契約し、対策講座を聞きながら触っていたのも良かったかもしれません。受け身で聞くのと、自分で設定しながら聞くのは全然違いますので…。

MS-101

これも対策講座を受け、MS-500の反省を生かしてめちゃくちゃ勉強したところ、高得点で合格することが出来ました。とはいえ、試験の難易度はMS-500より高いと思います。非常に広範囲から、またあまり案件では触らないM365 E5や、Windows デバイスの管理などが出題されるので、勉強しなければいけない範囲が広いです。

あと、Microsoft ビジネス向けストアに関しての問題など、訳のわからん暗記ゲーな問題が多いのも特徴でした。対策講座で例問を提示してくれたからよかったものの、知らずに受験したら絶対に合格しないでしょう。

MS-100

一番簡単でした。対策講座は受けに行ったが内容的に簡単で合格できると思い途中退室。予想通り、一番勉強時間なく合格できました。私がExchangeオンプレエンジニアでさまざまなメールシステムからExchange Onlineへの移行を手掛けていたことと、Azure AD Connectの構築も多数こなしており、十分な前提知識があったからと思われますが、そういうエンジニアは多いと思うし、一番とっつきやすい試験じゃないかな。

注意点として、今となってはAzure AD Connectによるパスワードハッシュ同期+S-SSOが鉄板構成なのですが、試験の中でAD FSについてやパスワードハッシュ同期しないパススルー認証方式なども聞かれるので抑えておく。また、導入案件ではあまり考慮されないOffice 365のさまざまな管理者ロールについても問われるのでこちらも抑える。

まぁそこらへんさぼってても他が簡単なので合格できると思います。

感想

認証認可・セキュリティ&コンプライアンスが重視されるので、Azure AD認証、Exchange Onlineでの監査対応をやっていた経験が生きました。ユーザーの業務を軸に製品を設計するSharePoint エンジニア、Teamsエンジニアの人は正直不利だと思います。他のメールシステムからExchange Onlineへの移行とか興味ないですよね…。

案件をやらずとも対策講座の内容をしっかり勉強すれば合格可能ですが、なじみのある技術かどうかで勉強のスムーズさが違うので、出来れば案件か、そうでなくても自分でいろいろ触って、自分の口でその機能を説明できる状態にしてから対策講座を受験するのが良いかと思います。

あと勉強する中でdocsを参照することが多かったのですが、非常に情報がまとまっており知っているつもりの機能でも読むと新しい発見があったので面白かったです。

よこしまな理由から受験を決めましたが、結果的には知識がアップデート出来て良かったです。

その他試験の注意点

  • 英語でしか解けない問題がある。具体的には、日本語で表示されるが必要な情報が抜けており正解が選択できない。日本語では正解が選べない場合、下部のボタンで英語に切り替えることは可能である。
  • 今後、ラボ問題が追加される予定。ラボ問題が出ると試験合格の難易度が一気に上がるので、その前に受けるべし。できれば年内。最悪でも2020年1月中。

後日談

合格するとMSからメールが来ました。ぽちぽちクリックするとcclaimってサイトからバッチを発行されました。これは何の意味があるのか…。

どうやらこの資格の関連職業は年収一千万のポジションだそうです。ほんまかいな。

Ignite 2019 Microsoft Teams編

11月に開催されたIgniteの動画をせこせこ見ています。前回、Exchange Online編を投稿し、今回はMicrosoft Teams編。

BRK3142 Things you never knew about Microsoft Teams that might be important some day

これはめちゃくちゃ面白かった!Teamsおじさんみたいな人(※)がTeamsの気に入らない事に物申す!ってセッションで、とにかく歯に衣着せぬ物言い。

Teamsおじさん。

一般チャネルでクソみたいな会話をするのはやめろ。そんな会話は無視だ。

件名付けろ。基本だ。

チャット使うのはよい。チームを作る前のアイディア出しには必要だ。

俺が一番Teamsでクソだと思っているのは、スペルチェックが機能しない事だ。

サフィックスをどうするか。これは大きな問題。

まさかPSTバックアップしてTeamsをバックアップしてるつもりになってるマヌケなITProはいないよな?

Teamsの仕組み上、DLPでブロックされるメッセージも数秒は表示されてしまう。なぁにそんな数秒で俺のクレジットカード番号は覚えられやしないさ。

当然だがInformation Barrierは完璧じゃない。お前らも期待してないだろ?

組織全体のTeamsにユーザーが追加されない事もあるから、手動で仲間に入れてやってくれよ!

以上。体系的な知識は全く手に入れられないけど、あるある~なマニアックな悩みを共有できて面白かったです。

※ 後で調べたら結構有名なITProの人だった…。しかも年齢はたぶん60とか70。この年でIgnite登壇してTeamsに文句バリバリ言ってるの、かっこよすぎません?

BRK2243 Drive digital transformation using apps in Microsoft Teams

正直つまらんかった。もっとみんなタブアプリ使おうぜ!というだけのセッション。

SmartSheetというSaaSの責任者がコラボして登壇。

どんな製品か雰囲気しかわからなかったけど、個人契約の場合、1,500円/月くらいするらしい。そんなんでも買う人いるのか。

BRK2381 Security and compliance in Microsoft Teams

前半は条件付きアクセスなど基本的な話。中盤では保持ポリシーやDLP。Infomation Barrierも紹介。機能的にも使いどころが難しいし、E5ライセンス必要だから、全然流行ってませんが…。

30分過ぎに説明されたこれだけよくわからなかった。

調べてみるとこれですね。

Microsoft 365 の通信コンプライアンス (プレビュー) | Microsoft Docs

  • 不快な言葉と嫌がらせ対策: このテンプレートを使用すると、組み込みの分類子を使用するポリシーをすばやく作成し、不適切または不快感を与える可能性があるコンテンツを自動的に検出することができます。
  • 機密情報: このテンプレートを使用して、定義された機密情報の種類またはキーワードを含む通信をスキャンするためのポリシーを作成し、重要なデータがアクセスを必要としない人と共有されないようにします。
  • コンプライアンス: このテンプレートを使用して、規制基準に関連付けられている標準の財務条件への参照のための通信をスキャンするためのポリシーを作成します。
  • カスタムポリシー: このテンプレートを使用して、組織内の監督に対して確認する特定の通信チャネル、個々の検出条件、およびコンテンツの量を構成します。

DLPと似たような機能みたいです。例えばアホとかバカとかチャットで発言しがちな社員を探したりできるようです。これを監査する情シスの人間もたまったもんじゃないな。これもE5が必要だし、アホとかバカとか発言している社員を見つけてどうするの?って話もあるし、中々利用開始しづらい。

BRK3225 Develop great workspaces with the Microsoft Teams platform What’s new and what’s coming

これは面白かったです!

App追加時の画面がリッチに。そのうちレビューとかついてiOSのAppストアみたいになるのでしょうか?

タブアプリを開くときにSSOが実現。これまで認証かかってめちゃくちゃかっこ悪かったのでこれはGJ。

メッセージからアプリを呼び出せるように。Todoアプリと連携してくれると便利そう。

メッセージアクション。Todoアプリと(以下略)

PowerAppsがTeamsアプリに。

個人開発者のアプリと区別するために「enterprise app store」という定義が新たに登場予定。

さらに「MSが認定したアプリケーション」という定義も新たに設置。ここら辺は以下を参照。

Microsoft 365 App Certification Program – Microsoft 365 App Certification | Microsoft Docs

TeamsAppで一攫千金狙う場合は必聴のセッションだと思いました。開発ドキュメントは以下。

Microsoft Teams developer platform – Teams | Microsoft Docs

BRK3059 eDiscovery for Microsoft Teams, Yammer, and beyond

Teamsの話と見せかけて、Advanced eDiscovery機能の話。これはE5ライセンスで使えます。「データを保持するのはいいけど、検出するときにそのデータの扱いに困るっしょ?Advanced eDiscoveryならデータの収集から提出まで一気通貫にできるぜ!」とのこと。今回のアップデートでYammerやTeamsの検索にも対応し(元から対応していた?)、検索時に会話を流れで表示できるぜ、とのこと。

ただこの機能が有用化というと…。前提知識として、コンテンツ保持は"何かあった時に取り出せるよう、全てを保管する"のが原則。一方、O365のeDiscovery機能は"eDiscoveryを設定したその時以降のコンテンツを保管する"機能であり、それより前にユーザーが削除したコンテンツは検索できない。なので、案件では設定した年数だけコンテンツを必ず保持する"保持ポリシー"を利用する事がほとんどです。

ただ、今回のIgniteのコンプライアンス系セッションを見ていても、Microsoft社としては"保持ポリシー"をあまり推してないように思えます。想像ですが、クラウド側のストレージ容量を逼迫するため大々的にアピールしたくないのでは?その証拠として、このセッションでも機能の説明に加えて、実際の弁護士?かな?を登壇させて"Advanced eDiscoveryを使っておけば、法務要件はクリアできる"とアピールしていました。この人→MyIgnite – Charisma Starr

現場の情報システム部としては「法務部に怒られないこと」が第一のゴールなので、それさえ実現できるのなら”保持ポリシー"をやめたいと思いますが…。これは自社の法務部と相談って感じですかね。日本の環境では"何かあった時に取り出せるよう、全てを保管する"がスタンダートなので、eDiscoveryだけでOK、とはならないと思います。ただ「保持だけして取り出し方は後で考える」で導入している案件は、この機会に"情報の取り出し方"も考えるといいかなと思いました。

BRK3215 Microsoft Teams architecture update

以下のようなアーキテクチャの話を延々とするセッションで、あまり面白くはなかったです。

面白いといえば面白いけど、それを受けてこちらがどうこうできるものではないし、どちらかというとそれによる問題点などを語ってくれた方が良かったです。実際、セッション終わってからの質問で痛い所をつかれて答えられなかったりしてたし…。

BRK3216 Optimizing the Microsoft Teams experience with data and analytics

Teams利用レポートの活用方法について。前半は音声系。Teams会議の参加者毎に通話品質をレポーティングしてくれて今後の改善に役立てる事が出来る。

後半はその他の利用状況。O365管理画面から見れるExOLやSPOの利用状況レポートとは別に、Teams管理画面でチームの利用状況などがレポートされる。また、GraphAPIを使ってレポートを取る事も出来る。ここらへんは案件でがっつりやったので良く知っている話で、目新しいことはありませんでした。

GraphAPIを使えば、GUIだと最短7日単位でしかレポートが取れないのが1日単位で取れたりするので、詳細なレポートを取りたい場合はAPIがお勧めです。

GraphAPI PowerShell SDKを使う

Office 365 Advent Calendar 2019 – Adventarの11日目です。

「GraphAPIを勉強したいけどC#分からないし、Azure ADアプリ登録も分からない。PowerShellで気軽に使えればいいのに…」という方にぴったりな、GraphAPI SDK PowerShellがリリースされました。これ使えば、AzureADアプリ登録不要、たった3行のコードでGraphAPIを使いだせます。

準備物

  • Office 365 の管理者アカウント
  • 時間(SDKのインストールに20分ほどかかるため。その間は待ち)

手順

1. SDKのダウンロードとインストール

Register-PSRepository -Name GraphPowerShell -SourceLocation https://graphpowershellrepository.azurewebsites.net/nuget 
Install-module Microsoft.Graph.Beta -Repository GraphPowerShell

2. 接続

Connect-Graph -Scopes "User.Read","User.ReadWrite.All","Mail.ReadWrite","Directory.ReadWrite.All","Chat.ReadWrite", "People.Read","Group.Read.All", "Directory.AccessAsUser.All", "Tasks.ReadWrite","Sites.Manage.All"

表示されたコードを記録し、ブラウザで https://microsoft.com/devicelogin にアクセス。コードを入力。

3. APIの利用

例:受信メールを一覧で表示

Get-User  # ユーザーIDを表示
$UserId = "xxx"
Get-UserMessage -UserId $UserId -Filter "contains(subject,'Marketing')" | select sentDateTime, subject 

例:Teamsチャットメッセージを一覧表示

Get-Chat # chatidを特定
$chatId = "xxx"
Get-ChatMessage -chatId $chatId  

「3. APIの利用」で必要な権限を「2. 接続」で指定しないといけないが、それ以外は使い慣れたPowerShellで操作できるので、GraphExplorerから一歩進んだGraphAPIの勉強にはぴったりだと思いました。

参考情報

Ignite 2019 Exchange Online編

11月に開催されたIgniteの動画をせこせこ見ています。全部見終わった後に感想を書こうかと思いましたが、見たい動画が50本くらいあっていつ終わるか分からないので、切りのいいところで感想をリリースしていきます。

てことでExchange Online編。

BRK3312 Office 365 email enhancements that makes your organization smart, safe, and secure

これはプレゼンが面白かったのでお勧めです!特に17:11~ 観客煽って歌わせてるのが良かったですw 内容はExchange Onlineの新機能。

"+"アドレスによる、受信アドレス追加

Gmailでは10年以上前に実装されている機能で、myaddress+[任意の文字列]@gmail.comとかで受信アドレスを無限に作成できる機能。当時のテクとしては、myaddress+rakuten@gmail.comで楽天からのメールを全部フィルタする、って技がありました。

Gmailエイリアスの活用 – 受信トレイから楽天等の業者メルマガを自動で移動させる方法 | 風標 (new!)

セカンダリアドレスでのメール送信

その名の通りですが、メールシステム構築時の設計要素が増える。例えば、3rdパーティー製のMTAにメールを投げていてMTAがメールアドレス課金の場合、セカンダリアドレスがでユーザーがメールを送信する事で、課金が発生してしまう。Exchange Onlineは既定でonmicrosoft.comのアドレスをセカンダリに持つため、onmicrosoft.comのアドレスを使ってユーザーが外部にメールを送信できてしまう。メールでの監査検索などでひっかける時の条件が増えそうで心配です。つーか、3rdパーティー製MTGでメールアーカイブしてたら、1人のユーザーのメールを抽出するのにプロキシアドレス分検索しないといけないから辛い。

この仕様が防げないなら、プライマリアドレス以外では外部にメールが送信できないようなトランスポートルールを作成するしかないのかな。

Outlook メッセージの取り消し

OutlookにRecall機能というのがありますが、相手がRecallメッセージをクリックしないと取り消せなかった(なので、相手はメッセージを必ず読むことができた)のが、相手がO365を利用している場合、サーバー内部で取り消し動作が入るので、取り消し処理の強制力が強力になった。また、実際に取り消しできたかレポートも出る。

相手がO365外の場合に機能しないとはいえ、これはうれしい変更。

Replay-All Stormの抑制

1時間以内に5000以上のアドレスに対するReply-Allのメッセージが30以上発生した時に、一時的にメール送信が禁止される機能。ほぼ発生しなさそうですが。

新しいExchange Online 管理センターでメールフローの確認がよりやりやすくなる

GUIが変わっただけっぽいが、HistoricalSearchやGet-MessageTraceなど、複数のコマンドを使い分けで取得していたのがGUIから指定できるぽいのはいいかも。

よくわかる Exchange Online のメッセージ追跡 ~ Part 1 取得編 ~ – Exchange ブログ JAPAN

現状、あて先の最大数は500だが、1~1000アドレスとなる

1000になってうれしい!と思いきや、実際の案件だと「3rdパーティーのアーカイブの処理能力を超えるから、少ない宛先にしか送れないようにしたい」「外部向けのメールの宛先数は絞りたい」とか言われるので、小さくできるのがうれしい機能。

SMTP AUTH Client Submittionが既定で無効になる

サブミッションポート(587番ポート)の事。OutlookからはMAPIで接続しているからいいとして、Exchange Onlineにメールボックスを作って、通常のSMTPクライアントでメール送信している場合はNGになる。現状のオブジェクトはそのままの設定で、新規のオブジェクトも設定をONにすれば使えるようになる。

BRK2001 What’s amazing and new in calendaring in Outlook

Outlookカレンダーチームによるセッション。去年は2人ペアだったが今年は1人が妊娠→出産中なので1人でやるぜいぇーい!と元気にスタート。(このチームは楽しい雰囲気で好きです)

モバイルをデスクトップと同等にって事で、Outlook for iOSで以下が出来るようになる。中にはデスクトップ版でも使わないようなマニアック機能がありますが。

  • 会議辞退時の新会議時間提案
  • 会議辞退時にコメント記載
  • 予定表の分類定義時の色追加
  • 週view
  • グループカレンダーの表示
  • 予定の検索

その他、既にリリース済みですが、大きなアップデートとしては共有メールボックスの追加が可能になった事。

予定調整がさらにしやすく。Web限定ですが、部屋名をインクリメンタルっぽく入力するだけで、空いている部屋を提示してくれる。単一予定だと既に実装済みだが、これを繰り返しの予定もサポート。

会議室にメタデータを設定する事で、会議室を探すときにより詳細な情報を閲覧できる。

カレンダー共有の新ロジックがベータテスト中。同期が早くなるのとMAPIやRESTでいじりやすくなるのがメリットだが現時点ではバグあり。

会議送付時に参加者自身が"場所"やTeamsMTGを追加できるようにしたこと。参加者が予定を変更する権限は今までなかったので大きな変化。

SIer的には大きく話その1。個人アカウントの予定表データをOffice 365にSyncすることができる。便利な一方、嫌がるお客さんから禁止してくれとか言われそう。

SIer的に大きい話その2。Office 365 同士なら、管理画面で設定しなくても予定表の共有ができる。これも便利な一方、防ぐ方法は聞かれそう。空き時間の共有だけだからいいと思うんですけどね。

去年予告されて期待された2つの機能「MTGを辞退しつつ、自分の予定表に残す」「MTGの主催者を別の人に交代する」はリリース予定未定に。

あとはバグフィックス。タイムゾーン跨ぎの終日予定が、ちゃんと終日で表示されるようになります。

BRK2002 There is a new Outlook on the web See what’s new, fresh, and exciting

BRK2001に比べれば大したことないセッション。まず、全般的にGmailで先行している機能が付きます。返信文章をサジェストしてくれるとか。

もらったメールの表を編集する事で相手にも反映される機能や…

Teamsからのメッセージに対して、OWA画面から返信できる機能。

それくらいかな。

BRK3013 Modern Exchange IT admin experiences

新しいExchange Onlineコマンドレット。バックエンドの構成を見直したおかげで、従来のコマンドレットに比べて動作が4倍~8倍速くなり、安定する。大量の夜間バッチ処理などで5,000件問題に悩まされていたのも解消される可能性があると思いました。

新しい管理センターの話。基本的には"使いやすくなるよ"なのですが、G Suiteからの移行時にメールだけじゃなく予定表や連絡先も取り込めるようになったのはポイント。

移行ソリューションが死んじゃいますな。

BRK3144 The MVP guide to Office 365 security, Exchange Online edition

全部知ってる内容で大したことなかったです。前半のEOPの設定でマニアックな話をしていますが、実際には効果が未知数なことが多いし静的に定義してもスパムには効果がないので、EOPにお任せが一番いいと僕は思ってます。

中盤のATPあたりは、E3で使える機能とE5で使える機能が混ざってますが、知らないなら見ると勉強になる。特に新しくATPに追加されたSpoofing Intelligenceはメールの専門家ならお客さんに説明可能であるべし。

後半のSPF,DKIM,DMARCは知らない人は見ると勉強になるけど…メールの専門家じゃなきゃ不要です。

全体的にdocs以上の情報がないセッションでした。

BRK3248 Securing Exchange Online from modern threats

サイバーキルチェーンの紹介と、各リスクに対する対策を説明したセッション。

まずは見慣れたキルチェーンの図。

残念ながら、社内のインサイダー(悪者)を見抜くのは難しい。

防ぐには、技術的な観点よりは、インサイダーの振る舞いを予測し、エミュレートし、脆弱でない事・不正なログがない事などを確認。ビジネスプロセスの見直しなどが有効。そもそも、インサイダーが発生する土壌となるような社内の透明性や評価制度などが問題である。

その他、クラウド事業者自身やさまざまな攻撃者に対する対応を検討するようなセッションでした。最後にAzure Sentinelの紹介はあったものの、メールというよりはセキュリティ系のセッションで、セキュリティを語る上でのベースとなる知識をインプットできるセッションです。

BRK3311 Outlook mobile The gold standard for secure communications in the enterprise

Outlook mobileのセッションと見せかけて、実質EM+Sのセッション。条件付きアクセスでApp protection policyってのが登場。こいつですね。

Azure Active Directory の条件付きアクセスを使用してクラウド アプリへのアクセスにアプリ保護ポリシーを要求する | Microsoft Docs

しかし、既存のApp based policyとの違いが良くわからん…。

Azure Active Directory の条件付きアクセスを使用してクラウド アプリへのアクセスに承認されたクライアント アプリを要求する方法 | Microsoft Docs

ここらへん、ミスって設定するとTeamsからのアクセスがブロックされたりするから設計難しく、端末が準拠済みだったらOKとする案件が多かった気がするけど最近は違うのかな。そろそろ差分の知識だけで生きてくのがつらくなってきました。

その他トピックは

  • ロックスクリーンに通知する内容を制限できるポリシーが作成できる
    • Outlook カレンダーの通知で予定の内容がバレてしまうのを防げる
  • Outlook for MobileでAIPラベルが付与できるようになる
  • Outlook for MobileでS/MIMEメッセージが付与できるようになる
  • Outlook for Mobileから、スパム、マルウェア報告が出来るようになる

Intuneチームが頑張ってるのは分かるけど、ロックスクリーン通知を防ぎたい顧客はいるのか?まぁどちらかというと防ぎたいだろうけど…。SIer的には顧客からカネが出づらい機能が増えるのは複雑な心境ですな。「ロックスクリーン経由で情報が漏洩した」って事例がめちゃくちゃ出てくれると助かりますw AIPとかS/MIMEは会場の反応も微妙でした。

プロダクトマネージャーカンファレンス2019で経た学びと思考の整理 #pmconfjp

表題のイベントに行ってきました。

プロダクトマネージャーカンファレンス 2019

「プロダクトマネージャー」とは、サービス型プロダクトの責任を一手に引き受けるロールです。サービスの持続的な成長・顧客への価値提供・売上向上…などを考え続ける、昨今のSaaS型ビジネスの台頭により注目され始めてきたロールかな、と思います。私がこのイベントを知ったのはfukabori.fmの及川さんゲスト会です。ちょうど自身がサービス開発を行っているため、何かヒントが得られればと思い参加しました。

私はとあるSIerでサービス開発の部署に所属する一社員。SI主体のビジネスからサービス開発に舵を切る事になり専門の部署が立ち上がるも、手探り状態で四苦八苦。そんな状態なので、全てのセッションで学びがありました。

ここではその学びを

  1. ロール
  2. スキル・テクニック
  3. マインド
  4. 組織

の4つに分けてまとめていきます。

ロール

「プロダクトマネージャーって何する人?」という問いが、カンファレンス全体のテーマでした。それに対する登壇者のアンサーはさまざまでしたが、会社の規模・プロダクトのフェーズによってPdMに求められる役割は変わるが結論かと思います。これはプレイド 棚橋さんのスライドがよくまとまっており、自社/プロダクトの状態にマッチしたPdMのロールを考えるのが、pmconf参加者の宿題だと思いました。

ヒントとなるのは「企業が求めるプロダクトマネージャーとその人材戦略」でパネラーの皆さんが話されていたこと。

  • 転職者をそのまま採用してもうまくいかない
  • オンボーディングが何より重要

という話があった通り、後述するプロダクト開発のスキル・テクニックを持った前提で、社内文化の理解・社内ステークホルダーとの調整できる能力が重要なのかな、と思いました。確かに、自社内の人材にPdMとしてのスキル・テクニックを身につけさせる方が、社内リソースの理解、競合他社と自社の差別化ポイントの理解、社内の顔の広さなどでPdMの仕事はやりやすいと思います。

もう1つはLINE 三木さんのセッション。

プロダクトのフェーズでPdMは人格を変えないといけない、という話に深く納得。私自身、営業にロードマップをコミットしつつ、技術メンバーに品質アップを求め、二枚舌を使い分けています。うまくバランスとりつつフェーズ毎で重視するポイントを変えるのがPdMのロールだと思いました。

あと、PdMはなんでもやって当然、ということ。私自身、いろんな所から呼び出し食らって「この職業何なの!?!?」と思っていたところに全部やる職業だよ~と言われたので、覚悟を決めて呼ばれる前に自分で動くことにします(白目

スキル・テクニック

PdMに必ず必要な顧客ニーズ理解スキル。これは小城さんのセッションが素晴らしかったです。

顧客ニーズ理解の原理原則はジョブ理論やデザイン思考だと思いますが、これを実際の現場でどう実践すればええねん?というアンサーに応える、体系化されたプロダクト開発の手法と実践がまとめられていました。

類似の話で、freeeの岡田さんによるストーリーテリングの重要性も面白かったです。

出席できませんでしたが、en-japanの岡田さんのセッションも面白そうでした。

#pmconfjp Day 1 登壇資料シェア&フォローアップ|岡田康豊(OkaP) | HR Tech プロダクトマネージャー|note

「ひとまず出来る人をアサインして何とかしてもらう」するだけのPdMは終わり、ウォーターフォールでいうPjM、PL、Memberのようなステージを定義し、PdMを目指してもらうようなキャリアパス定義するのは、大きい組織を動かすには大事だな思いました。先進企業によってPdMに必要なスキルが定義されつつあるのが、ありがたい事です。

少し変わったところだと、会議のテクニックの話を頂いたCOPILOTの定金さん。

初日のTransferWiseさんのセッションで「自律的なチームは、会議などせずとも、プロダクトの計画、ロードマップを策定できる」と言われてましたが、現実的にはそんなチームばかりではない。チームをそこまで引き上げるための手段として会議というツールは有効なのかな、と思いました。

また、PdMにはデータ分析スキルは必須!というセッションに響いている方が多かったです。関連セッションはこちら。

弊社の主な販路が既存顧客と紹介顧客、販売単位も会社なので、集められるデータが少なく私はピンと来ませんでしたが、マーケティング部門はAdobe社のMarketoを利用していろいろやり始めたようなので、必要なスキルとして意識はしようと思いました。

マインド

  • 上層部はチームをチームを信頼し、権限と責任を移譲する。チームは結果でそれに応える。
  • メンバーを信頼し、自律的に動いてもらう
  • 機能を実装するのではなく、顧客に価値を提供するとプロダクトに関わる全員が理解する

最初のキーノートをはじめ、いろいろな場所で同じようなことが語られていました。小手先のテクニックより一番大事な話だと思いますが、文章で伝えるのは難しいのでこのブログでは軽めに紹介して終わり。こういうのを肌で体感出来るのはカンファレンスに参加した人の特権ですね。そして参加しなかったメンバーにどう伝播させるかが難しい。

このために利用されるのにOKRという概念があり、セッションでもたびたび登場していました。こちらはプロノイア・グループ株式会社のピョートルさんの発表より。

こういった記事もあります。

Googleの「最高の上司」がチームの生産性を高めるためにしていること

ただ、旧来型の組織にOKRをいきなり導入するのはハードルが高いので、OKRに飛びつくのではなく、自身/メンバーのマインドセットを育てたり、チームの心理的安全性を高める、といった改善から進めるのがよいかと思います。

組織

サービス開発という概念の薄いSIerで、どうやってサービス開発をやっていくのか?共感したのがKDDI 山田さんのセッション。

権限もリソースも与えられないのにサービス開発しろとか無理だよね、けどPdMの努力で徐々に会社を変えていける…という内容でした。こちら、自分が今会社でやろうとしている事と非常に似ている & 上司がやってくれている事と似ていて勇気づけられました。

弊社の事情

サービス開発をすると勢いづいてはいるが、サブスクリプション型ビジネスに対応した組織体系・評価体系にはなっていない。サービス開発はリリースしてからが本番とも言えるが、SIの考えが強く、リリース後のフェーズを”保守・運用”と位置づけられています

この考えを変えるため、

  • 受託SIとは全く違うロールが必要である
  • そのロールやタスクは○○である

という可視化をし、認知するところから始めてます。今作ってるのはこんな感じの図。

幸い、上層部の協力者とのつながりはあるので、ある程度まとまったら話に行こうと思っています。

また予算策定・人員配置についても、予算と必要なメンバーを計画する権限はあります。人事権はありませんが、上司がメンバーを引っ張ってこれなかったら予算は達成できなくても仕方ない、となっているので、よいかな…と思います。もちろん、アサインついたら実行責任もついてきますが、PdMのあるべき形っぽくていいかな、と思います。

予算もメンバーに可視化され、プロダクト別の採算になっているので、KDDIさんの目指している形と近いのかなと思いました(上司ありがとう)。とにかく、自分の方向性が間違っていない事を確認できたので、非常に良いセッションでした。

宣伝:弊社のプロダクト

これだけだと弊社の欠点だけあげつらった形になるので、プロダクトも少しだけ紹介しておきます。

この2つに私は関わってないので、これらのプロダクトチームは上にあげた課題を解決した上でプロダクト開発しているのかもしれません。

まとめ

登壇している方はサービス開発先駆者の皆様ばかりで、非常に学びになりました。一方、初日のネットワーキングで会話した方々は、私と同じでサービス開発初心者だったり、会社にサービス開発を理解してもらうよう奮闘していたりと、仲間がたくさんいる事が分かり勇気づけられました。

非常に素晴らしいイベントでした。また来年も参加したいです。

関連リンク

第27回 Office 365 勉強会 & Ignite 2019 セッション一覧の集め方

行ってきました。

第27回 Office 365 勉強会 – connpass

今回はIgnite 2019の動画を見よう!という趣旨で、いつもよりは緩くまったりとした雰囲気でした。方法は、sli.doに見たい動画を投稿して票が多かったものからピックアップです。

見た動画と感想は以下

  • Microsoft Ignite
    • キーノート。これはリアルタイムで全部見てたので、特に今更な感想です…。投票数が多かったから選ばれたけど、確かに私も昔はキーノートを動画で見たことはなかったから、みんなで見たのは(未視聴の人がハマるきっかけとしては)よかったのかな。
  • MyIgnite – From a top-down to flat SharePoint in twenty minutes
    • SPOサイトの構成。私はSPOよくわからないですが、サブサイトというのが諸悪の根源(なのか?)であり、もっとフラットにつながり合おうぜ、というセッションでした。既にあるサブサイトはどうするの→弊社、ShareGateのツールで整理できるぜ、とのセッション付き。
  • MyIgnite – Five steps to driving sustainable SharePoint and Office 365 adoption
    • Teams普及させるにはどうしたらええねん!というセッション。日本でよく言われているチャンピオン制度やアワード制度の他に、本当に解決すべき問題に注力する(WIIFM = 私に何のメリットがあるの?を明確にする)、コンテンツより文脈、流れを重要視しろ、というのが書かれていました。チャンピオン制度については私はそれの成功例を体験していないのですが、これだけみんながいいと言っているならいいんでしょうね…。
  • MyIgnite – The master class on building performance apps with Power Apps
    • 吉田氏のセッション。この間、別件で対応していたのであまりヒアリングできず、でした…。

キーノートの所で特に思ったのが、結局黙って2時間見る形になったので、チャットルームとか、動画の上にコメント投稿できるオーバーレイ的なシステムで参加者同士がコミュニケーションできればいいと思いました。あと、参加者が分散するかもしれませんが、2レーンに分けてそれぞれ見たい動画を見れるといいのかな?と思いました。

Ignite 2019 セッション一覧の集め方

Igniteのセッション1600つくらいの情報を全部ダウンロードしてExcelにまとめたよ、という話をtwitterしたら、主催のもくだいさんから話してくれと言われたので話しました。…が、当日は若干社内の取り組みの話を重視してしまい、集めた技術にはタッチできなかったのでここで説明します。

まずコードはこちら。

teraco/Ignite2019SessionListDownload

「スクレイピング」という、Webブラウザを自動操作して情報を取得する技術を使ってます。岡崎市立中央図書館事件 – Wikipediaやコンサートチケットの転売屋も同じ技術を使っていますが、要は検索エンジンのクローラーを自作するようなイメージです。

スクレイピングを行う言語でメジャーなのがpythonですが、私はnodejs(javascript)でやってます。pythonはツールが乱立しているが、nodejsはGoogle謹製のpuppetter一択であり、初心者的には迷いが少なかったこと、本も出ているのが理由です。

Puppeteer入門 スクレイピング+Web操作自動処理プログラミング

私はpowershellで運用スクリプトを書ける程度のレベルですが、この本を読むことで今回の処理が実装できました。

pythonでもnodejsでも、本物のWebブラウザのRPAみたいにポチポチするのではなく、ブラウザドライバー(Webドライバー)というブラウザのプロセスにアタッチして自動的に操作するモジュールに対して命令を実行します。pythonではselenium、nodejsではchrominiumです。ここらへんの定義はややこしいですが、ひとまずブラウザをAPIで操作してるんだな、くらいの理解でいいです。

SeleniumやらWebDriverやら – Qiita

RPAと違った利点は、RPAが「画面」を操作するのに対して、ブラウザドライバーが「ブラウザをAPIで操作」するので、後者の方がWebサイトのデザイン変更に強い。CSSが更新されてデザインが大幅に変わった場合、RPAだと一環の終わりだが、ブラウザドライバーはHTML要素を見るので問題なく操作可能。

なお、新しく発表されたPower AutomationのUI Flowも後者のブラウザドライバータイプなので、普通のRPAより優位性高いです。もちろん、一番変更弾力性が高いのは、WebシステムそのもののAPIを利用することです。

Microsoft Teamsでプライベートチャネルが使えるようになったので気になるところをリストアップした

リファレンスはこちら。

Microsoft Teams のプライベートチャネル | Microsoft Docs

これ読めばだいたいわかる。以下、気になったところ。

  • 「現在、プライベートチャネルでは、コネクタとタブがサポートされています (ストリーム、プランナー、およびフォームは除きます)。」
    • 既存のPlanner、Streamなどをタブに追加するのは問題ない。裏でO365Gが出来ないから、プライベートチャネルのメンバーに紐づいた秘密のPlannerやStreamが出来ないだけ。
    • これの関連と思われるが、チャネルを指定した会議も出来ないようになっている。
  • 「既定では、すべてのチーム所有者またはチームメンバーはプライベートチャネルを作成できます。」
    • 所有者とメンバーを厳密に分けているチームで、メンバーがプライベートチャネル作って所有者を仲間外れに出来るのはまずいので、メンバーはプライベートチャネルを作れないようにするのがよさそうです。
  • 「プライベートチャネルの所有者は、1つ以上のプライベートチャネルの最後の所有者である場合は、Teams クライアントから削除することはできません。」「プライベートチャネルのメンバーは、プライベートチャネルの所有者になるように自動的に昇格されます。」
    • 所有者なしプライベートチャネルは発生しない仕組みとなる
  • 「 (削除されたプライベートチャネルは、削除されてから30日以内に復元できます)。 ~」
    • 通常のチャネルは21日以内なら復元可能だが、プライベートチャネルは裏でSPOサイトコレクションが出来るので30日となっている。ただ、プライベートチャネルを含むチームを削除して復元する場合にちゃんと復元できるのかなど、復元周りの検証はかなり慎重に調べる必要がありそう(バグありそう?)
  • 「 プライベートチャネルで新しい OneNote ノートブックを作成する場合、動作は、プライベートチャネル SharePoint サイト内の他のアイテムへの共有アクセスと同じユーザーと同じであるため、他のユーザーがノートブックにアクセスすることができます。 」
    • こういう事があるのでTeamsを良く分かってないユーザーに使わせない方がいいのでは

裏で出来るSPOサイトコレクション

今までのチャネル = パブリックチャネルのURLは以下。

https://[テナント名].sharepoint.com/sites/[チーム名]/Shared Documents/[チャネル名]

プライベートチャネルは

https://[テナント名].sharepoint.com/sites/[チーム名]-[チャネル名]/Shared Documents/

と新しいサイトコレクションが出来る。しかしこのサイトコレクションはSPO管理者センターに表示されない。以下記事のSharePoint administrationの項目を参照。また自分のテナントでも検証して確認済み。

Everything you need to know about Private Channels in Microsoft Teams

プライベートチャネルを日本語で作成した場合、URLの元となるチャネル名に半角英数字が含まれないため、空になる。技術部forTeamsというチームに「秘密のチャネル」というプライベートチャネルを追加すると、URLは以下。

https://[テナント名].sharepoint.com/sites/forTeams-/

「秘密のチャネルその二」を追加すると以下

https://[テナント名].sharepoint.com/sites/forTeams-2/

プライベートチャネルでまずいと思われる点

O365グループのメリットを享受できない

プライベートチャネルメンバーでグループが作成できないので、プライベートチャネルメンバーだけのPlannerなどが作成できない。

OneNoteなどモノによっては情報漏洩する

注意するしかないが、ついつい忘れそう。

プライベートチャネルのサイト使用量が確認できない

前述の通り、SharePoint Onlineの管理サイトに表示されないので、プライベートチャネルにたくさんファイルが置かれても管理者が検知できない。…これは何らかワークアラウンドがありそうなので、知ってる人教えてください。

結論

会話とファイルアップロードが主体でプライベートチャネルを使うのならよいが、それ以上の事をやりたいならチームを作るべき。また、会話主体ならチャットチャットの方が昔の履歴を見せる見せないがコントロールできる分よい。例えばマネージャーのチャネルで過去に話したメンバーについての評価を、新しくメンバーからマネージャーに昇格した人が見れてしまったりする(これはチームでも同じだが)

そんなわけで、待望の新機能ですがいざ使えるようになってみるといまいちかも。