Skip to content

Home

處理問題人物 - 如何有效激勵你的團隊

要讓人們跟隨你的領導,唯一的方法是激勵他們激發自身的動力。當試圖激勵有挑戰性的員工時,管理者最常犯的錯誤就是依賴邏輯論證和銷售語言。然而,人各有各的動機,價值觀和偏見,導致他們對什麼是可以接受的有不同的理解。考慮到管理的一個基本原則是你無法改變一個人的本質,這些差異觀點經常導致不滿意的結果。

與其強加解決方案,更有效的方法是從員工那裡得到答案,鼓勵他們克服自己的激勵障礙。對於即時解決問題,領導者必須改變他們的觀點:將員工視為一個需要理解的人,而不是一個需要解決的問題。這涉及到花費時間和精力真正了解對個人有何重要的事情。隨意的對話可以提供對員工世界的寶貴見解,揭示他們的期望,願望,和經驗。

在這次分析之後,管理者應該打破僵化的思維模式,考慮所有可能的解決方案。放棄先入為主的觀念,對各種結果保持開放。重新定義你的目標,找出不滿的根本原因,然後找到新的方式來與員工的核心利益相符。

例如,在一家 IT 諮詢機構,內在動機如成就感,認可,工作性質,責任感,和進步都是至關重要的。儘管由於項目管理的上級管理疏忽導致了很多不滿,但我和我的團隊仍然在深夜和周末加班,為香港的一家航空公司準時交付了一個移動應用項目。然而,項目結束後,團隊士氣低落。為什麼呢?我們的努力換來的是高層管理層的批評,而非認可。因此,許多團隊成員離職,去尋求提供更好金錢報酬的工作。

在我辭職後,公司的董事通過真正聆聽我的疑慮並認知我的職業野心(如大數據分析,機器學習和人工智能),說服我留下。他給我提供了一個與我的興趣完全符合的項目,我的動力恢復了。

在決定留下後,我負責激勵我的團隊也做出同樣的決定。我與每個成員見面,了解他們的疑慮,並提供實質的激勵,如免費的午餐和小吃。神經科學認為,獎勵比懲罰更能激勵行為。研究顯示,有條件的獎金可以使銷售量增加24%,而積極的反饋鼓勵員工超越他們平常的職責。這個額外的努力使公司更加有效和高效。

因此,採用一種僕人領導者的方法,讓我的團隊的熱情和貢獻變得至關重要。

一份2014年的德勤報告透露,多達87%的美國勞動力由於對他們的工作缺乏熱情而無法發揮全部的能力。現在,領導者必須采用能夠激發個體團隊成員和整個團隊的策略。處理低效能並清楚地傳達差的結果不一定會導致立即解僱,可以顯著提升士氣。當人們看到一個解決問題的文化,結果會產生一個更健康,更有生產力的工作場所。

Transform Yourself into the Leader Others Want to Follow - Learning Charisma

Charisma is a skill that can be learned, even if not everyone is a natural-born charismatic leader. By understanding the principles of charisma, we can incorporate its magical qualities into our lives. We can cultivate deep trust among our followers by guiding them toward a clear vision. With hard work and the right strategies, we can become leaders who are admired and respected.

Max Weber, a prominent early 20th-century German sociologist, was the first to popularize the term "charisma." Charismatic leaders can use reasoned discourse to build moral credibility and ignite the passions of their followers. This leads the followers to feel a sense of purpose, inspiration to accomplish great things, and sometimes even blind faith. Research identifies nine verbal and three non-verbal techniques to achieve this.

Firstly, charismatic speakers can help the audience understand, relate to, and remember their message by using metaphors, similes, and analogies. As an IT consultant, I often need to translate technical information into business language for senior management. For example, I compare our scrum team developers to a Navy SEAL squad to illustrate the need for cross-functionality. This analogy clearly communicates the importance of adaptability within an agile team.

Secondly, using stories and personal experiences can make a message more engaging and relatable. Charismatic leaders have a unique way of verbal expression and can find common ground with their audience. For instance, Steve Jobs' 2005 Stanford Commencement Address powerfully connected with people by sharing pivotal moments in his life. His stories are not just moving, but they also inspire me to excel in what I love to do.

Thirdly, contrasts provide a straightforward method to blend logic and emotion, making your stance more memorable. John F. Kennedy's famous words, "Ask not what your country can do for you; ask what you can do for your country," serve as a potent example of using contrasts effectively.

Fourthly, rhetorical questions can foster engagement. Martin Luther King Jr.'s "I Have a Dream" speech is an exemplary piece that employs this technique, inspiring hundreds of thousands of civil rights supporters.

Fifthly, the "rule of three" is a reliable persuasion technique that simplifies any message into key points. Abraham Lincoln's Gettysburg Address employed this strategy effectively.

Sixthly, making moral statements or expressing the collective sentiment can enhance a leader's credibility. These expressions exhibit the leader's character, persuading the audience to follow them.

Seventhly, setting high aspirations and displaying passion can further motivate followers. This passion can only manifest if the leader genuinely believes in their vision and has faith in their team.

In addition to verbal techniques, non-verbal cues like animated speech, facial expressions, and gestures can also be impactful. Though these non-verbal cues may not be suitable for everyone, they make the message more accessible to the audience.

Recently, I was promoted to team leader in my IT consulting firm, allowing me to apply these techniques in a complex project involving a mobile app for a Hong Kong airline. By mastering skills that go beyond public speaking, I can build stronger emotional connections with team members and earn their respect.

The best way to master these techniques is through preparation and practice. These skills prepare me for both public speaking and individual conversations, where I need to be both persuasive and spontaneous. For instance, every three weeks, I must demo our team's latest product. Using a balanced combination of verbal and non-verbal techniques has significantly improved the reception of my presentations. The notion that I can't improve because I wasn't born charismatic is a fallacy. Through training and practice, I've managed to narrow the charisma gap, making me a more effective leader for our project.

