Visual Paradigm Desktop | Visual Paradigm Online

Agile

30Articles
重要的敏捷指標:在不追求数字面子的情況下衡量成功

Agile1 month ago

實施敏捷方法論承諾能更快交付並更好地契合客戶需求。然而,許多組織在試圖量化成功時卻舉步維艱。追蹤每一項可得數字的誘惑很強,但並非所有數據都代表進展。一些被稱為面子指標的數據,雖能帶來虛假的成就感,卻掩蓋了真實的低效問題。要真正改善,團隊必須專注於以價值為導向的衡量方式,反映現實而非僅僅是活動量。 本指南探討能顯示真正進展的關鍵指標。我們將區分輸出與成果,分析常見誤解的陷阱,並提供一個選擇能賦能而非施壓團隊的數據框架。透過專注於這些核心指標,組織可在不犧牲團隊福祉的情況下,促進可持續成長與持續改進。 🎯 核心區別:輸出 vs. 成果 理解輸出與成果之間的差異,是有效衡量的基礎。混淆這兩個概念會直接導致面子指標的出現。輸出指的是實際完成的具體工作,例如程式碼提交、完成的故事點數或關閉的工單。成果則指交付給客戶或企業的價值,例如使用者採用率、產生的收入或問題的解決。 當團隊優化輸出時,可能導致交付了沒有人使用的功能。當他們優化成果時,則能使其努力與實際使用者需求保持一致。請考慮以下分析: 輸出指標:衡量數量與活動。回答的問題是:「我們建了什麼?」 成果指標:衡量影響與價值。回答的問題是:「它有幫助嗎?」 健康指標:衡量可持續性。回答的問題是:「我們能持續這樣做嗎?」 敏捷框架鼓勵檢視與適應。此循環需要準確的反饋。如果反饋迴路僅基於輸出,則適應方向可能偏離。例如,在未提升品質或客戶滿意度的情況下提高速度,往往會導致技術負債累積。因此,需要一個平衡的績效評分卡,以維持健康的開發生命週期。 🚫 面子指標的陷阱 面子指標是看起來很誇張但與長期成功無關的數字。它們通常容易衡量,卻難以採取行動。過度依賴這些指標,可能導致系統被操弄,團隊成員為了提升數字而操弄流程,卻未真正創造價值。以下是常見例子及其為何常作為主要指標時會失敗的原因。 1. 將速度視為關鍵績效指標 速度衡量團隊在一次迭代中完成的工作量。雖然對內部規劃與容量預測有幫助,但當其被用作績效基準時就會產生問題。如果管理層根據速度設定目標,團隊可能會: 將故事估算得比實際更小。 人為拆分任務以增加數量。 排除複雜工作以維持高平均值。 速度是針對特定團隊而言的。資深開發團隊的自然速度會高於初級團隊。比較這些數字是無效的。相反,應使用速度來追蹤同一團隊在時間上的穩定性,以預測未來的容量。 2. 故事點數 故事點數用來估算努力程度,

敏捷快速入门:您成為Scrum就緒開發者的首週路徑圖

Agile1 month ago

