リーン生産方式の概略
はじめに
この記事では、「リーン生産方式の概略」について書いています。
DevOpsについて勉強をしていますが、「DevOpsはリーン生産方式の原則をITへ応用したもの」という文章を見て、リーン生産方式を今一度学びたいとなったのが記事を書いたきっかけでした。
自分に向けた備忘録でもありますが、「リーン生産方式について概略を知りたい」な人の一助になれば嬉しいです。
リーン生産方式とは何か
- リーン生産方式(LPS: Lean Production System)
- リーン: 「贅肉の取れた」という意味
- 直訳すると「贅肉の取れた(=ムダの無い)生産方式」
- トヨタ自動車の生産方式(TPS)を体系化、一般化したもの
- 米国マサチューセッツ工科大学の研究者P・ウォマックらが著書でTPSを「リーン生産方式」として紹介したのが始まり
リーン生産方式のポイント
- 2本の柱
- 4つの取り組み
おわりに
「リーン生産方式の概略」について解説しました。
DevOpsで紹介されるものを見返すとリーン生産方式に則ってる感じるものもあり、リーン生産方式を学ぶのはDevOpsを学ぶ上で重要であることが分かりました。
さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。
制約理論とは何か、その概要
はじめに
この記事では、「制約理論の概要」について書いています。
DevOpsを学んでいる中で「制約理論」という言葉を見つけ、一体どんな内容なんだろうと思ったので調べその内容を記事にしました。
制約理論とは何か
- TOC(Theory of Constraintsの略)とも呼ばれる
- 業務全体の最適化を行い、生産性を向上するための考え方
- 「ザ・ゴール」の著者であるエリヤフ・ゴールドラット博士が提唱した理論
- 制約理論は、生産性向上だけでなく、経営マネジメントや経営哲学にも利用されている
制約理論のゴール
- スループットの向上
- そのために、スループットを制約しているボトルネックの(継続的)解消
- 制約理論は「どんなシステムも、一部または単一の要素によって、そのパフォーマンスが制限されている」という思想がある
制約理論における改善ステップ
以下に書く一連の改善ステップを繰り返し行っていく
- ボトルネックを見つける
- 「ムリ、ムラ、ムダ」が発生している箇所や機械装置の能力によって物理的な制約が生じている箇所を特定することから始まる。
- ボトルネックを最大限に活用する
- 全プロセス"を"ボトルネック"に"合わせる
- ボトルネックを改善し、強化していく
制約理論のポイント
「どのバリューストリームにも唯一無二の制約条件がある。その制約条件以外に対する改善は幻想にすぎない。」
ゴールドラット博士
「TOC(制約理論)を一言で言えというなら、それは「フォーカス」だ。 ここで、大事なのは、フォーカスするとは、何をすべきか決めると同時に、むしろ何をすべきでないか決めるということだ。 なぜなら、すべてにフォーカスするのは、どれにもフォーカスしないのと同じだからだ。」
ゴールドラット博士
おわりに
「制約理論の概要」について解説しました。
考え方は「一番のボトルネックを見つけ解消する、を繰り返す」というシンプルなものなので分かりやすく、そして業務改善など様々な所に活用できそうだなと感じました。
さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。
DevOpsを構成する3つの原則
はじめに
この記事では、「DevOpsを構成する3つの原則」について書いています。
現在、DevOpsを勉強するために「The DevOpsハンドブック」(詳細情報は以下)を読んでおり、その中の内容の一部を読書記録的にまとめたものがこの記事になります。
書籍情報
ジーン・キム (著), ジェズ・ハンブル (著), パトリック・ボア (著), ジョン・ウィリス (著), 榊原 彰 (監修), 長尾 高弘 (翻訳) The DevOps ハンドブック 理論・原則・実践のすべて 株式会社日経BP, 2017, 487p
自分に向けた備忘録でもありますが、「DevOpsが何かを知りたい」な人の一助になれば嬉しいです。
本題
DevOpsの全ての行動やパターンは3つの原則(The Phoenix Project では「3つの道」と呼んでいる)を基礎としている(= 3つの原則を元にDevOpsの行動やパターンが導き出されている)
- ワークフローを高速化する
- 実現により得られること
- 納品に必要なリードタイムが短くなりスループットが向上する
- (高速化のための施策により)作業品質も向上する
- 素早く実験する能力が向上する
- 実現のために行うべきこと
- 仕事を可視化する
- バッチサイズと作業の待ち時間を削減する
- 品質を組込み、下流に不良品を流さないようにする
- 具体的なプラクティス
- CI/CD(継続的インテグレーション、継続的デリバリ)
- オンデマンドによる環境の作成
- 仕掛かりの削減
- 変更に強いシステムや組織の構築
- 実現により得られること
- 高速で継続的なフィードバックフローを確立する
- 実現により得られること
- 上流で品質を確保できる
- 致命的な事故が起こる前に問題点を見つけて修正できる
- 実現のために行うべきこと
- フィードバックがいかに大切かを協調すること
- 発生したら、対策が打てるまで一丸となって問題と向き合う
- 実現により得られること
- 絶えず学習を行う組織文化を作ること
所感
- DevOpsというのは範囲が広大で曖昧模糊としているイメージでしたが、3つの原則としてまとめられていたのでDevOpsの全体像がクリアになった気がしました。
- 実践する上でのこの3つの関係は、同時並行で進めていくべきなのか、1から順番に達成していくべきなのかが少し分かりませんでした(読み進めていけば分かるのかもしれませんが)
- ワークフローの高速化は項目が具体的なので取り組みやすく感じました。
おわりに
「DevOpsを構成する3つの原則」について解説しました。
DevOpsの知恵を自分のソフト開発にも取り入れ、更に良いソフトウェア開発が出来るようになりたいです
GitHub ActionでPythonの複数のバージョンを利用してみる
はじめに
この記事では、「GitHub ActionでPythonの複数のバージョンを利用してみる」について書いています。
GitHub Actionsは非常に便利な機能で色々使えるようになりたい思っており、その中でPythonを複数のバージョンにまたがって動作確認などできるのかなと調べたのが記事を書いたきっかけでした。
自分に向けた備忘録でもありますが、「GitHub ActionでPythonの複数のバージョンを利用してみたい」な人の一助になれば嬉しいです。
本文
早速ですが、Github ActionsでPythonの複数のバージョンを利用してみるためのymlファイルの中身は以下のようになります。
name: run multiple Python versions on: workflow_dispatch: jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.7", "3.8", "3.9", "3.10"] steps: - name: Setup Code uses: actions/checkout@v3 - name: Setup Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Display Python version run: python -c "import sys; print(sys.version)"
Note
上の例では実験をしやすくするためにトリガーを
on: [workflow_dispatch]
と手動実行だけにしています。 実際に自動で行わせるためにはpush
などのトリガーを設定する必要があります。
処理の内容は以下のようになっています。
python-version: ["3.7", "3.8", "3.9", "3.10"]
で使用するPythonのバージョンを設定するactions/checkout@v3
では、リポジトリのコードをチェックアウトするactions/setup-python@v4Python
では、Pythonをセットアップする この記述の2行下にあるpython-version: ${{ matrix.python-version }}
で、上のmatrix
で指定したバージョンを使うように設定しているpython -c "import sys; print(sys.version)"
でバージョンを出力する ここのコードでは単にバージョンを出力する処理ですが、もしテストなどの処理を行わせたい場合はこの部分(かそれ以降)に処理を追加すれば大丈夫です。
ではこれで実際にアクションを実行してみましょう。実行結果は下の画像のようになります。
左欄をみると、指定した通り、3.7, 3.8, 3.9, 3.10でJobが実行されているようです。
また、右欄のDisplay Python versionの内容を確認するとPythonのバージョンが出力されています。
おわりに
「GitHub ActionでPythonの複数のバージョンを利用してみる」について解説しました。
GitHub ActionsではPythonの複数のバージョンを簡単に利用することができました。
GitHub Actionsは非常に便利な機能で様々なことを自動化できるので、是非みなさんも活用してみてください。
さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。
https://docs.github.com/ja/actions/automating-builds-and-tests/building-and-testing-python
Mermaidで基本的なガントチャートを書いてみる
はじめに
この記事では、「Mermaidで基本的なガントチャートの書き方」について書いています。
最近QiitaやGitHubなどでMermaidがサポートされるなど使える場面が増えているため、書き方を試しながら学んでみようとなったのが記事を書いたきっかけです。
自分に向けた備忘録でもありますが、「Mermaidでのガントチャートを書いてみたい」な人の一助になれば嬉しいです。
ガントチャートとは何か
Mermaidでのガントチャートの書き方
簡単なサンプル
```mermaid
gantt
title ガントチャートのサンプル
excludes weekends
%% Section-Aに関する記述
section Section-A
alpha : id_a, 2022-11-04, 9d
beta : after id_a, 4d
%% Section-Bに関する記述
section Section-B
gamma : 2022-11-11, 2022-11-16
delta : 2022-11-15, 5d
```
構文
Mermaidでのガントチャートは以下のように書いていきます。上のサンプルコードを見ながら読んでみてください
- ガントチャートを書く時は先頭に
gantt
キーワードを書きます。 title
を記述します。- 必要ならばセクションを記述します
- 上のサンプルでは
Section-A
,Section-B
がタスクです。
- 上のサンプルでは
- タスクを記述します。
- 上のサンプルでは
alpha
,beta
,gamma
,delta
がタスクです。
- 上のサンプルでは
タスク
- タスクは
タスク名: ステータス, タスクID、開始日、終了日
のように記載します。 - 開始日は
after タスクID
と書くと、そのタスクIDのタスクの直後から開始させることができます。 - 終了日は日付指定の他に、終了までの期間として記述することもできます。
その他
excludes
で、任意の日を除外することができます。- 上の例では
excludes weekends
として週末を除外してます。
- 上の例では
- コメントは
%%
を先頭につけて記述します。 - (環境によるかもしれませんが)今日の所には赤い線が引かれるようです。
おわりに
「Mermaidで基本的なガントチャートの書き方」について解説しました。
シンプルな記法でガントチャートが書け、使いやすそうだなと感じました。
さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。
GitHub ActionsでPythonのpytestを自動実行してみた
はじめに
この記事では、「GitHub ActionsでPythonのpytestを自動実行する方法と実際に試してみた結果」について書いています。
GitHub Actionsは非常に便利な機能で色々使ってみようと思い、Pythonのpytestを自動で実行できるようにしてみようと考えたのが記事を書いたきっかけでした。
自分に向けた備忘録でもありますが、「GitHub ActionsでPythonのpytestを自動実行させてみたい」な人の一助になれば嬉しいです。
本文
早速ですが、Github Actionsでpytestを自動で行わせるためのymlファイルの中身は以下のようになります。
name: Run pytest on: [workflow_dispatch] jobs: pytest: runs-on: ubuntu-latest steps: - name: Setup code uses: actions/checkout@v2 - name: Setup Python uses: actions/setup-python@v2 with: python-version: 3.9 - name: Install dependencies run: | python -m pip install --upgrade pip pip install pytest - name: Execute pytest run: | python -m pytest continue-on-error: true
Note
上の例では実験をしやすくするためにトリガーを
on: [workflow_dispatch]
と手動実行だけにしています。 実際に自動で行わせるためにはpush
などのトリガーを設定する必要があります。
処理の内容はシンプルで以下のようになっています。
この段階ではまだサマリなど見やすい形での出力ではありませんが、第一段階としては十分かと思います。
ではこれで実際にアクションを実行してみたいと思います。
pytestのコードが書かれたリポジトリに対して上のアクションを実行した結果が以下の図になります。
Execute pytest
の項を見るとちゃんとpytestが実行され、またその結果が出力されています。
GitHub ACtions上でpytestを実行することに成功したようです。
おわりに
「GitHub ActionsでPythonのpytestを自動実行する方法と実際に試してみた結果」について解説しました。
今回は単純にpytestを実行させてみただけですが、ここから更にサマリの形式で出力させることも出来るようです。
GitHub Actionsは非常に便利な機能で様々なことを自動化できるので、是非みなさんも活用してみてください。
MKDocsで数式を書く方法
はじめに
この記事では、「MKDocsで数式を書く方法」について書いています。
最近MKDocsを使って資料を書く機会が多いのですが、数式を扱うことがある人なら、MKDocsで数式を書けると便利かと思います。
自分に向けた備忘録でもありますが、「MKDocsで数式を書きたい」な人の一助になれば嬉しいです。
本文
今、以下の数式(何が表示されるかは後ほど分かります)をMKDocsで表示させたいとします。
$$ \int^{b}_{a} f(x) dx $$
まずは何もしてない状態で、ymlファイルは以下のような記述です。
site_name: My Docs theme: name: 'mkdocs'
このとき、MKDocs上では以下のような表示で、Formulaの節に数式が表示してほしいのですが上手く表示されてません
では数式が表示されるようにしていきましょう。
まず、次のコマンドを実行してpython-markdown-math
をインストールしてください
pip install python-markdown-math
続いてはymlファイルの中に記述を足します。以下のように記述してください
site_name: My Docs theme: name: 'mkdocs' markdown_extensions: - mdx_math extra_javascript: - http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML
ポイントは2つです。
+ markdown_extensions:
にmdx_math
を加える
+ extra_javascript:
にmathjax
のURLを加える
さて、ここまで作業が実施できたら、改めてMKDocsの表示を確認してみましょう
Formulaの節の部分、無事に数式が表示されてます。(表示したい数式は積分式でした)
おわりに
「MKDocsで数式を書く方法」について解説しました。
数式も書けるようになると、更にMKDocsで書ける文書の幅が広がり、便利に使えるかと思います。
さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。