將自己轉變為他人希望追隨的領導者 - 學習魅力

魅力是一種可以學習的技能,即使並非每個人都是天生的魅力型領導者。通過理解魅力的原理,我們可將其神奇的品質融入我們的生活中。我們可以通過為我們的追隨者指引清晰的願景,來培養他們對我們的深厚信任。通過努力工作和正確的策略,我們可以成為被人們欽佩和尊重的領導者。

20世紀初期的德國著名社會學家馬克斯·韋伯首次使“魅力”這個詞廣為人知。魅力型領導者可以使用理性的論述來構建道德信譽,並點燃他們的追隨者的激情。這讓追隨者產生目標感,有靈感去完成偉大的事情,甚至有時會產生盲目的信念。研究確定了九種語言技巧和三種非言語技巧以實現這一目標。

首先,具有魅力的演說者可以通過比喻、擬人和類比讓聽眾理解、聯繫和記住他們的訊息。作為一名IT顧問,我經常需要將技術信息翻譯成高層管理人員可以理解的商業語言。例如,我將我們的敏捷開發團隊比作海豹突擊隊,來說明需要橫向協作的重要性。這樣的比喻清楚地傳達了敏捷團隊內部的適應性的重要性。

其次,使用故事和個人經驗可以使訊息更具吸引力和可關聯性。魅力型領導者有一種獨特的語言表達方式,能和他們的聽眾找到共同點。例如,史蒂夫·賈伯斯在2005年的斯坦福開學演講中,通過分享他人生中的關鍵時刻,與人們產生了強烈的關聯性。他的故事不僅觸動人心,而且激勵我去追求我所熱愛的事業。

第三,對比是一種簡單明了的方法,可把邏輯和情感結合在一起,使你的立場更加令人瞩目。約翰·F·肯尼迪的名言:“不要問你的國家能為你做什麼,而應該問你能為你的國家做什麼”,就是有效使用對比的一個深刻的例子。

第四,修辭問句能夠引發聽眾的參與。馬丁·路德·金恩的“I Have a Dream”演講就是一個使用了這種技巧的典範,激勵了數以十萬計的民權支持者。

第五,“三段法”是一種讓任何信息變得簡單的可靠說服技巧。亞伯拉罕·林肯的葛底斯堡演說就是有效運用了這種策略的例子。

第六,發表道德陳述或表達集體情感可以提升領導者的信譽。這些表達展現了領導者的品格,說服聽眾跟隨他們。

第七,設定高度的期望和展現激情可以進一步激勵追隨者。只有領導者真誠地相信自己的願景並對自己的團隊有信心,這種激情才能顯現出來。

除了語言技巧外,非語言暗示,如生動的言語,面部表情和手勢,也可以產生影響。雖然這些非語言暗示可能不適合每一個人,但他們使訊息更容易被聽眾接收。

最近,我在我的IT諮詢公司被提升為團隊領導,使我能夠在一個涉及香港航空公司手機應用程序的複雜項目中應用這些技巧。通過掌握超越公眾演講的技巧,我可以與團隊成員建立更強烈的情感聯繫,並贏得他們的尊重。

掌握這些技巧的最佳方式是通過準備和練習。這些技巧讓我無論在公共演講還是個別對話中都能讓我具有說服力且自然流暢。例如,每三個星期,我必須展示我們團隊的最新產品。使用言語和非語言技巧的平衡組合,顯著提高了我演示的接受度。認為我不能提高,因為我不是天生的魅力型人物,這是一種謬論。通過訓練和練習,我成功地縮小了魅力差距,使我成為我們項目中更有效的領導者。

Evidence-Based Management

Life is a series of choices. Managers are frequently faced with making decisions that range from everyday business operations to pivotal choices about a company's future direction. The ability to make informed decisions is increasingly crucial for managers. What would you do if you were the CEO of Amazon? How would you handle challenges from competitors? These questions highlight the importance of adopting evidence-based management to enhance decision-making, moving conversations from personal preferences and opinions to logic and data-driven insights.

Evidence-based management is an evolving concept that aims to utilize and analyze high-quality experiments and studies to achieve positive outcomes. These strategies generally rely on well-substantiated facts that have a high likelihood of effectiveness and a low risk of harm.

Regrettably, many managers today are not basing their problem-solving approaches on relevant evidence or best practices. Without quantitative data, the success of any initiative is left to guesswork and assumptions. Many decisions are still driven by dogma and belief, rather than creativity or innovation. There is a pervasive fear of failure and a lack of original thought, leaving the status quo unchallenged and problems unresolved.

In today's VUCA (Volatility, Uncertainty, Complexity, and Ambiguity) world, there is an abundance of data. Managers and entrepreneurs should adopt a Sherlock Holmes-like mindset, formulating theories that can be subsequently tested and verified. Implement a scientific approach within your organization and treat it as an ongoing prototype, fostering a culture of trial and error. Evidence-based practice is an applied research field that incorporates the best intellectual contributions of the past two centuries.

When it was observed that many medical treatments were ineffective despite data indicating otherwise, the focus shifted toward evidence-based practice. For example, it took nearly 40 years for medical professionals to routinely wash their hands before surgery. Recent studies show that doctors wash their hands only about a third as often as they should, and only around 15% of medical decisions are based on evidence. Effective change requires leveraging proven psychological theories, not merely instructing individuals to behave differently.

In professional baseball, traditional beliefs often dictate perceptions about the best players and team composition. The general manager must think strategically to win games. Michael Lewis's book "Moneyball" illustrates how evidence-based methods can be used for player selection, even in an industry resistant to change.

Likewise, the corporate world is rife with outdated misconceptions. The first-mover advantage myth persists largely due to ideology, even though empirical data suggests that execution quality trumps timing. Amazon wasn't the first online bookstore, and Google wasn't the first search engine. Being first isn't as important as being good enough.