歡迎來到您進入敏捷開發之旅的起點。從傳統方法轉向Scrum之類的框架可能會讓人感到壓力。這不僅僅是工具的改變,更是思維模式的轉變,朝向合作、適應性與持續改進。本指南旨在為您提供首七天的結構化路徑。到本週結束時,您將理解Scrum框架的核心機制,並能有效地將其融入您的日常工作中。🛠️ 為何此路徑圖至關重要 📋 進入新的開發環境需要清晰的認識。若無法清楚了解團隊的運作方式,進展將會停滯。敏捷方法論強調個人與互動勝過流程與工具。然而,要實現有意義的互動,您需要一種共通的語言。此路徑圖確保您學會這種語言。您將從被動觀察轉變為主動貢獻。目標是成為Scrum團隊中的一名有效成員,理解每項儀式與產物背後的「為什麼原因」。 在這週期間,我們將專注於: 理解框架:掌握核心角色、事件與產物。 合作:學習如何在團隊中有效溝通。 執行:參與從規劃到回顧的Sprint生命周期。 反思:識別個人與團隊成長的領域。 第一天:導向與核心概念 🧭 第一天的重點在於奠定基礎。您無需立即撰寫程式碼。相反地,應專注於理解環境與參與規則。您的主要任務是吸收您將要投入工作的背景脈絡。 第一天的重點活動 認識團隊:向產品負責人、Scrum主管及其他開發人員自我介紹。了解他們的角色與職責。 檢視「完成定義」: 這是團隊內的一項關鍵共識。它定義了工作項目被視為完成所必須滿足的標準。若您不理解此項內容,便無法交付價值。 取得看板存取權: 獲取數位或實體看板的存取權,用以追蹤工作進度。目前無需擔心具體軟體。理解欄位內容:待處理、進行中、已完成。 閱讀產品待辦事項清單: 查看現有的項目清單。無需記憶,但需理解團隊正在執行的工作類型(功能、錯誤、技術債)。 應避免的事項 不要根據過往經驗假設您已了解團隊運作方式。每個團隊都是獨特的。 在理解分支策略之前,避免要求程式碼提交或合併請求。 第二天:使用者故事的藝術 📝 敏捷開發的推動力來自於價值。我們並非為了建構功能而建構功能;我們建構功能是為了為使用者解決問題。這一點體現在使用者故事中。理解如何閱讀和撰寫這些故事至關重要。 理解格式 標準的使用者故事遵循特定的結構: 作為,我希望,以便。 此格式迫使你思考誰,什麼,以及為什麼。當你收到一個故事時,你的首要任務是提問。如果利益不明確,這個故事很可能不完整。

深入探討:現代工程中回顧會議的隱藏細節

Agile1 month ago

在快速變化的軟體開發環境中,回顧會議通常被視為一個流程上的勾選項目。團隊在一個迭代結束時聚集,勾選一下,然後繼續前進。然而,這種觀點忽略了該活動的深遠潛力。當以精準與明確意圖執行時,回顧會議不僅僅是一場會議;它更是工程文化演進的主要引擎。正是在這裡,持續改進的抽象概念才真正轉化為具體的現實。 真正的回顧會議需要思維上的轉變。它要求我們超越表面的抱怨,識別系統性的摩擦點。本指南探討了有效回顧會議的結構、心理與戰術層面,專注於工程團隊如何在不陷入形式化會議陷阱的情況下,持續保持前進動能。 🛡️ 基石:心理安全感 在討論格式或時間區間之前,我們必須先處理環境問題。若缺乏心理安全感,回顧會議僅僅是一堆無疾而終的抱怨。這個概念並非新鮮事物,卻經常因過度重視流程機制而被忽視。心理安全感指的是團隊成員共同相信,彼此之間可以安全地承擔人際風險。在工程領域中,這意味著開發人員可以坦承自己引入了錯誤,而不必擔心遭到報復。 信任是唯一的貨幣: 如果團隊成員害怕被責備,他們就會隱藏問題。目標是揭露問題,以便能夠解決。 無責備的復盤: 當事件發生時,重點必須放在流程失敗上,而非個人錯誤。這同樣適用於回顧會議。 領導者的脆弱性: 如果工程經理在會議中不承認自己的錯誤,團隊成員也不會感到有勇氣這麼做。 建立這種安全感需要時間。它不是一個可以輕易切換的開關。它需要持續的行為表現,即對反饋以感激之心接受,而非防禦態度。當團隊成員建議對建構流程進行調整,可能導致部署速度變慢時,這個建議必須根據其本身價值來評估,而非根據提出者是誰。 ⏱️ 結構與時間區間 工程團隊重視時間。在無結構的討論上浪費時間會引發怨恨。一場結構良好的會議,既尊重工作日的時間界限,又能最大化對話的效益。 1. 時間區間 標準建議是每兩週迭代安排一小時。然而,複雜度各不相同。若該迭代涉及重大事件或顯著的架構變更,應延長時間;若迭代內容平穩無波,則應保持緊湊。原則是:會議時長應與完成工作的情感負荷相匹配。 2. 議程 不要一開始就立刻問「什麼做得好?」這通常會導致表面化的回答。相反,應遵循一個先建立張力、再釋放壓力的流程。 檢視數據: 查看速度、週期時間或事件日誌。讓數據先說話。 收集觀察: 使用便利貼或數位白板來記錄原始的感受與事實。 歸納主題: 將相似的觀點歸類,以發現模式。 根本原因分析: 深入探討前三個主題。 行動規劃:

敏捷軟件開發生命週期中產品負責人的角色

Agile1 month ago

在不斷變化的軟件開發世界中,敏捷方法論已成為高效交付價值的標準。在這種方法論的核心,存在一個關鍵角色,它彌合了商業需求與技術執行之間的差距。這就是產品負責人。理解這一職位的細微之處,對於致力於在保持高品質的同時最大化產出的團隊而言至關重要。 產品負責人是開發團隊中客戶與利益相關者的聲音。此人負責定義願景、管理待辦事項清單,並確保交付的工作與戰略目標一致。與傳統的專案管理角色不同,敏捷環境中的產品負責人更著重於價值交付,而非僅僅遵守時程。本指南探討了在這一關鍵職位上取得成功的全面責任、技能與互動需求。 🎯 在敏捷環境中定義產品負責人 在深入探討具體職責之前,理解該角色的範圍至關重要。在Scrum等框架中,產品負責人是三大核心角色之一,與Scrum主管和開發團隊並列。產品負責人對開發團隊工作成果所產生的產品價值最大化負有責任。 然而,該角色的意義不僅僅是一個頭銜。它代表一種專注於持續改進、適應性與清晰溝通的心態。產品負責人必須平衡相互競爭的需求,管理期望,並就何時開發何項功能做出艱難決策。這需要對市場、使用者以及專案的技術限制有深入的理解。 責任: 產品負責人是待辦事項清單的唯一責任人。 權限: 他們對優先順序和工作接受具有最終決定權。 代表: 他們代表客戶與商業利益相關者。 📋 產品負責人的核心職責 產品負責人的日常活動多樣且具挑戰性。以下各節詳述了定義該角色的主要職責。 1. 待辦事項清單管理與優先順序排序 產品待辦事項清單是所有待辦工作唯一真實的來源。它不僅僅是一張待辦事項清單,更是一個隨著產品與市場狀況變化而持續演進的動態文件。產品負責人對待辦事項清單管理的以下方面負責: 建立: 根據使用者反饋與商業策略,識別新功能、改進項目或錯誤修復。 排序: 根據價值、風險與依賴性對項目進行排序。高價值項目會被置於最上方。 優化: 定期優化待辦事項清單,確保項目清晰、可估算且準備就緒以供選擇。 清晰度: 確保每個項目都具有足夠的細節,以便開發團隊能夠理解。 優先順序排序是一個持續的過程。它涉及權衡延遲成本與功能價值。常見的技術包括加權最短作業優先(WSJF)或MoSCoW方法(必須有、應該有、可以有、不會有)。目標始終是首先交付產品中最具價值的增量。 2. 定義產品願景 明確的願景能引導團隊穿越不確定性。產品負責人闡述產品的發展方向及其原因。此願景並非一成不變,而是隨著市

敏捷職業準備:每位電腦科學學生都需掌握的技能

Agile1 month ago

從學術研究轉向專業軟體開發的過程很少是一條直線。這意味著要從理論構建轉向實際的、迭代式的交付。在現代科技環境中,快速適應、有效合作以及逐步交付價值的能力,與撰寫高效代碼一樣關鍵。本指南概述了電腦科學學生必須培養的核心能力,以在敏捷環境中取得成功。 敏捷不僅僅是一系列會議或特定工具集;它是一種工作哲學。它重視個人與互動,而非流程與工具;重視可運作的軟體,而非全面的文件;重視客戶合作,而非合約談判;重視回應變動,而非遵循計畫。對學生而言,理解這種轉變是走向可持續職業生涯的第一步。 1. 培養敏捷思維 🧠 在深入特定方法論之前,必須內化推動敏捷成功的價值觀。這種思維模式滲透於職業生活的方方面面,從代碼如何撰寫,到衝突如何解決。 擁抱迭代: 接受完美很少能在第一次嘗試中實現的事實。小步建構、頻繁測試並持續優化。這能降低風險,並在大量資源浪費前進行調整。 重視反饋: 反饋迴圈是敏捷開發的心跳。無論來自同儕的程式碼審查,還是利益相關者的演示,都應將反饋視為改進產品的資料,而非個人批評。 專注於交付: 學術專案通常以最終成績為重。專業工作則以交付給使用者的價值為先。理解「完成」與「真正完成」之間的差異至關重要。 適應力: 需求會變動,計畫會演進。能在不失去動能的情況下迅速轉向,是堅韌開發者的標誌。 學生們經常在面對敏捷任務的模糊性時感到困擾,與大學作業中嚴格的規範相比尤為明顯。學會應對這種模糊性本身便是一項技能。 2. 在協作環境中的技術熟練度 💻 儘管敏捷哲學著重於人,但技術仍是基礎。然而,當在團隊環境中工作時,技術技能的應用方式會有所改變。 程式碼品質與可維護性 在單人專案中,你可能撰寫僅對自己有效的程式碼。但在團隊中,程式碼必須讓他人也能讀懂。這需要遵守乾淨程式碼的原則。 可讀性: 使用清晰的命名規範與一致的格式化方式。未來的維護者不應需要猜測你的意圖。 重構: 在不改變外部行為的情況下持續改善程式碼庫,是至關重要的。不要讓技術債累積。 測試: 自動化測試能帶來信心。當你修改程式碼時,測試應立即告訴你是否有東西出錯。這能支援快速迭代。 版本控制系統 協作需要共享的變更歷史。對版本控制系統的熟練程度是不可或缺的。 分支策略:

破除迷思:為電腦科學初學者區分敏捷的炒作與現實

Agile1 month ago

如果你正在學習電腦科學,你很可能在課堂、實習或工作面試中聽過這個詞敏捷在課堂、實習或工作面試中被提及。它經常被視為軟體開發的黃金標準。然而,與許多技術熱門用語一樣,這種方法的實際情況往往被誇大聲稱所掩蓋。本指南旨在去除雜音,提供一個清晰且立足現實的了解,說明敏捷究竟是什麼,它在現實專案中如何運作,以及它在軟體工程廣泛範疇中的定位。 對學生和初入職場的開發者而言,理解行銷炒作與實際應用之間的差異至關重要。這將影響你處理團隊互動、程式碼組織與專案管理的方式。本文將剖析常見的誤解,探討核心原則,並詳細說明如何應用這些概念,而不依賴特定工具或廠商專屬的術語。 🧩 敏捷,到底是什么? 在破除迷思之前,建立一個基本定義至關重要。敏捷並非某個特定的框架,也不是你可以購買的產品。它是一種心態,是一組價值觀與原則,旨在應對軟體開發中固有的複雜性與不確定性。 敏捷的基礎在於敏捷宣言,由一群軟體開發者於2001年創立。宣言強調: 個人與互動優於流程與工具。 可運作的軟體優於全面的文件。 客戶協作優於合約談判。 回應變動優於遵循計畫。 值得注意的是,這些配對中右側的項目固然有價值,但左側的項目具有更高的價值。這種平衡往往是混淆的起點。初學者常將「可運作的軟體優於文件」理解為「不需要文件」。這是錯誤的。文件仍然必要,但重點轉向能立即提供價值的文件,而非創建在首次提交後就過時的龐大手冊。 🚫 敏捷最大的五個迷思 在業界中,幾個根深蒂固的迷思廣為流傳。這些誤解可能導致專案執行不佳與挫折感。讓我們檢視最常見的說法,並與實際運作情況進行對比。 迷思1:敏捷代表無需規劃 炒作:團隊直接跳入程式碼撰寫,不考慮架構或最終目標。這被視為混亂且隨機的。 現實:敏捷需要大量的規劃,但規劃的性質有所改變。與耗時一整年的龐大前期計畫不同,敏捷採用迭代式規劃. 高階規劃: 整體願景與路徑圖在早期即已明確。 短期規劃:詳細任務會在短週期內規劃,通常為兩週左右。 適應性: 如果市場狀況改變,計畫會針對下一個週期調整,而不是上一個週期。 這種方法能降低風險。如果專案朝錯誤方向發展,將在數週內被發現,而不是數個月後。 迷思 2:敏捷代表不需要文件 炒作: 你不需要撰寫技術規格、使用者故事或 API 文件。只要直接寫程式就好。 現實情況:

教程:在30分鐘內建立您的第一個敏捷產品待辦事項清單

Agile1 month ago

