2022/12/12

軟體工程的重要的指標

簡單整理一下今天看到的這篇文章, 未來可以用指標來改善團隊狀況。 ----- 軟體工程的重要的指標 DORA 指標 (DevOps Research Assessment) 1. 部署頻率: 產品多快發佈出去 2. 投入到交貨的時間 (Lead-Time For Change): 需求多快可以給客戶 3. 變更失敗率: 部署後造成線上異常的頻率, 也可以視為 Hotfix 次數 / 部署次數 4. 恢復服務時間: 從故障到恢復需要的時間 可觀察部署的摩擦系數及產品變更的可靠性。 SRE 指標 (Site Reliability Engineering Metrics) 1. 服務水平指標 (SLI): 決定服務水平的數據, 例如回應時間、失敗/請求比例 (error rates) 2. 服務水平目標 (SLO): 對每一項 SLI 定義目標, 例如一個月內, P99 的回應時間在 200 毫秒內。 3. 服務級別協議 (SLA): 對客戶宣告基於 SLO 的商業承諾, 若沒有達到則有罰則。 團隊應該要關注在 SLI & SLO 的關係, 什麼樣的指標代表服務水平, 例如電商可能會包括交易成功率跟每秒成單數量。 錯誤預算 (Error budgets) - 這可能是基於 SLO 的指標來決定; 例如站台一個月內的可用性是 99%, 代表有 1% 的錯誤率可以消耗。 如果在每個月的前2次部署錯誤率升到 0.7%, 那代表你接下來的部署只剩下 0.3% 錯誤率可以花。如此花光了或到了臨界值, 團隊應該停止部署, 直到找到錯誤率升高的原因為止。 這樣可以機械式的將把可靠性放在新功能交付的前面。 苦勞指數 (Percentage toil-work) - 例如維運人員的工作, 有 50% 在用工人智慧處理, 應該就將工作自動化。 流動時間 (Flow time) - 有點像價值流, 計劃中工作應該都要算在內, 以此可以看出有多少需求是提出後大半年才排進年度計劃或交到團隊手上。 流量分配 - 定義每個工程階段花費時間的比例, 例如把整體的價值流程圖拉出來, 可看出團隊花在測試及提高可靠性上的時間分配有多少。 PR lead-time & rework - PR lead-time: PR 開出後到被 merged 的時間 - PR rework: PR 審核後的修改次數 可以看出團隊基於 PR 的工作流程卡關的程度, 如果時間花在讓 PR 被 merged 的成本很高, 應該在發出 PR 前就提前進行討論。 錯誤日誌量 - 應該要觀察每個服務寫出來的 Log 數, 如果要靠寫 Log 才能幫助釐清似乎也不是個健康的做法, 錯誤日誌應該在真正異常的情況才做記錄。 團隊健康/心理安全 - 每季或每月進行匿名的心理安全調查, 有助於發現一些風險及警告信號。 結論 - 指標用於需要改善的地方 - 指標做為預警制 - 團隊自己跟自己比 不要用在 - 把指標落到個別開發人員身上 - 小心團隊之間的比較 - 根據指標對團隊或個人排名 來源: https://chaordic.io/blog/software-engineering-metrics-that-matter/?utm_source=techleaddigest&utm_medium&utm_campaign=1447

2020/10/07

解決本機的 DynamoDB 寫入權限問題

## docker-compose.yml ``` version: "3" volumes: dynamodb-data: external: true services: dynamodb-local: image: amazon/dynamodb-local ports: - "8000:8000" command: ["-jar", "DynamoDBLocal.jar", "-sharedDb", "-dbPath", "./data"] volumes: - dynamodb-data:/home/dynamodblocal/data ``` ## use docker-compose ``` docker-compose up -d ``` ## login your docker container ``` docker exec -u root -t -i /bin/bash ``` ## change your docker container database file permission ``` chmod a+rw /home/dynamodblocal/data ``` refer: https://stackoverflow.com/questions/41221532/docker-volume-need-permissions-to-write-to-database