Another misconception revolves around the most significant factors contributing to a company's success. Surveys indicate that 17% of people have no goals, while 75% have clear goals that correlate with strong performance. Innovation and new initiatives contribute 25% to overall success, while leadership and CEOs account for 10%. Therefore, goal-setting is a valuable management practice. Organizations would benefit if their leaders utilized the latest research findings.

Contrary to the once-popular belief that criticizing employees would boost productivity, negative emotions actually impair performance. Criticism creates a fear of failure and demotivates staff. There seems to be a correlation between a cheerful demeanor and increased sales. If one were not to rely on studies, a campaign to ensure employee smiles might be launched, but this could backfire as employees may be too focused on other tasks to remember to smile. Moreover, there's limited evidence to suggest that equity rewards, such as stock options, enhance organizational performance.

In conclusion, managers need to alter their thinking and actions by placing greater reliance on scientific evidence. Gather quality data to avoid untested theories. This is crucial for your organization, as adhering to best practices can improve performance and give you a competitive edge. Leveraging technology for data and analytics can aid decision-making, and evaluating outcomes can provide a clearer lens through which to assess current strategies. This foundation of evidence supports a more informed, data-driven approach to organizational change and effort.

以證據為基礎的管理

生活就是一連串的選擇。經理人頻繁面對從日常業務運營到關於公司未來方向的重大選擇的決策。對經理人來說,能夠做出明智決策的能力越來越關鍵。如果你是亞馬遜的首席執行官,你會怎麼做?你會如何應對來自競爭對手的挑戰?這些問題突顯了採用以證據為基礎的管理來提高決策能力的重要性,將討論從個人偏好和意見轉移到邏輯和數據驅動的見解。

以證據為基礎的管理是一個不斷發展的概念,旨在利用並分析高品質的實驗和研究以實現積極的結果。這些策略通常依賴於已被充分證實的事實,這些事實有很高的有效性,並有低風險的危害。

遺憾的是,許多經理人今天並未依據相關證據或最佳實踐來解決問題。沒有量化數據,任何倡議的成功都要靠猜測和假設。許多決定仍然由教條和信念驅動,而不是創新或創新。對失敗存在普遍的恐懼並缺乏新的思想,讓現狀無法受到挑戰,問題無法得到解決。

在今天的VUCA(波動性、不確定性、複雜性和模糊性)世界中,數據充足。經理人和企業家應該採用像福爾摩斯般的思維方式,制定可以後續進行測試和驗證的理論。在您的組織中實施科學方法並將其視為持續的原型,培養試錯的文化。以證據為基礎的實踐是一個應用研究領域,結合了過去兩個世紀的最佳智慧成果。

當觀察到許多醫療治療雖然數據顯示效果,但實際上無效時,人們的焦點就轉向以證據為基礎的實踐。例如,醫學專業人員在手術前定期洗手近40年。最近的研究顯示,醫生只有三分之一會經常洗手,只有約15%的醫療決策基於證據。有效的變革需要利用已證實的心理學理論,而不僅僅是指導個體行為的變異。

在專業棒球中,傳統的信念經常決定對最好的球員和球隊組成的看法。總經理必須戰略性地思考如何贏得比賽。邁克爾·劉易斯的書《Moneyball》就生動地描繪了如何在甚至抗拒變革的行業裡,用以證據為基礎的方法進行球員的選擇。

同樣的,企業界充斥著過時的誤解。先行者優勢的迷思主要是由於意識形態,即使經驗數據顯示執行品質超越時機。亞馬遜不是第一個在線書店,Google也不是第一個搜索引擎。首先並不如夠好重要。

另一種誤解圍繞著對公司成功最重要的因素的貢獻。調查顯示,17%的人沒有目標,而75%的人有明確的目標與強大的表現相關聯。創新和新的倡議為總體成功貢獻了25%,而領導力和CEO佔了10%。因此,設定目標是一項寶貴的管理實踐。如果領導者利用最新的研究發現,組織將受益。

與曾經流行的觀念相反,批評員工會提高生產力,負面情緒實際上會損害績效。批評創造了對失敗的恐懼並使員工失去動力。似乎愉快的口吻與銷售增長有關。如果不依賴研究,可能會推出一個確保員工微笑的運動,但這可能會產生反效果,因為員工可能過於專注於其他任務,以至於忘記微笑。此外,並未有充足的證據顯示,例如股票期權等資本獎勵可以提高組織績效。

總結而言,經理人需要通過更大程度依賴科學證據來改變他們的思想和行為。收集優質數據以避免未經測試的理論。這對您的組織至關重要,因為遵循最佳實踐可以提高績效並給您帶來競爭優勢。利用技術進行數據和分析可以幫助決策,評估結果可以提供更清晰的透視當前策略的途徑。這種證據的基礎支持了更為明確,以數據驅動的方式進行組織變革和努力。

The Challenge of a Scaled Scrum Team

I was working on a project that utilized the Nexus framework and scaled Scrum. A Nexus serves as a development unit in scaled Scrum, forming a relationship or connection between people. Software development is already a difficult task, and it becomes even more challenging when multiple teams are working on the same product with numerous dependencies. Aside from grappling with various roles, artifacts, and events, I encountered three major challenges in my day-to-day work:

  1. The Singular Product Owner and Nexus Sprint Planning - According to the Scrum Guide, ultimate decision-making power lies with a single Product Owner. Multiple teams conduct their own sprint planning sessions after the Nexus Sprint Planning. This makes it challenging for the Product Owner to participate in each team's planning if they occur simultaneously. The Product Owner can't address domain knowledge questions or make prioritization decisions for multiple teams at the same time. If meetings are scheduled asynchronously, the Product Owner would waste significant time. Additionally, resources like a Scrum Master, Senior Architect, or designer may be shared among different teams. Some organizations even designate a group of Product Owners, complicating decision-making as no one has absolute authority over the scaled product.

  2. Challenges in Visualizing Product Backlog Refinement - New dependencies can arise, which need to be identified and minimized. Unfortunately, existing tools like JIRA and Trello don’t offer easy ways to visualize the progress or resolution of these dependencies. Scrum Masters may not fully grasp the complex technical implications, making it difficult to manage dependencies effectively.

  3. Reviewing Nexus Sprint Through the Lens of Velocity - Integration work is inevitable, and it can impact the team's Velocity. Since each team has its own estimation baseline and agenda, it's unclear who should take responsibility for overlapping work. Time-consuming integration tasks like setting up servers, automating tests, and resolving git code merge issues are crucial but may slow down the team's progress. These tasks may not be fully accounted for in story points, which can mislead senior management when they see a drop in Velocity. Additionally, even if each team completes their stories based on the Definition of Done, post-integration in the empirical world could introduce new issues, requiring additional cross-team discussions.