建立工作項目結構化清單是任何成功敏捷計畫的基礎。本文檔概述了構建功能性敏捷產品待辦事項清單的流程。我們著重於可快速完成且保持品質與清晰度的實用步驟。目標是在不陷入行政負擔的情況下,為您的團隊建立明確的發展路徑。 📋 什麼是產品待辦事項清單? 敏捷產品待辦事項清單是產品中所有已知需求的有序清單。它是對產品進行任何變更的唯一需求來源。它不僅僅是一張待辦事項清單,更是一個隨著產品與市場狀況變化而持續演變的動態資產。 有序:項目根據價值、風險與必要性進行優先排序。 動態:隨著新資訊的出現,它會不斷擴大與縮小。 透明:團隊中的每個人皆可清楚看見哪些工作已規劃,哪些已完成。 若未妥善維護待辦事項清單,團隊可能陷入低價值功能的開發,錯過關鍵依賴關係,或因範圍蔓延而耗盡精力。本指南確保您擁有穩固的起點。 🛠️ 前置條件:開始前您需要準備的事項 在開始填入清單之前,請確保已具備以下要素。此準備工作可節省實際創建階段的時間。 1. 產品願景 定義產品的長期目標。您正在解決什麼問題?目標受眾是誰?若缺乏明確願景,待辦事項將失去方向。 2. 利益相關者意見 收集關鍵利益相關者提供的初步需求。您不需要所有細節,但必須掌握高階需求,以開始構建大型功能(epics)。 3. 協作空間 找出一個團隊可檢視與編輯待辦事項清單的實體或數位空間。這可以是白板、共用文件或管理看板。避免提及特定廠商名稱,專注於工具的實用性。 🏗️ 分步指南:建立待辦事項清單 本節詳細說明如何高效填寫您的待辦事項清單。我們的目標是在30分鐘內完成核心結構。 步驟1:捕捉高階大型功能(5分鐘) 從整體視角出發。大型功能(epics)是可拆解為較小任務的大型工作群組。目前無需過度關注細節。 根據您的產品願景,識別主要主題。 用一句話描述該大型功能。 將相關的大型功能歸類在一起。 範例: 大型功能

敏捷故障排除指南:當您的站會出錯時該怎麼辦

Agile1 month ago

每個敏捷團隊最初都希望擁有流暢且充滿活力的每日站會。這個儀式旨在同步團隊、識別阻塞點並對齊當天的工作。然而,經驗表明,會議經常會變得低效。當站會失去節奏時,它便成為時間的消耗,而非價值的推動者。本指南提供了一種結構化的方法,用於診斷和解決常見的敏捷站會失敗問題。我們專注於實用的調整,而不依賴於特定的工具或平台。 為何站會會停滯不前?如何解決它 📉 當每日站會變得問題重重時,這很少是突然發生的。通常是由於累積的摩擦所致。問題不在儀式本身,而在執行過程以及對基本原則的遵守上出現了斷裂。團隊經常將狀態報告誤認為進度追蹤。這種轉變使互動動態從合作轉變為績效評估,從而降低了心理安全感。 成功的故障排除始於誠實的觀察。你必須判斷問題是出在對話內容、引導風格,還是環境上。以下是表明站會表現不佳的核心症狀分解。 識別常見的站會功能障礙 🚨 並非每一個延遲都是失敗。一些摩擦是正常的。然而,持續出現的模式表明存在系統性問題。請使用下方表格,將觀察到的症狀與可能的根本原因對應起來。 觀察到的症狀 對團隊的影響 可能的根本原因 會議超過15分鐘 開發時間被浪費 公開進行深入的問題解決 團隊成員保持沉默 錯誤的協調感 心理安全感低或缺乏準備 一人主導談話 其他人脫離或走神 引導不清晰或缺乏結構 更新內容重複 資訊重複 關注產出而非成果 阻塞點未被提出 工作意外中止 責備文化或害怕求助 情境一:獨白式會議 🗣️ 最常見的問題之一是站會轉變為獨白式會議。原本應是對話,卻變成一個人(通常是Scrum Master或團隊負責人)佔據了大部分時間在講話。這發生在團隊成員覺得自己有責任總結自己的工作卻又不願開口,或引導者覺得需要掌控敘事時。

敏捷 vs. 瀑布:給電腦科學學生的並列解析

Agile1 month ago