2020/06/15

用 PowerShell 找出 Windows Task Schedule 裡超過時間的排程

``` Get-ScheduledTask | ? State -eq Running | Get-ScheduledTaskInfo | % { $lastRunTime = [datetime]::parse($_.LastRunTime) $lastRunTime $ts = New-TimeSpan -Start $lastRunTime -End (Get-Date) $ts.Minutes if ($ts.Minutes -gt 10) { Write-Host $_.TaskName Write-Host "Running over 10 minutes!!" } } ```

2019/09/04

T-SQL 語法風格

在討論 coding style 時, 有提到 T-SQL 是否也有語法風格規範? 找了幾個網路的文章, 在此列表做為記錄, 因為目前主要是使用微軟的 MSSQL, 自然也要附上 MSDN 的文章做為參考。 - [Transact-SQL 語法慣例 (Transact-SQL)](https://docs.microsoft.com/zh-tw/sql/t-sql/language-elements/transact-sql-syntax-conventions-transact-sql?view=sql-server-2017) - [SQL樣式指南 · SQL Style Guide](https://www.sqlstyle.guide/zh-tw/)

2019/03/11

Command line recycle IIS Application Pool

## Use appcmd ### List application pool (find the apppool name) ``` C:\Windows\System32\inetsrv\appcmd.exe list apppool ==== the result ==== APPPOOL "DefaultAppPool" (MgdVersion:v4.0,MgdMode:Integrated,state:Started) APPPOOL "Classic .NET AppPool" (MgdVersion:v2.0,MgdMode:Classic,state:Started) APPPOOL ".NET v2.0 Classic" (MgdVersion:v2.0,MgdMode:Classic,state:Started) APPPOOL ".NET v2.0" (MgdVersion:v2.0,MgdMode:Integrated,state:Started) APPPOOL ".NET v4.5 Classic" (MgdVersion:v4.0,MgdMode:Classic,state:Started) APPPOOL ".NET v4.5" (MgdVersion:v4.0,MgdMode:Integrated,state:Started) ``` ### Recycle the application pool ``` C:\Windows\System32\inetsrv\appcmd.exe recycle apppool ".NET v2.0 Classic" ==== the result ==== ".NET v2.0 Classic" successfully recycled ```

2019/03/04

幾個可以幫助新創業務的線上服務

內容取自 Producthunt

===============================
"What's a tool that changed your life?" - us to freelancers on Twitter yesterday.

Why we think this is an important question: freelancing often means unchartered territory. When you work for yourself, it's up to you to find clients, lead projects, manage payments, find insurance, get dressed every day, etc. But freelancing as a career option is on the rise — reports predict that a majority of the U.S. workforce will be freelance by 2027.

Want that life? Here are some of the apps that freelancers are currently using:

Freshbooks for getting paid

Slack for communication

Notion for an all-in-one workspace

Webflow for web design

Qlearly as a tabs manager

Nuzzel for news monitoring

Unsplash for images

Things for managing tasks

Pastel for feedback and questions

1Password for security

AND CO for invoicing, expenses and proposals


Sent from Mail for Windows 10

2019/01/30

90% 症候群

在進行大規模盤點專案時, 有人跟我說 "敏捷不能解這題" "你要用 water fall" "你要列出總進度, 目前進度"

但最終結果都落入了90% 症候群, 沒有完全的結束

 

要記住的是:

  • 把工作拆小
  • 工作只有二種狀態: "完成" "尚未開始"
  • 不要問 "這個工作的進度到那了?" 而是問 "我們完成這個功能了嗎?"

 

https://www.mountaingoatsoftware.com/blog/why-agile-teams-put-so-much-emphasis-on-being-done-each-iteration?utm_source=drip&utm_medium=email&utm_campaign=Why+Agile+Teams+Put+So+Much+Emphasis+on+Being+Done+Each+Iteration

 

 

Sent from Mail for Windows 10

 

軟體工程的重要的指標