The Mindset of the Nexus Integration Team Is the Answer - The most important factor in managing the complexity and unpredictability of software development is having the right mindset. Meetings, tools, and shared work are merely symptoms of a more fundamental challenge: getting everyone on the team, including organizational leaders, to understand and embrace agility.

Have you worked in a scaled Scrum environment before, such as SAFe or LeSS? I welcome any comments and look forward to learning from your experiences.

面對規模化敏捷團隊的挑戰

我曾在一個使用了Nexus框架和規模化Scrum的項目上工作。一個Nexus被視為規模化Scrum中的開發單位,形成人與人之間的關聯或聯繫。軟件開發本身就是一個困難的任務,當多個團隊正在開發同一產品,並且有許多相依性時,這項任務變得更加困難。除了要面對各種角色,文物和事件,我在日常工作中遇到了三大挑戰:

  1. 唯一產品擁有者和Nexus衝刺規劃 - 根據Scrum指南,最終的決策權屬於一個單一的產品擁有者。多個團隊在Nexus衝刺規劃後進行自己的衝刺規劃。這使得產品擁有者在每個團隊的規劃中參與,如果他們同時進行,會面臨挑戰。產品擁有者不能在同一時間回答關於領域知識的問題,或為多個團隊做優先決定。如果會議時間不同步,產品擁有者就會浪費很多時間。此外,像Scrum Master,資深架構師或設計師等資源可能需要在不同的團隊之間共享。有些組織甚至設計一組產品擁有者,使決策變得複雜,因為沒有人對規模化產品具有絕對權威。

  2. 將產品待辦事項清單精煉可視化的挑戰 - 可能出現新的依賴性,需要識別並盡量減少。不幸的是,像JIRA和Trello這樣的工具並未提供簡單的方式以視覺化這些依賴性的進度或解決方法。Scrum Master可能無法充分理解複雜的技術含義,因此難以有效管理依賴性。

  3. 通過速度的角度審核Nexus Sprint - 整合工作是不可避免的,可能會影響團隊的速度。由於每個團隊都有自己的估計基準和議程,因此不清楚誰應該對重疊的工作負責。像設定伺服器、自動化測試和解決git代碼合併問題等耗時的整合任務都至關重要,但可能會拖慢團隊的進展。這些任務可能不在故事點數中完全列入,並可能在高級管理層看到速度下降時產生誤解。此外,即使每個團隊根據完成定義完成他們的故事,但在實證世界中的後期整合可能會引入新的問題,需要進行額外的跨團隊討論。

Nexus整合團隊的思維模式是答案 - 管理軟體開發的複雜性和不可預測性的最重要因素是具有正確的思維模式。會議、工具和共享工作只是更基本挑戰的症狀:讓團隊中的每一個人,包括組織領導者,理解並擁抱敏捷性。

你以前是否在規模化Scrum環境中工作過,比如SAFe或LeSS?歡迎你的評論,並期待從你的經驗中學習。

Internet Border Gateway Protocol (BGP)

This article explores the Internet Border Gateway Protocol (BGP), a standardized exterior gateway protocol designed for exchanging routing and reachability information among different Autonomous Systems (ASes) or Internet Service Providers (ISPs) on the Internet. Below, we detail the importance, capabilities, challenges, and solutions associated with this protocol.

1. The Border Gateway Protocol and its Functions

In January 1989, at the 12th Internet Engineering Task Force (IETF) meeting, Len Bosack, Kirk Lougheed, and Yakov Rekhter created BGP with the design goal of developing a protocol that could offer policy control, loop detection, and the scalability needed to support hundreds of thousands of networks through address aggregation techniques.

BGP serves as an inter-Autonomous System routing protocol, facilitating connections between ISPs. For example, Hutchison and China Mobile exchange Network Layer Reachability Information (NLRI). In an environment where the Internet lacks centralized control, these entities must exchange NLRI to integrate their autonomous networks. Each controls its own equipment and uses different intra-autonomous system routing protocols; they need to cooperate to exchange information about IP addresses associated with their customers.

The primary function of a BGP-speaking system has evolved to address this engineering and research problem: enabling information exchange between autonomous networks without centralized control. Packets sent to a service provider require table look-ups to determine their next destination, which could be on a completely different network on the other side of China. BGP serves as the foundational architecture for the global TCP/IP Internet.

Another key role of BGP is managing commercial issues. For instance, China Mobile might not want Hutchison to send excessive traffic, as it would incur additional costs. Different protocols operate within these autonomous networks, and the "best route" may differ depending on contracts and policies. BGP allows for flexibility in defining what constitutes the best route for different parties.

2. The Operations of BGP

The current version of BGP is Version 4, published as RFC 4271 in 2006. Unlike pure distance vector or link-state algorithms, BGP employs a path vector algorithm. It uses path information stored in the AS_PATH attribute to avoid traditional routing issues. Routing tables are traversed to reach the target network, providing loop avoidance. BGP also supports address aggregation, thereby significantly reducing the size of Core Internet Routing Tables.