作為一名電腦科學學生,你在學術生涯和早期職業生涯中將會接觸到各種框架和方法論。軟體開發中最為主流的兩種方法是敏捷與瀑布。理解這兩種模型之間的差異,對於專案管理、與利益相關者溝通以及交付高品質程式碼至關重要。本指南深入探討這兩種方法論,幫助你無需依賴特定工具或銷售宣傳,就能掌握軟體開發生命週期(SDLC)的複雜性。 理解瀑布模型 🌊 瀑布模型是軟體開發最早的方法之一。它遵循線性、順序的設計流程。可以把它想像成一條水流只朝一個方向流下的瀑布;一旦某個階段完成,專案就會進入下一個階段。若要回到之前的階段,將會付出巨大的成本或努力。 核心特徵 順序階段: 流程被劃分為明確的階段。在當前階段完成並獲得批准之前,無法開始下一個階段。 大量文件記錄: 每個階段在繼續前都需準備詳細的文件記錄。這確保了清晰性,並保留了決策的紀錄。 僵化的規劃: 需求在初期就已定義。專案啟動後,很難應對變更。 於最後階段測試: 質量保證與測試通常在開發階段完成後才進行。 瀑布模型的階段 雖然存在各種變體,但標準的瀑布生命週期通常包含以下步驟: 需求分析: 收集軟體需要執行的所有必要資訊。利益相關者完全定義專案範圍。 系統設計: 架構師與工程師建立藍圖。這包括資料庫設計、硬體規格與介面配置。 實作: 開發人員根據設計規格撰寫實際程式碼。 測試: 系統會針對錯誤、缺陷與需求符合性進行測試。若發現問題,將予以修復,但範圍變更極為罕見。 部署: 軟體會釋放到最終使用者。 維護: 上線後會持續提供支援,以修復問題或更新系統。 理解敏捷方法論 🔄 敏捷是一種現代化的方法,與瀑布模型截然不同。它強調彈性、合作與客戶反饋。與長時間週期、最後才交付單一成果的方式不同,敏捷將專案拆分成小型、可管理的單元,稱為迭代或衝刺。

敏捷組件分解:理解角色、工件與儀式

Agile1 month ago

敏捷方法論常被描述為一種思維模式,但若缺乏結構,它就會變成一組鬆散的會議。為了持續交付價值,團隊依賴於明確的框架。本指南將剖析敏捷環境中的關鍵組件。我們將探討推動進展的人員、工作項目以及反覆出現的事件。 許多組織的困境並非因為缺乏人才,而是因為誤解了各個部分如何相互配合。當角色模糊時,責任感就會消失。當工件缺乏清晰度時,透明度就會下降。當儀式失去節奏時,動力就會停滯。通過分別檢視每個組件,再將它們整合起來,我們才能建立一個支持可持續發展的系統。 1. 核心角色:流程背後的人員 🧑‍💻 在標準的敏捷框架中,人力要素被優先考慮。該結構旨在賦能個人,而非取代他們。共有三個主要角色,外加一組外部貢獻者。每個角色都有明確的職責,以避免瓶頸產生。 產品負責人 產品負責人扮演著商業利益相關者與開發團隊之間的橋樑。他們負責最大化產品的價值。這包括: 待辦事項清單管理:創建、排序並優化工作項目清單。 利益相關者溝通:收集反饋並將其轉化為需求。 決策制定:根據「完成定義」來接受或拒絕工作項目。 價值優化:確保團隊首先專注於最重要的功能。 此角色並非專案經理。他們不會分配任務。相反地,他們定義什麼需要被建造,以及為什麼. Scrum 主管 Scrum 主管透過消除障礙並確保流程被遵循來服務團隊。他們是服務型領導者。其關注領域包括: 指導:協助團隊理解敏捷原則與實務。 障礙排除:識別並解決阻止進展的阻礙。 促進:確保活動具有成效且時間受控。 文化建設:營造信任與持續改進的環境。 他們保護團隊免受外部干擾,並確保專注力持續集中在Sprint目標上。 開發團隊 這是執行實際工作的專業人員群組。他們具備跨功能且自我組織的特性。 自我組織: 團隊自行決定如何將產品待辦事項轉化為增量成果。 跨功能: 成員具備創造產品所需的所有技能。 共同擁有: 沒有任何個人是某項功能的唯一擁有者;整個團隊共同擁有程式碼。

Loading

Signing-in 3 seconds...

Signing-up 3 seconds...