When one Internet path fails, BGP offers network stability, enabling routers to quickly adapt and reroute packets. Each BGP router maintains a standard routing table used in conjunction with the Routing Information Base (RIB), continually updated as changes occur.

BGP updates routing table information only when changes occur. It lacks an automatic discovery mechanism, meaning peer connections must be established manually. The protocol uses an incremental update strategy to conserve bandwidth and processing power, relying on TCP for reliable transport.

3. Examples to Illustrate How ASes Can Learn About Internet Reachability

Consider a scenario with five ASes identified by unique 32-bit Autonomous System Numbers (ASNs), as shown below:

BGP enables routers within these ASes to learn multiple paths via internal and external BGP speakers. It selects the best path and installs it in the RIB. When a customer in the AS104 network wants to send data to the AS100 network, BGP helps routers within AS104 decide which path to take, updating reachability information accordingly.

BGP also provides for the management of trust and distrust among different service providers and is outlined in RFC 4271. It allows networks with common routing policies to be uniquely identified and is widely used in Internet backbones.

BGP makes best-path decisions based on current reachability, hop counts, and other path attributes. It can be configured to communicate an organization's routing preferences and has a mechanism for defining arbitrary tags, known as communities, to control route advertisement behavior by mutual agreement among peers.

4. BGP Packet Formats and Field Functions

BGP messages are transmitted over TCP connections. A message undergoes processing only after it is completely received. The maximum message size is 4096 octets, whereas the smallest permissible message consists of a 19-octet header without any data. Below, we highlight the functions of some of the fields:

4.1 Message Header Format

Marker: This 16-octet field is included for compatibility and must be set to all ones.

Length: This 2-octet unsigned integer represents the total length of the message, including the header, in octets. It helps in locating the Marker field of the next message in the TCP stream. The field value must always be greater than 19 and less than 4096. Padding with extra data after the message is prohibited; thus, the field must contain the smallest required value.

Type: This 1-octet unsigned integer specifies the message's type code. The type codes are: 1 — Open, 2 — Update, 3 — Notification, 4 — Keepalive.

4.2 Open Message Format

After establishing a TCP connection, both sides send an Open message as the first message. If the Open message is accepted, a Keepalive message confirming the Open is sent in response.

Version: This 1-octet unsigned integer indicates the protocol version number of the message.

My Autonomous System: This 2-octet unsigned integer specifies the sender's AS number.

Hold Time: This 2-octet unsigned integer suggests a value for the Hold Timer in seconds. Upon receiving an Open message, a BGP speaker calculates the hold timer by taking the lesser of its configured hold time and the received hold time. This time must be either 0 or at least 3 seconds. Connections may be rejected based on this time value.

BGP Identifier: This 4-octet unsigned integer identifies the sender's BGP Identifier. The value is determined at startup and remains consistent across all local interfaces and BGP peers.

Opt Param Len: This 1-octet unsigned integer shows the total length of the Optional Parameters field in octets. A zero value indicates that no Optional Parameters are present.

Optional Parameters (variable): This field contains a list of optional parameters, each encoded as follows:

  • Parameter Type: 1-octet field identifying individual parameters.
  • Parameter Length: 1-octet field specifying the length of the Parameter Value field in octets.
  • Parameter Value (variable): Interpreted based on the Parameter Type field's value.

The Open message's minimum length, including the header, is 29 octets.

4.3 Update Message Format

This format is used to exchange routing information between BGP peers, helping to build a graph that represents the relationships among various Autonomous Systems (AS). It identifies and eliminates routing loops and other anomalies in inter-AS routing.

An Update message serves to advertise feasible routes with common path attributes or to withdraw multiple unfeasible routes. It may both advertise a feasible route and withdraw multiple unfeasible routes simultaneously.

Withdrawn Routes Length (2 octets): Indicates the total length of the Withdrawn Routes fields; a value of 0 implies no routes are being withdrawn.

Withdrawn Routes (variable): Contains a list of IP address prefixes of the routes being withdrawn.

Length (1 octet): Specifies the length, in bits, of the IP address prefix; a value of 0 matches all IP addresses.

Prefix (variable): Contains an IP address prefix and the minimum number of trailing bits needed to align the field's end on an octet boundary.

Total Path Attributes Length (2 octets): Indicates the total length of the Path Attributes fields in octets. A value of zero signifies that neither the NLRI nor the Path Attribute fields are present.

Path Attributes (variable): A triplet consisting of <attribute type, attribute length, attribute value>. The attribute type is a 2-octet field that includes:

  • Attr. Flags: Various bits are used for different purposes, such as optional bit, transitive bit, partial bit, and Extended Length bit.
  • Attr. Type Code: Codes like Origin, AS_PATH, NEXT_HOP, MULTI_EXIT_DISC, LOCAL_PREF, ATOMIC_AGGREGATE, and AGGREGATOR specify different types of path attributes.

Network Layer Reachability Information (variable): Contains a list of IP address prefixes. Its length is not explicitly encoded but can be calculated using the formula:

( \text{Updated message length} - 23 - \text{Total Path Attributes Length} - \text{Withdrawn Routes Length} )

  • "Updated message length" is the value encoded in the fixed-size BGP header.
  • "Total Path Attributes Length" and "Withdrawn Routes Length" are variable parts of the update message.
  • 23 is the combined length of the fixed-size BGP header, the Total Path Attribute Length field, and the Withdrawn Routes Length field.

The reachability information is encoded as one or more 2-tuples, each having:

Length (1 octet): Indicates the length, in bits, of the IP address prefix. A value of 0 matches all IP addresses, with the prefix itself consisting of zero octets.

4. Packet Formats in BGP and Highlighting Functions of Some Fields

BGP messages are sent over TCP connections. A message is processed only after it has been entirely received. The maximum message size is 4096 octets, while the smallest permissible message consists of a 19-octet header without a data portion. Below, we highlight the functions of some fields:

4.1 Message Header Format
  • Marker: A 16-octet field included for compatibility, which must be set to all ones.
  • Length: A 2-octet unsigned integer that indicates the total length of the message, including the header, in octets. This helps locate the Marker field of the next message in the TCP stream. The value must always be greater than 19 and smaller than 4096. Padding with extra data after the message is not allowed.

  • Type: A 1-octet unsigned integer indicating the message's type code. The type codes are: 1—Open, 2—Update, 3—Notification, 4—Keepalive.

4.2 Open Message Format

After establishing a TCP connection, the first message each side sends is an Open message. If the Open message is acceptable, a Keepalive message confirming the Open is sent in return.

  • Version: A 1-octet unsigned integer that indicates the message's protocol version number.

  • My Autonomous System: A 2-octet unsigned integer indicating the sender's AS number.

  • Hold Time: A 2-octet unsigned integer indicating the proposed value for the Hold Timer in seconds. Upon receiving an Open message, a BGP speaker must calculate the value of the Hold Timer using the lesser of its configured hold time and the hold time received. The Hold Timer value must be either 0 or at least 3 seconds.

  • BGP Identifier: A 4-octet unsigned integer indicating the sender's BGP Identifier, set to an IP address assigned to that BGP speaker.

  • Opt Param Len: A 1-octet unsigned integer indicating the total length of the Optional Parameters field in octets.

  • Optional Parameters (variable): A list of optional parameters, each encoded as a triplet: Parameter Type, Parameter Length, Parameter Value.

The minimum length of the Open message, including the header, is 29 octets.

4.3 Update Message Format

This message type transfers routing information between BGP peers. Update messages can advertise feasible routes or withdraw multiple unfeasible routes. An Update message can simultaneously advertise a feasible route and withdraw multiple unfeasible routes.

  • Withdrawn Routes Length (2 octets): Indicates the total length of Withdrawn Routes fields. A value of 0 means no routes are being withdrawn.

  • Withdrawn Routes (variable): Contains a list of IP address prefixes for routes being withdrawn.

  • Length (1 octet): Indicates the length in bits of the IP address prefix. A 0 means a prefix matching all IP addresses.

  • Prefix (variable): Contains an IP address prefix, followed by enough trailing bits to ensure the field ends on an octet boundary.

  • Total Path Attributes Length (2 octets): Indicates the total length of the Path Attributes fields in octets. A value of zero means that neither the NLRI nor the Path Attribute field is present.

  • Path Attributes (variable): A triple consisting of attribute type, attribute length, and attribute value.

Additional details are provided for individual attribute types like Attr. Flags, Attr. Type Code, and Network Layer Reachability Information.

The minimum length of an Update message is 23 octets: 19 for the fixed header + 2 for the withdrawn routes length + 2 for the total path attribute length.

4.4 Keepalive Message Format

BGP doesn't use any TCP-based keep-alive mechanisms to determine if peers are reachable. Instead, Keepalive messages are exchanged frequently enough to prevent the Hold Timer from expiring. The maximum reasonable time between Keepalive messages is one-third of the Hold Time interval. Keepalive messages should not be sent more often than once per second.

4.5 Notification Message Format

A Notification message is sent when an error is detected. The BGP connection is immediately closed after sending this message. The Notification message includes the following fields:

  • Error Code (1-octet): Indicates the type of error.

  • Error Subcode (1-octet): Provides additional information about the error.

  • Data (variable): Used for diagnosing the reason for the notification.

The minimum length of a Notification message is 21 octets.

5. Instability Problems in BGP and Proposed Solutions

Instability is defined as rapid changes in network reachability and topology information. Various issues such as software bugs, TCP attacks, or congestion can lead to loss of service, wasteful utilization of network resources, and degraded performance for Quality of Service (QoS)-demanding applications.

One classic problem in BGP is known as the "black-hole phenomenon." An incorrect manual configuration can cause a BGP router to improperly announce routes through its Autonomous System (AS), leading other BGP routers to update their routing tables accordingly. This results in a massive amount of traffic being forwarded to that AS, causing significant packet loss and ultimately, network congestion.

Another symptom of instability is the disappearance of an existing route, termed "flapping" if the route reappears shortly thereafter. Flapping occurs when a router sends a routing update and then withdraws it shortly afterward. This forces peer routers to propagate and then withdraw updates, affecting the performance of the network and potentially causing transient loss of connectivity.

Internal congestion within an AS can also lead to instability by causing the TCP connections between two BGP routers to time out.

A robust BGP implementation should ensure that instability in a subset of routes does not affect the router's advertisements or forwarding of stable routes. Instability should not be caused by peers with varying levels of stability or different processing speeds. The impact of unstable peers on the network's convergence time should be limited.

One proposed solution is route flap damping. This prevents heavy processing loads on routers, which could otherwise delay updates. Route flaps are exponentially decayed to mitigate denial-of-service attacks.

6. Security Concerns in BGP and Enhancements

BGP is susceptible to various attacks due to the lack of message integrity and authentication. Communications between BGP peers are vulnerable to both active and passive wiretapping. Unauthorized access to a router can result in the alteration of its software, configuration information, and routing databases, transforming the router into a hostile entity.

Another significant vulnerability stems from the underlying transport protocol, TCP. BGP is susceptible to the same types of attacks that plague TCP, such as SYN flooding, which can exhaust server resources like memory and bandwidth.

Attackers can also disrupt TCP connections to impersonate legitimate peer routers. Since the RFC-defined mechanism does not provide peer-entity authentication, these connections may be susceptible to replay attacks, leading to the delivery of spoofed BGP messages.

Attackers could also generate false route flaps to cause a victim’s prefix to be damped. To mitigate this, parameters should be adjusted to more conservative values, reducing risk and partially countering false flap attacks.

To improve security further, each protected peer should have a unique key for communication. Using the same key for multiple peers increases the risk of compromising one router and adversely affecting others.

Lastly, keys used for MAC computation should be rotated periodically, ideally every 90 days, to minimize the risks associated with key compromise or successful cryptanalytic attacks. Additionally, keys should be selected to be difficult for attackers to guess.

網際網路邊界閘道協定(BGP)

本文章探討網際網路邊界閘道協定(BGP),這是一種標準化的外部閘道協定,設計用於在互聯網上的不同自治系統(ASes)或網際網路服務提供商(ISP)之間交換路由和可達性資訊。以下,我們詳細介紹了與此協定相關的重要性、能力、挑戰和解決方案。

1. 邊界閘道協定及其功能

1989年1月,在第12次網際網路工程任務組(IETF)會議上,Len Bosack、Kirk Lougheed和Yakov Rekhter創造了BGP,其設計目標是開發一種能夠提供政策控制、迴路檢測以及通過地址聚合技術支持數十萬個網路的協定。

BGP作為一種自治系統間的路由協定,便利了ISPs之間的連接。例如,和記黃埔和中國移動交換網路層可達性資訊(NLRI)。在互聯網缺乏集中控制的環境中,這些實體必須交換NLRI以整合他們的自治網路。每一個都控制自己的設備並使用不同的自治系統內部路由協定;他們需要合作來交換與他們的客戶相關的IP地址資訊。

一個使用 BGP 的系統的主要功能已演變為解決這個工程和研究問題:使自治網路之間能交換資訊,而無需集中式控制。發送到服務提供商的數據包需要進行查找才能決定下一個目的地,可能是中國另一邊的完全不同的網絡。BGP是全球 TCP/IP 網路的基本架構。

BGP的另一個重要角色是管理商業問題。例如,中國移動可能不希望和記黃埔發送過量的流量,因為這將增加額外的成本。這些自治網絡內部運行著不同的協定,「最佳路徑」可能會根據合同和政策而有所不同。BGP提供了靈活性,可以定義對不同方來說什麼是最佳路徑。

2. BGP的運作

BGP的當前版本是版本4,於2006年以RFC 4271的形式出版。BGP使用一種路徑向量算法,而不是純粹的距向量或連接狀態算法。它使用存儲在AS_PATH屬性中的路徑資訊來避免傳統路由問題。路由表被遍歷以到達目標網絡,從而提供迴路避免。BGP還支持地址聚合,從而大大減少了核心互聯網路由表的大小。

當一條互聯網路徑失效時,BGP提供了網路穩定性,使路由器能夠快速適應和重新路由數據包。每個BGP路由器都維護一個標準路由表,該表與路由資訊庫(RIB)一起使用,並在變化發生時不斷更新。

BGP只在變化發生時更新路由表資訊。它缺少自動發現機制,這意味著必須手動建立對等連接。該協定使用一種增量更新策略,以節省帶寬和處理能力,依賴TCP來提供可靠的傳輸。

3. 舉例說明ASes如何了解網際網路的可達性

可以假設我們有五個由唯一的32位自治系統號(ASN)標識的ASes,如下所示:

BGP允許這些ASes內的路由器通過內部和外部的BGP說明者來學習多條路徑。它選擇最佳路徑並將其安裝在RIB中。當AS104網絡中的一個客戶希望將數據發送到AS100網絡時,BGP幫助AS104內的路由器決定哪條路徑走,並相應地更新可達性資訊。

BGP還提供了對不同服務提供商之間的信任和不信任的管理,並且在RFC 4271中進行了描述。它允許具有共同路由政策的網絡能夠被唯一的標識,並且被廣泛地用在互聯網的骨幹網絡上。

BGP確定最佳路徑的決策依賴於當前的可達性、跳數和其他路徑屬性。它可以被配置為告知一個組織的路由偏好,並且有一個定義任意標簽(即社區)的機制,以控制經過對等體之間的共同協議的路由廣告行為。

4. BGP包格式和欄位函數

BGP消息通過TCP連接進行傳輸。只有在消息完全接收後才進行處理。消息的最大尺寸為4096字節,而最小允許的消息由一個19字節的頭部組成,而沒有任何數據。以下我們突出了一些欄位的功能:

4.1 消息頭部格式

標記:這是一個16字節的欄位,用於相容性,必須設置為全1。

長度:這是一個2字節的無符號整數,表示消息中包括頭部在內的總長度,以字節為單位。它有助於在TCP流中找到下一條消息的標記欄位。欄位值必須始終大於19並小於4096。消息後面不能填充額外的數據,因此該欄位必須包含最小的必需值。

類型:這是一個1字節的無符號整數,指定消息的類型代碼。類型代碼有:1-Open、2-Update、3-Notification、4-Keepalive。

4.2 Open消息格式

建立TCP連接後,雙方首先發送的消息是Open消息。如果Open消息是可以接受的,則回發送一個確認Open的Keepalive消息。

版本:這是一個1字節的無符號整數,表示消息的協定版本號。

我的自治系統:這是一個2字節的無符號整數,指定發件者的AS號碼。

保持時間:這是一個2字節的無符號整數,表明在秒中的保持計時器的值。在收到一條Open消息後,BGP講話者透過取其配置的保持時間和收到的保持時間中的較小者來計算保持計時器。此時間必須為0 或 至少為3秒。可能會根據此時間值拒絕連接。

BGP標識符:這是一個4字節的無符號整數,標識發件人的BGP標識符。該值在啟動時確定,並在所有本地接口與BGP對等方保持一致。

Opt Param Len:這是一個1字節的無符號整數,顯示可選引數欄位的總長度,以字節為單位。零值表示沒有提供可選引數。

可選參數(變量):此欄位包含一個參數列表,每個參數分別編碼如下:

  • 參數類型:1字節欄位用於識別個別參數。
  • 參數長度:1字節欄位指定參數值欄位的長度,以字節為單位。
  • 參數值(變量):根據參數類型欄位的值來詮釋。

Open消息的最小長度(包括頭部)為29個字節。

4.3 Update消息格式

此格式用於在BGP對等體之間交換路由資訊,有助於構建表示各種自治系統(AS)之間關係的圖。它通過識別並消除路由迴路和其他的自治系統間路由異常。

Update消息可以用來廣告具有共同路徑屬性的可行路徑,或撤銷多條不可行的路徑。它可以在同時廣告一條可行路徑和撤銷多條不可行路徑。

撤銷的路徑長度(2個字節):指示撤銷路徑欄位的總長度;值為0表示沒有路徑被撤銷。

撤銷的路徑(變量):包含被撤銷路徑的IP地址前綴的列表。

長度(1個字節):以位為單位指定IP地址前綴的長度;值為0與所有IP地址的匹配。

前綴(變量):包含一個IP地址前綴,以及為在字節邊界上對齊欄位結尾需要的最少尾隨位數。

總路徑屬性長度(2個字節):指示以字節為單位的路徑屬性欄位的總長度。值為0表示沒有 NLRI 或 path 屬性欄位存在。

路經屬性(可變):由<屬性類型,屬性長度,屬性值>組成的 3 元組。 屬性類型是一個 2 字節的欄位,其中包括:

  • 屬性標誌:各種位用於不同的目的,如選擇位、轉移位、部分位和擴展長度位。
  • 屬性類型代碼:如原始碼、AS_PATH、NEXT_HOP、MULTI_EXIT_DISC、LOCAL_PREF、原子聚合和聚合器指定了不同類型的路徑屬性。

網路層可達性資訊(變量):包含一個 IP 地址前綴的列表。其長度並不直接編碼,但可以使用以下式子計算:

( \text{更新消息長度} - 23 - \text{路徑屬性長度總計} - \text{撤銷路徑長度} )

  • 「更新消息長度」是固定大小的BGP首部中編碼的值。
  • 「路徑屬性長度總計」和「撤銷路徑長度」是更新消息的變動部分。
  • 23是固定大小的BGP頭部、路徑屬性長度和撤銷路徑長度的總和。

達性資訊是以一個或多個2元組編碼,每個都有:

長度(1個字節):以位為單位指出 IP 地址前綴的長度。值為0與所有 IP 地址的匹配,自身前綴包含零個字節。

4. 在BGP中的包格式及突出一些欄位的功能

BGP消息通過TCP連線發送。僅在接收到整個消息後才進行處理。消息的最大尺寸為4096個八位組,而最小合理的消息由19個八位組的標頭組成,不含任何數據。以下,我們突出了某些欄位的功能:

4.1 消息標頭格式
  • 標記:這是一個16個八位組的欄位,為了與過去的協議版本相容,必須設定為全為一。

  • 長度:這是一個2個八位組的無號整數,表示包含標頭在內的消息的總長度,單位為八位組。須以此欄位的值間接找出TCP資料流中下一個消息的標記欄位。欄位值必須永遠大於19且小於4096。禁止在消息後面填充額外的數據,因此這個欄位的值必須只含最小所需的值。

  • 類型:這是一個單個八位組無號整數,指定了消息的類型碼。類型碼為:1-Open、2-Update、3-Notification、4-Keepalive。

4.2 Open消息格式

在建立TCP連線後,每一方首先發送的消息是一條open消息。如果收到的open消息可以被接受,就會回應一條確認接收open消息的keepalive消息。

  • 版本:這是一個單個八位組無號整數,顯示了消息的協議版本號。

  • 我的自治系統:這是一個2個八位組無號整數,表明了發送者的AS編號。

  • 保持時間:這是一個2個八位組無號整數,表示了保持計時器的值建議,單位為秒。在收到open消息時,一個BGP有聲人應當通過取配置的保持時間和已接收到的保持時間中的最小值來計算保持計時器。此時間必

Pseudo-Scrum - A Hybrid of Waterfall and Agile

I have something to tell you: you're not truly agile. You may have gone through the motions, performing all the scrum rituals like stand-ups, demos, and retrospectives. You may even have all the requisite tools like JIRA, user stories, and a scrum board. However, if the mindset isn't right, something fundamental is still missing. Here's why:

You Have a Detailed Plan

You're adhering to a strict year-long deadline. Scrum teams calculate velocity based on estimates made during sprint planning. So, how can you expect the scrum team to align with top management's best guesses? When the roadmap is fixed, the scope is unchanging, and the release plan is impractical, you're actually following a waterfall model.

Absence of a True Scrum Master

You may have a Scrum Master on your org chart, but what's their actual role? Often, the person isn't a full-time Scrum Master but a project manager, product owner, or senior developer who isn't wholly committed to the role. When the Scrum Master is juggling multiple responsibilities, things start to derail. Even if you do have a dedicated Scrum Master, they may not be able to address real impediments due to technical complexities or constraints beyond their job description.

No Designated Product Owner

Someone needs to be in charge of the product, but often that person is preoccupied with other priorities. Without a clear vision and product ownership, feature development may go awry. This is particularly true when requirements are dictated by external senior directors, leading to wasted development efforts. While the product owner should make these decisions, few are willing to take the risks and many are unsure of what they actually want.

Lack of a Budgeting Strategy

Story points are not a substitute for budgeting. When you manipulate estimates to secure more funds and time, or negotiate downward to meet budget constraints, you lose sight of the team's true velocity. Traditional accounting methods are also not compatible with agile development. Skimping on budget often leads to team burnout without achieving the intended outcomes.

My Take on the Agile Manifesto

Here's how I interpret the Agile Manifesto in my own words: Prioritize responsiveness to change over adhering to a strict roadmap set by senior management. Value individuals and interactions over office politics. Emphasize working software over endless, pointless meetings. Favor customer collaboration over budget negotiations. Achieving this is no simple task, but it's the only way for bureaucratic organizations to adapt and thrive in the digital age.