diff --git a/categories/project-delivery/rules-to-better-scaled-agile-framework.md b/categories/project-delivery/rules-to-better-scaled-agile-framework.md index e232921a55b..af3f3ac28da 100644 --- a/categories/project-delivery/rules-to-better-scaled-agile-framework.md +++ b/categories/project-delivery/rules-to-better-scaled-agile-framework.md @@ -7,13 +7,11 @@ experts: https://www.ssw.com.au/people/?skill=Scrum consulting: https://www.ssw.com.au/consulting/scrum index: - use-safe-to-align-multiple-scrum-teams -- prioritize-value-streams-over-individual-projects -- establish-a-Lean-Agile-mindset-across-all-teams -- implement-DevOps-practices-for-continuous-delivery -- utilize-a-release-train -- involve-stakeholders-in-pi-planning -- measure-success-using-lean-agile-metrics -- regularly-inspect-and-adapt-at-scale -- foster-a-culture-of-relentless-improvement -- ensure-compliance-and-governance-without-compromising-agility +- do-you-implement-DevOps-practices-for-continuous-delivery +- do-you-utilize-a-release-train +- do-you-involve-stakeholders-in-pi-planning +- do-you-measure-success-using-lean-agile-metrics +- do-you-regularly-inspect-and-adapt-at-scale +- do-you-foster-a-culture-of-relentless-improvement +- do-you-ensure-compliance-and-governance-without-compromising-agility --- diff --git a/categories/software-engineering/rules-to-better-large-builds-in-visual-studionet.md b/categories/software-engineering/rules-to-better-large-builds-in-visual-studionet.md index b641aea8cdb..eb100c66f99 100644 --- a/categories/software-engineering/rules-to-better-large-builds-in-visual-studionet.md +++ b/categories/software-engineering/rules-to-better-large-builds-in-visual-studionet.md @@ -3,9 +3,11 @@ type: category title: SSW Rules to Better Large Builds in Visual Studio.NET guid: 13a3a376-6df2-4674-bcc7-cb0f6f69102d uri: rules-to-better-large-builds-in-visual-studionet -archivedreason: The better ways to manage these builds if by using Clean Architecture and Nuget package manager. index: - desired-features-of-structuring-large-builds-in-vsnet +- method-1-using-project-reference-assemblies-within-vsnet +- method-2-using-file-reference-assemblies-within-vsnet - scenarios-of-building-the-system - --- + +If you still need help, visit [Microsoft Customer Relationship Management CRM | SSW Consulting Sydney, Brisbane & Melbourne](https://www.ssw.com.au/ssw/Consulting/MicrosoftCRM.aspx) and book in a consultant. \ No newline at end of file diff --git a/rules/do-you-know-the-common-design-patterns-part-1/rule.md b/rules/do-you-know-the-common-design-patterns-part-1/rule.md index 75f70d50d52..cfaffe8c215 100644 --- a/rules/do-you-know-the-common-design-patterns-part-1/rule.md +++ b/rules/do-you-know-the-common-design-patterns-part-1/rule.md @@ -12,42 +12,40 @@ authors: url: https://ssw.com.au/people/adam-stephensen - title: Damian Brady url: https://ssw.com.au/people/damian-brady -- title: Dhruv Mathur - url: https://ssw.com.au/people/dhruv-mathur related: [] redirects: - do-you-know-the-common-design-patterns-(part-1) --- -Design patterns are useful for ensuring [common design principles](/do-you-know-the-common-design-principles-part-1) are being followed.  They help make your code consistent, predictable, and easy to maintain. +Design patterns are useful for ensuring [common design principles](/do-you-know-the-common-design-principles-part-1)are being followed.  They help make your code consistent, predictable, and easy to maintain. There are a very large number of Design Patterns, but here are a few important ones. -* **IOC** | [Inversion of Control](http://en.wikipedia.org/wiki/Inversion_of_control) -In this pattern, control over the instantiation and management of objects is inverted, meaning that these responsibilities are handed over to an external framework like a DI container instead of being managed by the classes themselves. This separation enhances flexibility and decouples all the classes in the system. +- **IOC** | [Inversion of Control](http://en.wikipedia.org/wiki/Inversion_of_control) +Control of the object coupling is the responsibility of the caller, not the class. -* **DI** | [Dependency Injection](http://en.wikipedia.org/wiki/Dependency_injection) -DI is a form of IoC where dependencies are provided to objects rather than created by them, one instance of the dependency can be used by many. This pattern also reduces dependency coupling between components since the instantiation is handled externally, making the system easier to manage and test. +- **DI** | [Dependency Injection](http://en.wikipedia.org/wiki/Dependency_injection) +Dependencies are "injected" into the dependent object rather than the object depending on concretions. -* **Factory** | [Factory Pattern](http://en.wikipedia.org/wiki/Factory_pattern) -It is a creational pattern that deals with the problem of creating objects without specifying the exact class of object that will be created. This is done by defining an interface or abstract class for creating an object, which subclasses decide how to implement. This pattern helps in managing and maintaining code by encapsulating how any object is created. +- **Factory** | [Factory Pattern](http://en.wikipedia.org/wiki/Factory_pattern) +Object creation is handled by a "factory" that can provide different concretions based on an abstraction. -* **Singleton** | [Singleton Pattern](http://en.wikipedia.org/wiki/Singleton_pattern) -This ensures that a class has only one instance and provides a global point of access to it. This pattern is used to control access to resources that are shared throughout an application, like a configuration file or connection to a database. This ensures that only a single shared instance of a class is consumed by the application. +- **Singleton** | [Singleton Pattern](http://en.wikipedia.org/wiki/Singleton_pattern) +Instantiation of an object is limited to one instance to be shared across the system. -* **Repository** | [Repository Pattern](http://msdn.microsoft.com/en-us/library/ff649690.aspx) -A repository abstracts the data layer, providing a collection-like interface for accessing domain objects. It centralizes common data access functionalities and promotes a more organized data access architecture. By isolating the data layer, this pattern ensures that changes to the database access code are minimized when changes to the business logic or database specifics occur. +- **Repository** | [Repository Pattern](http://msdn.microsoft.com/en-us/library/ff649690.aspx) +A repository is used to handle the data mapping details of CRUD operations on domain objects. -* **Unit of Work** | [Unit of Work Pattern](http://msdn.microsoft.com/en-us/magazine/dd882510.aspx) -It is a way to keep track of everything you do during a transaction that can affect the database. When it's time to commit the transaction, it figures out everything that needs to be done to alter the database as a result of your work. This pattern is crucial for maintaining the consistency of data within the boundaries of a transaction. +- **Unit of Work** | [Unit of Work Pattern](http://msdn.microsoft.com/en-us/magazine/dd882510.aspx) +A way of handling multiple database operations that need to be done as part of a piece of work. -* **MVC** | [Model View Controller](http://en.wikipedia.org/wiki/Model%e2%80%93view%e2%80%93controller) -It is an architectural pattern that separates an application into three main logical components: the model, the view, and the controller. Each of these components handles different aspects of the application's data, user interface, and control logic, respectively. This separation helps manage complexity in large applications. +- **MVC** | [Model View Controller](http://en.wikipedia.org/wiki/Model%e2%80%93view%e2%80%93controller) +An architectural pattern separating domain logic (Controller) from how domain objects (Models) are presented (View). -* **MVP** | [Model View Presenter](http://en.wikipedia.org/wiki/Model_View_Presenter) -This pattern is a simpler version of MVC designed for modern applications where the user interface (the view) just displays information and responds to user inputs. In MVP, a middle-man called the presenter handles all the decision-making behind the scenes. It takes care of updating the view and reacting to user actions, making the view very simple and straightforward. This setup makes it easier to test the user interface because the view itself doesn't contain any complex logic—it just shows what the presenter tells it to. +- **MVP** | [Model View Presenter](http://en.wikipedia.org/wiki/Model_View_Presenter) +An architectural pattern deriving from MVC where the View handles UI events instead of the Controller. -By leveraging these design patterns, developers can solve complex problems more efficiently and ensure that their applications are robust, scalable, and easy to maintain. It is assumed knowledge that you know these design patterns. If you don't, read about them on the sites above or watch the [PluralSight videos on Design Patterns.](https://www.pluralsight.com/paths/design-patterns-in-c) +Choose patterns wisely to improve your solution architecture. It is assumed knowledge that you know these design patterns. If you don't, read about them on the sites above or watch the [PluralSight videos on Design Patterns.](https://www.pluralsight.com/paths/design-patterns-in-c) diff --git a/rules/do-you-know-the-common-design-patterns-part-2-example/rule.md b/rules/do-you-know-the-common-design-patterns-part-2-example/rule.md index 927795d5b07..f94c1ab94a3 100644 --- a/rules/do-you-know-the-common-design-patterns-part-2-example/rule.md +++ b/rules/do-you-know-the-common-design-patterns-part-2-example/rule.md @@ -14,8 +14,6 @@ authors: url: https://ssw.com.au/people/adam-stephensen - title: Eric Phan url: https://ssw.com.au/people/eric-phan -- title: Dhruv Mathur - url: https://ssw.com.au/people/dhruv-mathur related: - do-you-name-your-dependencies-to-avoid-problems-with-minification redirects: @@ -23,93 +21,36 @@ redirects: --- -Appropriate use of design patterns can ensure your code is maintainable and easy to read. +Appropriate use of design patterns can ensure your code is maintainable. -### Dependency Injection +Always code against an interface rather than a concrete implementation. Use dependency injection to control which implementation the interface uses. -We should implement Inversion of Control by using the Dependency Injection pattern to decrease the direct coupling of our classes. Seprating the creation of objects or instances of services from thier usage allows for more flexibility and testability. +For example, we could implement Inversion of Control by using the Dependency Injection pattern to decrease the coupling of our classes. -Lets look at an example, in this code, our controller is tightly coupled to the ExampleService and as a result, there is no way to unit test the controller. +In this code, our controller is tightly coupled to the ExampleService and as a result, there is no way to unit test the controller. [This example is from the blog: http://www.devtrends.co.uk/blog/how-not-to-do-dependency-injection-the-static-or-singleton-container] -```csharp -public class HomeController -{ - private readonly IExampleService _service; +`public class HomeController{ private readonly IExampleService _service; public HomeController() { _service = new ExampleService(); } public ActionResult Index() { return View(_service.GetSomething()); }}` - public HomeController() - { - _service = new ExampleService(); - } +Figure: Bad example - Controller coupled with ExampleService - public ActionResult Index() - { - return View(_service.GetSomething()); - } -} -``` +`public class HomeController{ private readonly IExampleService _service; public HomeController() { _service = Container.Instance.Resolve(); } public ActionResult Index() { return View(_service.GetSomething()); }}` -**❌ Figure: Bad example - Controller coupled with ExampleService.** - -```csharp -public class HomeController -{ - private readonly IExampleService _service; - - public HomeController() - { - _service = Container.Instance.Resolve(); - } - - public ActionResult Index() - { - return View(_service.GetSomething()); - } -} -``` - -**❌ Figure: Bad example - 2nd attempt using an Inversion of Control container but \*not\* using dependency injection. A dependency now exists on the Container.** +Figure: Bad example - 2nd attempt using an Inversion of Control container but \*not\* using dependency injection. A dependency now exists on the Container. This is bad code because we removed one coupling but added another one (the container). -```csharp -public class HomeController -{ - private readonly IExampleService _service; - - public HomeController(IExampleService service) - { - _service = service; - } - - public ActionResult Index() - { - return View(_service.GetSomething()); - } -} -``` - -**✅ Figure: Good example - code showing using dependency injection. No static dependencies.** +`public class HomeController{ private readonly IExampleService _service; public HomeController(IExampleService service) { _service = service; } public ActionResult Index() { return View(_service.GetSomething()); }}` +Figure: Good example - code showing using dependency injection. No static dependencies. +Even better, use Annotate so you can enlighten the developer. -### Code against Interfaces - -Always code against an interface rather than a concrete implementation. Use dependency injection to control which implementation the interface uses. By doing this you create a contract for that service which the rest of the codebase has to adhere to. - -By creating an interface for each service and programming against the interface, you can easily swap out the implementation of the service without changing the code that uses the service. - -It is important to also control the scope of the injection. For example, in ASP.NET 8 application you have the option to register the concrete implementation in the DI container either as a singleton, scoped, or transient service. Each of them will have a different lifetime in the application and should be set as per the requirement. - -![](Code against interfaces - bad.png) -**❌ Figure: Bad Example - Referencing the concrete EF context** - -This is bad code because now the controller is directly dependent on the implementation of the EF context. This also increase the effort for unit testing. +![bad.png](Code against interfaces - bad.png) +**Figure: Bad Example - Referencing the concrete EF context** ![](Code against interfaces - good.png) -**✅ Figure: Good Example - Programming against the interface** - -This is good because now you can test the controller and the services independently. Also the controller only talks to the service through the functionality exposed by the interface, enforcing encapsulation. +**Figure: Good Example - Programming against the interface** It is important to know when the use of a pattern is appropriate. Patterns can be useful, but they can also be harmful if used incorrectly. diff --git a/rules/dones-do-your-dones-include-a-url/rule.md b/rules/dones-do-your-dones-include-a-url/rule.md index 0a997f2a78e..13c0fd74e19 100644 --- a/rules/dones-do-your-dones-include-a-url/rule.md +++ b/rules/dones-do-your-dones-include-a-url/rule.md @@ -21,7 +21,7 @@ guid: ed0fa76a-418b-4b59-9e3b-2544c08b910e --- -Always include the relevant URL to your emails, like when you want to request or just made a change to a webpage or document. This way people can easily check the details of the tasks. This is especially important for ["Done" emails](/reply-done-and-delete-the-email). +Always include the relevant URL to your emails, like when you want to request or just made a change to a webpage or document. This way people can easily check the details of the tasks. This is especially important for ["Done" emails](reply-done-and-delete-the-email). If you are using a task tracking system like **Azure DevOps**, **GitHub**, or Jira, also include the link to the PBI/Issue/task. @@ -57,7 +57,7 @@ Figure: Good example - Easy to check what was done + includes the context of the Before declaring a task 'done' with a link, ensure that your changes are live and accessible for verification. -#### Scenario: ❌ PR waiting for approval +##### ❌ **Scenario:** PR waiting for approval ::: greybox Done - ssw.com.au/rules/dones-is-your-inbox-a-task-list-only @@ -83,7 +83,7 @@ Done - ssw.com.au/rules/dones-is-your-inbox-a-task-list-only Figure: OK example - Links are included, changes are not live yet, but people are aware ::: -#### Scenario: ✅ PR approved and merged +##### ✅ **Scenario:** PR approved and merged ::: greybox Done - ssw.com.au/rules/dones-is-your-inbox-a-task-list-only @@ -96,7 +96,7 @@ Figure: Good example - Final link is included and changes are live to be checked It is a common problem where someone CC'd will not have permissions to see a file and the sender knows this. You should still add the link but inform the recipient. -#### Scenario: ❌ Recipient doesn't have permissions +**Scenario:** Recipient doesn't have permissions. ::: greybox Done - onedrive.live.com/file-name.xls diff --git a/rules/ensure-compliance-and-governance-without-compromising-agility/rule.md b/rules/ensure-compliance-and-governance-without-compromising-agility/rule.md index 18fa1592e1c..b171e4452b6 100644 --- a/rules/ensure-compliance-and-governance-without-compromising-agility/rule.md +++ b/rules/ensure-compliance-and-governance-without-compromising-agility/rule.md @@ -1,7 +1,7 @@ --- type: rule title: Do you ensure compliance and governance without compromising agility? -uri: ensure-compliance-and-governance-without-compromising-agility +uri: do-you-ensure-compliance-and-governance-without-compromising-agility authors: - title: Gert Marx url: https://ssw.com.au/people/gert-marx @@ -9,7 +9,6 @@ authors: url: https://ssw.com.au/people/ulysses-maclaren related: redirects: - - do-you-ensure-compliance-and-governance-without-compromising-agility created: 2023-10-13T17:56:00.000Z archivedreason: null guid: 684c1885-d097-4e9c-8e68-0998a81ff940 @@ -30,19 +29,19 @@ Achieving this balance means establishing processes and guidelines that provide ### Benefits of Balancing Compliance and Agility -#### Risk Mitigation +**Risk Mitigation** Balancing compliance and agility doesn't just help the organization meet its legal and regulatory requirements – it's a comprehensive risk mitigation strategy. By ensuring adherence to these standards, the organization not only avoids legal pitfalls and financial penalties but also safeguards its reputation and stakeholder trust. This aspect of risk mitigation is crucial in today’s business environment, where non-compliance can have far-reaching consequences. Simultaneously, maintaining agility within this compliance framework ensures that the organization remains dynamic and responsive, capable of quickly adapting to changing regulations and market conditions. Thus, this balance acts as a dual shield, protecting the organization legally and competitively. -#### Operational Efficiency +**Operational Efficiency** Striking a balance between compliance and agility paves the way for enhanced operational efficiency. In this framework, teams are empowered to be agile and responsive, navigating their tasks and projects with the necessary freedom to innovate and adapt. At the same time, they are not encumbered by excessive controls or rigid procedures that can stifle creativity and responsiveness. This equilibrium ensures that the agility of teams is not sacrificed in the name of compliance. Instead, it fosters an environment where teams can operate efficiently within a well-defined, yet flexible, governance structure. The result is a streamlined workflow that upholds compliance standards without dampening the agile spirit that drives productivity and continuous improvement. -#### Business Alignment +**Business Alignment** Balancing compliance with agility plays a critical role in aligning both governance structures and agile practices with the overarching business objectives. This alignment is key to ensuring that every regulatory measure and agile initiative not only coexists but also collaboratively drives the organization towards its strategic goals. diff --git a/rules/foster-a-culture-of-relentless-improvement/rule.md b/rules/foster-a-culture-of-relentless-improvement/rule.md index d104dd9d618..6912460be96 100644 --- a/rules/foster-a-culture-of-relentless-improvement/rule.md +++ b/rules/foster-a-culture-of-relentless-improvement/rule.md @@ -1,7 +1,7 @@ --- type: rule title: Do you foster a culture of relentless improvement? -uri: foster-a-culture-of-relentless-improvement +uri: do-you-foster-a-culture-of-relentless-improvement authors: - title: Gert Marx url: https://ssw.com.au/people/gert-marx @@ -9,42 +9,31 @@ authors: url: https://ssw.com.au/people/ulysses-maclaren related: redirects: - - do-you-foster-a-culture-of-relentless-improvement created: 2023-10-13T17:53:00.000Z archivedreason: null guid: 3f74f7c0-2db9-4dc6-96a4-dbddca7fa5bd --- -Your teams are ticking all the right boxes, delivering on their commitments efficiently. But beneath this smooth operation, there's a subtle yet crucial challenge emerging: the pace of innovation is dwindling, and a sense of complacency is settling in. In such times, merely maintaining the status quo isn't enough. - -To reignite the spark of innovation and push the boundaries of what's possible, it's essential to foster a culture of relentless improvement. This isn’t about fixing what's broken; it's about constantly elevating what's working to new heights. +Your teams are ticking all the right boxes, delivering on their commitments efficiently. But beneath this smooth operation, there's a subtle yet crucial challenge emerging: the pace of innovation is dwindling, and a sense of complacency is settling in. In such times, merely maintaining the status quo isn't enough. To reignite the spark of innovation and push the boundaries of what's possible, it's essential to foster a culture of relentless improvement. This isn’t about fixing what's broken; it's about constantly elevating what's working to new heights. ## What is a Culture of Relentless Improvement? -A culture of relentless improvement goes beyond a set of practices; it's a fundamental mindset that permeates every layer of an organization. In this culture, teams are not just encouraged but expected to continuously seek out ways to enhance their processes, refine their products, and elevate their performance. It’s a mindset where 'good enough' is never the endpoint, but a stepping stone to 'even better.' - -This relentless pursuit of excellence ensures that improvement is seen as an ongoing journey rather than a destination, driving innovation and keeping the organization dynamic and competitive. +A culture of relentless improvement goes beyond a set of practices; it's a fundamental mindset that permeates every layer of an organization. In this culture, teams are not just encouraged but expected to continuously seek out ways to enhance their processes, refine their products, and elevate their performance. It’s a mindset where 'good enough' is never the endpoint, but a stepping stone to 'even better.' This relentless pursuit of excellence ensures that improvement is seen as an ongoing journey rather than a destination, driving innovation and keeping the organization dynamic and competitive. ### Benefits of Fostering this Culture -#### Innovation - -Fostering a culture of relentless improvement does more than just streamline processes; it becomes a breeding ground for innovation. In this environment, teams are not just allowed, but encouraged, to think outside the box. This encouragement to innovate isn't just about coming up with new ideas; it's about reimagining existing processes, products, and strategies. It's an ethos where creative thinking is valued and taking calculated risks is seen as a necessary step towards progress. - -This constant push for innovation keeps the organization at the forefront of its field, continuously evolving and adapting to the ever-changing business landscape. +**Innovation** -#### Efficiency +Fostering a culture of relentless improvement does more than just streamline processes; it becomes a breeding ground for innovation. In this environment, teams are not just allowed, but encouraged, to think outside the box. This encouragement to innovate isn't just about coming up with new ideas; it's about reimagining existing processes, products, and strategies. It's an ethos where creative thinking is valued and taking calculated risks is seen as a necessary step towards progress. This constant push for innovation keeps the organization at the forefront of its field, continuously evolving and adapting to the ever-changing business landscape. -Instilling a culture of relentless improvement directly feeds into heightened efficiency. It motivates teams not just to perform their tasks, but to actively seek ways to optimize their processes. This constant quest for efficiency goes beyond mere cost-saving; it's about refining workflows, enhancing productivity, and maximizing resource utilization. +**Efficiency** -By continually analyzing and improving how work is done, teams can deliver better results faster and more consistently. This ongoing process of refinement ensures that the organization doesn't just keep pace with its competitors but sets the benchmark for operational excellence. +Instilling a culture of relentless improvement directly feeds into heightened efficiency. It motivates teams not just to perform their tasks, but to actively seek ways to optimize their processes. This constant quest for efficiency goes beyond mere cost-saving; it's about refining workflows, enhancing productivity, and maximizing resource utilization. By continually analyzing and improving how work is done, teams can deliver better results faster and more consistently. This ongoing process of refinement ensures that the organization doesn't just keep pace with its competitors but sets the benchmark for operational excellence. -#### Employee Satisfaction +**Employee Satisfaction** -A culture of relentless improvement does more than just drive business results; it also plays a crucial role in employee empowerment and satisfaction. In such an environment, employees are given the freedom and encouragement to take ownership of their work, to innovate, and to make meaningful contributions. - -This empowerment leads to higher engagement, as team members feel valued and know that their ideas and efforts have a real impact on the organization. The result is a more motivated and committed workforce, one that not only takes pride in its achievements but is also more resilient to challenges. Such an atmosphere not only boosts individual morale but also fosters a positive, collaborative workplace culture. +A culture of relentless improvement does more than just drive business results; it also plays a crucial role in employee empowerment and satisfaction. In such an environment, employees are given the freedom and encouragement to take ownership of their work, to innovate, and to make meaningful contributions. This empowerment leads to higher engagement, as team members feel valued and know that their ideas and efforts have a real impact on the organization. The result is a more motivated and committed workforce, one that not only takes pride in its achievements but is also more resilient to challenges. Such an atmosphere not only boosts individual morale but also fosters a positive, collaborative workplace culture. ::: greybox Foster a culture of relentless improvement to drive innovation and efficiency. @@ -58,9 +47,7 @@ Good Example - Teams in a culture of relentless improvement are always looking f ### Competitive Advantage -In the rapidly evolving business world, the capacity to continuously adapt and improve isn't just beneficial; it's a critical competitive advantage. Fostering a culture of relentless improvement equips an organization with the agility and responsiveness necessary to stay ahead of the curve. It means being able to quickly pivot in response to market changes, customer feedback, and emerging trends. - -Organizations that cultivate this culture are more likely to innovate successfully, anticipate and meet customer needs, and outperform their competitors. Essentially, this culture becomes a catalyst not just for surviving but thriving in a dynamic and often unpredictable business environment. +In the rapidly evolving business world, the capacity to continuously adapt and improve isn't just beneficial; it's a critical competitive advantage. Fostering a culture of relentless improvement equips an organization with the agility and responsiveness necessary to stay ahead of the curve. It means being able to quickly pivot in response to market changes, customer feedback, and emerging trends. Organizations that cultivate this culture are more likely to innovate successfully, anticipate and meet customer needs, and outperform their competitors. Essentially, this culture becomes a catalyst not just for surviving but thriving in a dynamic and often unpredictable business environment. ::: greybox Gain a competitive edge by continuously improving. @@ -72,9 +59,7 @@ Good Example - Companies that foster a culture of improvement are more adaptable ### Long-Term Success -A culture that places a high premium on continuous improvement doesn't just aim for short-term wins; it lays the groundwork for long-term, sustainable success. In such an environment, the pursuit of excellence is ongoing, ensuring that the organization not only keeps up with immediate demands but also anticipates and prepares for future challenges. - -This forward-thinking approach means that the organization is always evolving, never stagnant. It adapts, grows, and learns from each challenge, turning potential setbacks into opportunities for growth. Over time, this culture of relentless improvement builds a strong foundation that can withstand market fluctuations and shifts, positioning the organization not just to survive but to flourish in the long run. +A culture that places a high premium on continuous improvement doesn't just aim for short-term wins; it lays the groundwork for long-term, sustainable success. In such an environment, the pursuit of excellence is ongoing, ensuring that the organization not only keeps up with immediate demands but also anticipates and prepares for future challenges. This forward-thinking approach means that the organization is always evolving, never stagnant. It adapts, grows, and learns from each challenge, turning potential setbacks into opportunities for growth. Over time, this culture of relentless improvement builds a strong foundation that can withstand market fluctuations and shifts, positioning the organization not just to survive but to flourish in the long run. ::: greybox Invest in long-term success through continuous improvement. @@ -86,6 +71,4 @@ Bad Example - Organizations that don't foster a culture of improvement may find ## Conclusion -Embracing a culture of relentless improvement goes beyond mere organizational policy; it's an enduring commitment to excellence. This culture is not about reaching a final destination but about journeying on a path of continuous growth and development. It's a catalyst for fostering innovation, streamlining efficiency, and enhancing employee satisfaction. - -These elements are crucial in an ever-changing business landscape, making such a culture indispensable for any organization that aspires to not just succeed in the short term but to thrive and lead in the long term. In essence, a culture of relentless improvement is the cornerstone of sustainable success in today's dynamic business world. +Embracing a culture of relentless improvement goes beyond mere organizational policy; it's an enduring commitment to excellence. This culture is not about reaching a final destination but about journeying on a path of continuous growth and development. It's a catalyst for fostering innovation, streamlining efficiency, and enhancing employee satisfaction. These elements are crucial in an ever-changing business landscape, making such a culture indispensable for any organization that aspires to not just succeed in the short term but to thrive and lead in the long term. In essence, a culture of relentless improvement is the cornerstone of sustainable success in today's dynamic business world. diff --git a/rules/implement-DevOps-practices-for-continuous-delivery/rule.md b/rules/implement-DevOps-practices-for-continuous-delivery/rule.md index 1cfa93b99cb..9ae410c7c2c 100644 --- a/rules/implement-DevOps-practices-for-continuous-delivery/rule.md +++ b/rules/implement-DevOps-practices-for-continuous-delivery/rule.md @@ -1,7 +1,7 @@ --- type: rule title: Do you implement DevOps practices for continuous delivery? -uri: implement-DevOps-practices-for-continuous-delivery +uri: do-you-implement-DevOps-practices-for-continuous-delivery authors: - title: Gert Marx url: https://ssw.com.au/people/gert-marx @@ -9,7 +9,6 @@ authors: url: https://ssw.com.au/people/ulysses-maclaren related: redirects: - - do-you-implement-DevOps-practices-for-continuous-delivery created: 2023-10-13T17:26:00.000Z archivedreason: null guid: 605b433e-d6ef-474a-80ef-06e2ac8cd425 @@ -28,13 +27,13 @@ But why merge these two? The answer lies in its objectives: to compress the syst ### Benefits of Implementing DevOps -#### Speed +**Speed** In today's digital era, being first often means being the best. DevOps isn't just about speed for speed's sake; it's about staying ahead of the curve and outpacing competitors. By streamlining development and operations processes, DevOps acts as a catalyst, accelerating the journey from idea to deployment. This not only trims down your time to market but also positions your product or service at the forefront, ready to capture opportunities quicker than ever. -#### Reliability +**Reliability** Surprises in software delivery can be costly and disruptive. DevOps minimizes these unexpected issues. Automated testing identifies potential flaws early in the process, ensuring they're addressed well before deployment. Coupled with continuous monitoring, this vigilant oversight guarantees system robustness and resilience once live. @@ -42,7 +41,7 @@ The outcome? Deliverables that are not only swift but also steadfastly reliable, bolstering user satisfaction and trust. -#### Collaboration +**Collaboration** The beauty of DevOps lies not just in merging processes, but also in bridging people. By breaking down silos and fostering an environment of open communication, DevOps brings development and operations teams closer than ever before. diff --git a/rules/involve-stakeholders-in-pi-planning/rule.md b/rules/involve-stakeholders-in-pi-planning/rule.md index ee8148765ef..4a621c9eed0 100644 --- a/rules/involve-stakeholders-in-pi-planning/rule.md +++ b/rules/involve-stakeholders-in-pi-planning/rule.md @@ -1,7 +1,7 @@ --- type: rule title: Do you involve business stakeholders in Program Increment (PI) planning? -uri: involve-stakeholders-in-pi-planning +uri: do-you-involve-stakeholders-in-pi-planning authors: - title: Gert Marx url: https://ssw.com.au/people/gert-marx @@ -10,42 +10,31 @@ authors: related: null redirects: - do-you-involve-business-stakeholders-in-program-increment-(PI)-planning - - do-you-involve-stakeholders-in-pi-planning created: 2023-10-13T17:45:00.000Z archivedreason: null guid: c7d58999-e7af-4e2d-89f7-38f693a9fbaa --- -As you gear up for a new Program Increment (PI), your development teams are primed and ready. But there's a critical piece missing: active involvement from your business stakeholders. - -Without their insights, there's a tangible risk of a disconnect, where the development efforts might not fully align with the actual business requirements. Actively involving these stakeholders in PI planning is key to ensuring that what's being built truly meets the business needs and objectives. +As you gear up for a new Program Increment (PI), your development teams are primed and ready. But there's a critical piece missing: active involvement from your business stakeholders. Without their insights, there's a tangible risk of a disconnect, where the development efforts might not fully align with the actual business requirements. Actively involving these stakeholders in PI planning is key to ensuring that what's being built truly meets the business needs and objectives. ## What is Program Increment (PI) Planning? -Program Increment (PI) planning is a cornerstone event within the Scaled Agile Framework (SAFe), bringing together all the players of an Agile Release Train (ART). This pivotal gathering is not just a routine meeting; it's a strategic forum. Here, team members collectively dissect and understand the priorities for the upcoming PI. - -They delve into technical considerations, align on objectives, and collaboratively forge a roadmap. The goal? To ensure that everyone is marching in the same direction, equipped with a clear, cohesive plan for the journey ahead. +Program Increment (PI) planning is a cornerstone event within the Scaled Agile Framework (SAFe), bringing together all the players of an Agile Release Train (ART). This pivotal gathering is not just a routine meeting; it's a strategic forum. Here, team members collectively dissect and understand the priorities for the upcoming PI. They delve into technical considerations, align on objectives, and collaboratively forge a roadmap. The goal? To ensure that everyone is marching in the same direction, equipped with a clear, cohesive plan for the journey ahead. ### Benefits of Involving Business Stakeholders -#### Alignment - -Involving business stakeholders in PI planning isn't just a procedural step; it's a strategic move. By bringing these key players into the conversation, you ensure that the development work isn't just technically sound, but also perfectly aligned with the broader business objectives. - -This alignment is crucial—it means that every Sprint, every line of code, contributes directly to the overarching goals of the organization, ensuring that the efforts of the Agile Release Train (ART) are not just efficient but also effective and relevant. +**Alignment** -#### Clarity +Involving business stakeholders in PI planning isn't just a procedural step; it's a strategic move. By bringing these key players into the conversation, you ensure that the development work isn't just technically sound, but also perfectly aligned with the broader business objectives. This alignment is crucial—it means that every Sprint, every line of code, contributes directly to the overarching goals of the organization, ensuring that the efforts of the Agile Release Train (ART) are not just efficient but also effective and relevant. -Bringing business stakeholders into the fold of PI planning does more than facilitate decision-making; it illuminates the path ahead. It provides crystal-clear clarity on what the business deems as priorities and articulates the specific requirements that need to be met. This clarity is invaluable. It ensures that every team member on the Agile Release Train (ART) understands not just the 'what' and the 'how' of their tasks, but more importantly, the 'why'. +**Clarity** -Such understanding is crucial for aligning their day-to-day work with the strategic vision of the business, leading to more targeted and impactful outcomes. +Bringing business stakeholders into the fold of PI planning does more than facilitate decision-making; it illuminates the path ahead. It provides crystal-clear clarity on what the business deems as priorities and articulates the specific requirements that need to be met. This clarity is invaluable. It ensures that every team member on the Agile Release Train (ART) understands not just the 'what' and the 'how' of their tasks, but more importantly, the 'why'. Such understanding is crucial for aligning their day-to-day work with the strategic vision of the business, leading to more targeted and impactful outcomes. -#### Feedback Loop +**Feedback Loop** -Integrating business stakeholders into PI planning sets the stage for an essential component of agile methodology: a dynamic, immediate feedback loop. This connection between the development teams and the business stakeholders isn’t just about staying informed; it's about creating a responsive and adaptive environment. - -It allows for real-time feedback, ensuring that any deviations from business goals can be swiftly identified and rectified. This ongoing exchange keeps the development aligned with business expectations, fostering a collaborative atmosphere where adjustments can be made quickly, enhancing both the product's relevance and its quality. +Integrating business stakeholders into PI planning sets the stage for an essential component of agile methodology: a dynamic, immediate feedback loop. This connection between the development teams and the business stakeholders isn’t just about staying informed; it's about creating a responsive and adaptive environment. It allows for real-time feedback, ensuring that any deviations from business goals can be swiftly identified and rectified. This ongoing exchange keeps the development aligned with business expectations, fostering a collaborative atmosphere where adjustments can be made quickly, enhancing both the product's relevance and its quality. ::: greybox Involve business stakeholders in PI planning to align development work with business objectives. @@ -59,9 +48,7 @@ Good Example - Involving business stakeholders in PI planning ensures that every ### Better Decision-Making -Involving business stakeholders in the planning process does more than just add more voices to the conversation; it enriches the decision-making process with critical business insights. These stakeholders bring a deep understanding of business context and priorities, ensuring that decisions aren't made in a vacuum. - -Their input helps to ground the planning in real-world business needs and goals, leading to choices that are not just technically feasible but also strategically sound. This results in a planning process that is more attuned to the market realities and organizational objectives, paving the way for outcomes that resonate with both the business and its customers. +Involving business stakeholders in the planning process does more than just add more voices to the conversation; it enriches the decision-making process with critical business insights. These stakeholders bring a deep understanding of business context and priorities, ensuring that decisions aren't made in a vacuum. Their input helps to ground the planning in real-world business needs and goals, leading to choices that are not just technically feasible but also strategically sound. This results in a planning process that is more attuned to the market realities and organizational objectives, paving the way for outcomes that resonate with both the business and its customers. ::: greybox Include business stakeholders for informed decision-making. @@ -73,9 +60,7 @@ Good Example - Business stakeholders can provide valuable insights that lead to ### Risk Mitigation -Getting business stakeholders in on the ground floor of the planning process isn't just about ticking a box; it's a strategic move for risk mitigation. Their early involvement brings a wealth of knowledge about the market landscape, regulatory compliance, and various other business-critical factors. - -This insight is invaluable for identifying potential risks early on, allowing the team to proactively address them before they escalate. By integrating this business acumen into the planning stages, the team can devise strategies that are not only innovative but also aligned with real-world constraints and requirements, thereby reducing the likelihood of costly, time-consuming issues down the line. +Getting business stakeholders in on the ground floor of the planning process isn't just about ticking a box; it's a strategic move for risk mitigation. Their early involvement brings a wealth of knowledge about the market landscape, regulatory compliance, and various other business-critical factors. This insight is invaluable for identifying potential risks early on, allowing the team to proactively address them before they escalate. By integrating this business acumen into the planning stages, the team can devise strategies that are not only innovative but also aligned with real-world constraints and requirements, thereby reducing the likelihood of costly, time-consuming issues down the line. ::: greybox Engage business stakeholders for early risk identification and mitigation. @@ -87,6 +72,4 @@ Bad Example - Excluding business stakeholders can result in overlooking importan ## Conclusion -Bringing business stakeholders into the heart of Program Increment (PI) planning is more than a procedural necessity; it's a strategic imperative. Their involvement ensures that the development work aligns seamlessly with business objectives, adding depth and context to decision-making. Beyond this, their insights are instrumental in identifying and mitigating risks early in the process. - -This proactive approach to planning not only fosters a more cohesive and informed development cycle but also steers projects towards more successful, business-aligned outcomes. In essence, overlooking the role of business stakeholders in PI planning is to miss out on a critical component of achieving true business agility and effectiveness. +Bringing business stakeholders into the heart of Program Increment (PI) planning is more than a procedural necessity; it's a strategic imperative. Their involvement ensures that the development work aligns seamlessly with business objectives, adding depth and context to decision-making. Beyond this, their insights are instrumental in identifying and mitigating risks early in the process. This proactive approach to planning not only fosters a more cohesive and informed development cycle but also steers projects towards more successful, business-aligned outcomes. In essence, overlooking the role of business stakeholders in PI planning is to miss out on a critical component of achieving true business agility and effectiveness. diff --git a/rules/measure-success-using-lean-agile-metrics/rule.md b/rules/measure-success-using-lean-agile-metrics/rule.md index 26cb6fe0a42..7b749fb9eee 100644 --- a/rules/measure-success-using-lean-agile-metrics/rule.md +++ b/rules/measure-success-using-lean-agile-metrics/rule.md @@ -1,50 +1,39 @@ --- type: rule title: Do you measure success using Lean-Agile metrics? -uri: measure-success-using-lean-agile-metrics +uri: do-you-measure-success-using-lean-agile-metrics authors: - title: Gert Marx url: https://ssw.com.au/people/gert-marx - title: Ulysses Maclaren url: https://ssw.com.au/people/ulysses-maclaren -related: [] +related: redirects: - - do-you-measure-success-using-lean-agile-metrics created: 2023-10-13T17:47:00.000Z archivedreason: null guid: 57c8f070-bab4-43d6-8d35-baca9681564c --- -Your Agile Release Train (ART) is in full motion, with teams actively delivering features left and right. But here's the catch: are these activities truly driving the desired outcomes, or are they just a flurry of task completions? - -This is where Lean-Agile metrics come into play. By adopting these metrics, you get more than just a tally of completed tasks – you gain a nuanced, data-driven view of your progress towards key objectives, ensuring that your efforts align with broader organizational goals. +Your Agile Release Train (ART) is in full motion, with teams actively delivering features left and right. But here's the catch: are these activities truly driving the desired outcomes, or are they just a flurry of task completions? This is where Lean-Agile metrics come into play. By adopting these metrics, you get more than just a tally of completed tasks – you gain a nuanced, data-driven view of your progress towards key objectives, ensuring that your efforts align with broader organizational goals. ## What are Lean-Agile Metrics? -Lean-Agile metrics are more than just standard measurements; they are key performance indicators (KPIs) tailored to the unique environment of Lean-Agile principles. These metrics are carefully selected to gauge not only the efficiency and effectiveness of the Agile process but also its quality and alignment with Lean principles. - -By focusing on aspects like cycle time, throughput, and team velocity, among others, Lean-Agile metrics provide a comprehensive picture of how well Agile practices are being implemented and how closely they adhere to the efficiency-driven ethos of Lean methodology. +Lean-Agile metrics are more than just standard measurements; they are key performance indicators (KPIs) tailored to the unique environment of Lean-Agile principles. These metrics are carefully selected to gauge not only the efficiency and effectiveness of the Agile process but also its quality and alignment with Lean principles. By focusing on aspects like cycle time, throughput, and team velocity, among others, Lean-Agile metrics provide a comprehensive picture of how well Agile practices are being implemented and how closely they adhere to the efficiency-driven ethos of Lean methodology. ### Benefits of Using Lean-Agile Metrics -#### Visibility - -Implementing Lean-Agile metrics does more than just track progress; it shines a light on the entire development process. This visibility is crucial. It gives teams and stakeholders a transparent and unobstructed view of where things stand - which aspects are thriving and which need a bit more attention. - -This clarity not only aids in celebrating successes but also in pinpointing areas for improvement. It's like having a roadmap with clearly marked signposts, guiding the teams on where to focus their efforts for continuous improvement. +**Visibility** -#### Accountability +Implementing Lean-Agile metrics does more than just track progress; it shines a light on the entire development process. This visibility is crucial. It gives teams and stakeholders a transparent and unobstructed view of where things stand - which aspects are thriving and which need a bit more attention. This clarity not only aids in celebrating successes but also in pinpointing areas for improvement. It's like having a roadmap with clearly marked signposts, guiding the teams on where to focus their efforts for continuous improvement. -Lean-Agile metrics play a pivotal role in fostering a culture of accountability within teams. By clearly defining what success looks like and tracking key performance indicators, these metrics ensure that teams are not only aware of their responsibilities but also held answerable for their performance. +**Accountability** -This level of accountability doesn't just lead to a sense of ownership among team members; it also drives them to strive for excellence. Knowing that their efforts are being measured and reviewed encourages teams to maintain high standards in their work and continuously seek ways to enhance their productivity and efficiency. +Lean-Agile metrics play a pivotal role in fostering a culture of accountability within teams. By clearly defining what success looks like and tracking key performance indicators, these metrics ensure that teams are not only aware of their responsibilities but also held answerable for their performance. This level of accountability doesn't just lead to a sense of ownership among team members; it also drives them to strive for excellence. Knowing that their efforts are being measured and reviewed encourages teams to maintain high standards in their work and continuously seek ways to enhance their productivity and efficiency. -#### Continuous Improvement +**Continuous Improvement** -Lean-Agile metrics are a catalyst for continuous improvement, anchoring the decision-making process in solid, empirical data. This data-driven approach goes beyond gut feelings or assumptions; it allows teams to pinpoint exactly where and how they can enhance their processes. By regularly reviewing these metrics, teams can identify trends, anticipate issues, and adapt their strategies in real time. - -This ongoing cycle of measurement, analysis, and adjustment creates a dynamic environment where improvement is not just an objective, but a constant, ingrained practice. +Lean-Agile metrics are a catalyst for continuous improvement, anchoring the decision-making process in solid, empirical data. This data-driven approach goes beyond gut feelings or assumptions; it allows teams to pinpoint exactly where and how they can enhance their processes. By regularly reviewing these metrics, teams can identify trends, anticipate issues, and adapt their strategies in real time. This ongoing cycle of measurement, analysis, and adjustment creates a dynamic environment where improvement is not just an objective, but a constant, ingrained practice. ::: greybox Use Lean-Agile metrics to measure the true success of your Agile initiatives. @@ -58,9 +47,7 @@ Good Example - Lean-Agile metrics provide actionable insights for continuous imp ### Data-Driven Decisions -Employing Lean-Agile metrics transitions decision-making from a realm of guesswork to a domain of precision. By grounding choices in solid data, these metrics eliminate the reliance on gut feelings or anecdotal evidence. - -This shift to a data-driven approach enables teams and leaders to make strategic, well-informed decisions that are backed by tangible evidence. It's not just about choosing the right path; it's about understanding why it's the right path. This informed approach leads to better strategy formulation, more effective resource allocation, and ultimately, more successful outcomes in your Agile endeavors. +Employing Lean-Agile metrics transitions decision-making from a realm of guesswork to a domain of precision. By grounding choices in solid data, these metrics eliminate the reliance on gut feelings or anecdotal evidence. This shift to a data-driven approach enables teams and leaders to make strategic, well-informed decisions that are backed by tangible evidence. It's not just about choosing the right path; it's about understanding why it's the right path. This informed approach leads to better strategy formulation, more effective resource allocation, and ultimately, more successful outcomes in your Agile endeavors. ::: greybox Rely on data-driven insights for effective decision-making. @@ -72,9 +59,7 @@ Rely on data-driven insights for effective decision-making. ### Alignment with Business Goals -Lean-Agile metrics go beyond tracking mere activities; they focus on what truly counts for the business. By aligning these metrics with key business objectives, you ensure that every measurement taken is a step toward achieving overarching goals. - -This alignment is crucial in making sure that the team's efforts are not just busy work but are contributing meaningfully to the organization's success. It helps maintain a strategic focus, ensuring that the Agile process is always tuned to the rhythms of business needs and priorities. Ultimately, this leads to more relevant outcomes, greater value delivery, and enhanced business performance. +Lean-Agile metrics go beyond tracking mere activities; they focus on what truly counts for the business. By aligning these metrics with key business objectives, you ensure that every measurement taken is a step toward achieving overarching goals. This alignment is crucial in making sure that the team's efforts are not just busy work but are contributing meaningfully to the organization's success. It helps maintain a strategic focus, ensuring that the Agile process is always tuned to the rhythms of business needs and priorities. Ultimately, this leads to more relevant outcomes, greater value delivery, and enhanced business performance. ::: greybox Align your metrics with business objectives for meaningful measurement. @@ -86,6 +71,4 @@ Bad Example - Metrics that are not aligned with business goals can lead to misgu ## Conclusion -Adopting Lean-Agile metrics for measuring success transcends the conventional practice of mere number tracking. It's a strategic approach to gauge the real impact of your Agile initiatives on the business. These metrics do more than just fill spreadsheets; they offer a window into the effectiveness of your processes, shining a light on areas of strength and opportunities for improvement. - -By providing critical visibility and insights, Lean-Agile metrics are instrumental in driving continuous advancement and ensuring that every effort is in harmony with your business objectives. In essence, they are not just indicators of progress; they are the guiding stars towards a more efficient, effective, and aligned Agile practice. +Adopting Lean-Agile metrics for measuring success transcends the conventional practice of mere number tracking. It's a strategic approach to gauge the real impact of your Agile initiatives on the business. These metrics do more than just fill spreadsheets; they offer a window into the effectiveness of your processes, shining a light on areas of strength and opportunities for improvement. By providing critical visibility and insights, Lean-Agile metrics are instrumental in driving continuous advancement and ensuring that every effort is in harmony with your business objectives. In essence, they are not just indicators of progress; they are the guiding stars towards a more efficient, effective, and aligned Agile practice. diff --git a/rules/prioritize-value-streams-over-individual-projects/Adaption.png b/rules/prioritise-value-streams-over-individual-projects/Adaption.png similarity index 100% rename from rules/prioritize-value-streams-over-individual-projects/Adaption.png rename to rules/prioritise-value-streams-over-individual-projects/Adaption.png diff --git a/rules/prioritize-value-streams-over-individual-projects/Alignment.png b/rules/prioritise-value-streams-over-individual-projects/Alignment.png similarity index 100% rename from rules/prioritize-value-streams-over-individual-projects/Alignment.png rename to rules/prioritise-value-streams-over-individual-projects/Alignment.png diff --git a/rules/prioritize-value-streams-over-individual-projects/Deployment.png b/rules/prioritise-value-streams-over-individual-projects/Deployment.png similarity index 100% rename from rules/prioritize-value-streams-over-individual-projects/Deployment.png rename to rules/prioritise-value-streams-over-individual-projects/Deployment.png diff --git a/rules/prioritize-value-streams-over-individual-projects/rule.md b/rules/prioritise-value-streams-over-individual-projects/rule.md similarity index 95% rename from rules/prioritize-value-streams-over-individual-projects/rule.md rename to rules/prioritise-value-streams-over-individual-projects/rule.md index c9a1d00e679..8d9246505df 100644 --- a/rules/prioritize-value-streams-over-individual-projects/rule.md +++ b/rules/prioritise-value-streams-over-individual-projects/rule.md @@ -1,8 +1,8 @@ --- type: rule -title: Do you prioritize value streams over individual projects? +title: Do you prioritise value streams over individual projects? guid: 2d901374-b579-4c9f-8672-f2a5e360ac87 -uri: prioritize-value-streams-over-individual-projects +uri: prioritise-value-streams-over-individual-projects created: 2023-10-13T17:08:00.000Z authors: - title: Gert Marx @@ -12,7 +12,6 @@ authors: related: redirects: - do-you-prioritise-value-streams-over-individual-projects - - prioritise-value-streams-over-individual-projects archivedreason: null --- Imagine managing a bunch of projects, each with its own goals and deadlines. It's easy to get caught up in the details and miss the bigger picture. Sometimes, even though every project seems super important, they might not all line up with what the business really needs. That's when you realize: it's all about focusing on value streams, not just individual projects. diff --git a/rules/regularly-inspect-and-adapt-at-scale/rule.md b/rules/regularly-inspect-and-adapt-at-scale/rule.md index 4f174cbe34c..8553755c120 100644 --- a/rules/regularly-inspect-and-adapt-at-scale/rule.md +++ b/rules/regularly-inspect-and-adapt-at-scale/rule.md @@ -1,7 +1,7 @@ --- type: rule title: Do you regularly inspect and adapt at scale? -uri: regularly-inspect-and-adapt-at-scale +uri: do-you-regularly-inspect-and-adapt-at-scale authors: - title: Gert Marx url: https://ssw.com.au/people/gert-marx @@ -9,42 +9,31 @@ authors: url: https://ssw.com.au/people/ulysses-maclaren related: redirects: - - do-you-regularly-inspect-and-adapt-at-scale created: 2023-10-13T17:50:00.000Z archivedreason: null guid: a7057079-1e65-42a2-a273-a9d3bbc2d543 --- -Having Agile practices up and running in individual teams is a great start, but what happens when the larger organizational machine doesn't mirror that agility? You might start to see delays in addressing issues, with inefficiencies becoming a systemic problem. - -This is where the true power of Agile comes into play – not just in pockets, but across the entire organization. By regularly inspecting and adapting at scale, you can transform these challenges into opportunities for growth, ensuring that agility isn't confined to teams but is a hallmark of your entire organization. +Having Agile practices up and running in individual teams is a great start, but what happens when the larger organizational machine doesn't mirror that agility? You might start to see delays in addressing issues, with inefficiencies becoming a systemic problem. This is where the true power of Agile comes into play – not just in pockets, but across the entire organization. By regularly inspecting and adapting at scale, you can transform these challenges into opportunities for growth, ensuring that agility isn't confined to teams but is a hallmark of your entire organization. ## What Does It Mean to Inspect and Adapt at Scale? -Inspecting and adapting at scale is a crucial element of mature Agile practice. It means taking a step back to thoroughly review processes, outcomes, and strategies, not just within isolated teams, but across multiple teams or even the entire organization. - -This holistic examination allows for identifying patterns, strengths, and areas needing improvement. The key is to then act on these insights, making strategic adjustments that enhance overall efficiency and effectiveness. It's about creating a continuous loop of feedback and improvement that resonates through all levels of the organization, ensuring that Agile is not just a methodology, but a dynamic, living practice. +Inspecting and adapting at scale is a crucial element of mature Agile practice. It means taking a step back to thoroughly review processes, outcomes, and strategies, not just within isolated teams, but across multiple teams or even the entire organization. This holistic examination allows for identifying patterns, strengths, and areas needing improvement. The key is to then act on these insights, making strategic adjustments that enhance overall efficiency and effectiveness. It's about creating a continuous loop of feedback and improvement that resonates through all levels of the organization, ensuring that Agile is not just a methodology, but a dynamic, living practice. ### Benefits of Inspecting and Adapting at Scale -#### Agility - -Implementing inspect-and-adapt practices at scale does more than streamline processes; it infuses the entire organization with enhanced agility. This ability to respond swiftly and effectively to changes isn't limited to isolated instances or single teams. - -It permeates through the entire organization, enabling a rapid response to market shifts, customer needs, and internal challenges. This kind of agility is invaluable in today's fast-paced business environment, as it allows the organization not just to react to changes, but to proactively leverage them as opportunities for growth and innovation. +* **Agility** -#### Efficiency +Implementing inspect-and-adapt practices at scale does more than streamline processes; it infuses the entire organization with enhanced agility. This ability to respond swiftly and effectively to changes isn't limited to isolated instances or single teams. It permeates through the entire organization, enabling a rapid response to market shifts, customer needs, and internal challenges. This kind of agility is invaluable in today's fast-paced business environment, as it allows the organization not just to react to changes, but to proactively leverage them as opportunities for growth and innovation. -Regularly inspecting and adapting practices at an organizational level goes a long way in streamlining operations. This approach isn't just about putting out fires; it's about systematically identifying bottlenecks and inefficiencies that can hinder progress. +* **Efficiency** -By continuously seeking out these areas and addressing them, the organization can refine its processes over time. This results in a more efficient workflow, reduced waste, and a smoother path to achieving objectives. In essence, it cultivates an environment where efficiency is constantly pursued and progressively achieved. +Regularly inspecting and adapting practices at an organizational level goes a long way in streamlining operations. This approach isn't just about putting out fires; it's about systematically identifying bottlenecks and inefficiencies that can hinder progress. By continuously seeking out these areas and addressing them, the organization can refine its processes over time. This results in a more efficient workflow, reduced waste, and a smoother path to achieving objectives. In essence, it cultivates an environment where efficiency is constantly pursued and progressively achieved. -#### Alignment +* **Alignment** -Inspecting and adapting at scale does more than just streamline processes; it acts as a crucial aligning force within the organization. This approach ensures that all teams, regardless of their individual projects or focuses, are consistently aligned with the overarching organizational goals. It's a process of regularly checking and recalibrating to make sure that every effort contributes meaningfully to the big picture. - -Such alignment is essential for cohesive, concerted action, reducing the risk of disjointed efforts or conflicting objectives. Ultimately, it leads to a more unified, strategic pursuit of the organization's vision, where every team's work is a building block towards shared success. +Inspecting and adapting at scale does more than just streamline processes; it acts as a crucial aligning force within the organization. This approach ensures that all teams, regardless of their individual projects or focuses, are consistently aligned with the overarching organizational goals. It's a process of regularly checking and recalibrating to make sure that every effort contributes meaningfully to the big picture. Such alignment is essential for cohesive, concerted action, reducing the risk of disjointed efforts or conflicting objectives. Ultimately, it leads to a more unified, strategic pursuit of the organization's vision, where every team's work is a building block towards shared success. ::: greybox Regularly inspect and adapt at scale to maintain organizational agility and efficiency. @@ -58,9 +47,7 @@ Good Example - Organizations that inspect and adapt at scale are better position ### Holistic Improvement -Adopting an inspect-and-adapt approach at the organizational level transcends the confines of individual team metrics and isolated improvements. It embraces a wider, more holistic perspective. By doing so, it takes into account the intricate interdependencies and interactions between various teams and departments. - -This broader view is essential for fostering improvements that are not just beneficial for single units, but advantageous for the entire organization. It ensures that changes made in one area positively resonate throughout the organization, amplifying overall effectiveness and cohesiveness. In essence, inspecting and adapting at scale is about optimizing the whole, rather than just the parts, leading to sustainable, organization-wide progress. +Adopting an inspect-and-adapt approach at the organizational level transcends the confines of individual team metrics and isolated improvements. It embraces a wider, more holistic perspective. By doing so, it takes into account the intricate interdependencies and interactions between various teams and departments. This broader view is essential for fostering improvements that are not just beneficial for single units, but advantageous for the entire organization. It ensures that changes made in one area positively resonate throughout the organization, amplifying overall effectiveness and cohesiveness. In essence, inspecting and adapting at scale is about optimizing the whole, rather than just the parts, leading to sustainable, organization-wide progress. ::: greybox Adopt a holistic approach for comprehensive improvements. @@ -72,9 +59,7 @@ Figure: Good Example - Holistic improvements consider the entire organizational ### Proactive Problem-Solving -Engaging in regular inspection at an organizational scale is a proactive stance, not a reactive one. It's about staying one step ahead, scanning the horizon for potential issues and addressing them before they have a chance to escalate. - -This proactive problem-solving approach ensures that challenges are nipped in the bud, allowing for timely interventions that prevent small hiccups from becoming major obstacles. By doing so, the organization can maintain its momentum, avoiding the pitfalls of slowdowns or disruptions. This kind of foresight and swift action is key to sustaining smooth operations and continuous progress. +Engaging in regular inspection at an organizational scale is a proactive stance, not a reactive one. It's about staying one step ahead, scanning the horizon for potential issues and addressing them before they have a chance to escalate. This proactive problem-solving approach ensures that challenges are nipped in the bud, allowing for timely interventions that prevent small hiccups from becoming major obstacles. By doing so, the organization can maintain its momentum, avoiding the pitfalls of slowdowns or disruptions. This kind of foresight and swift action is key to sustaining smooth operations and continuous progress. ::: greybox Be proactive in identifying and solving problems at scale. @@ -86,6 +71,4 @@ Bad Example - Failing to inspect and adapt at scale can lead to issues going unn ## Conclusion -Embracing the practice of regularly inspecting and adapting at scale is not just a beneficial strategy; it's a cornerstone of organizational agility and efficiency. This approach goes beyond surface-level fixes, enabling holistic improvements that account for the complex dynamics between teams and departments. More importantly, it fosters a culture of proactive problem-solving, where potential issues are addressed promptly and effectively. - -For any organization committed to Lean-Agile principles, this practice is not just beneficial – it's essential. It ensures that the agility and responsiveness that characterize successful Agile teams are reflected across the entire organization, driving sustainable growth and continuous improvement. +Embracing the practice of regularly inspecting and adapting at scale is not just a beneficial strategy; it's a cornerstone of organizational agility and efficiency. This approach goes beyond surface-level fixes, enabling holistic improvements that account for the complex dynamics between teams and departments. More importantly, it fosters a culture of proactive problem-solving, where potential issues are addressed promptly and effectively. For any organization committed to Lean-Agile principles, this practice is not just beneficial – it's essential. It ensures that the agility and responsiveness that characterize successful Agile teams are reflected across the entire organization, driving sustainable growth and continuous improvement. diff --git a/rules/scenarios-of-building-the-system/betterlargedotnet_scenario.gif b/rules/scenarios-of-building-the-system/betterlargedotnet_scenario.gif deleted file mode 100644 index af56075969e..00000000000 Binary files a/rules/scenarios-of-building-the-system/betterlargedotnet_scenario.gif and /dev/null differ diff --git a/rules/scenarios-of-building-the-system/betterlargedotnet_scenario1.gif b/rules/scenarios-of-building-the-system/betterlargedotnet_scenario1.gif deleted file mode 100644 index 0f6da852193..00000000000 Binary files a/rules/scenarios-of-building-the-system/betterlargedotnet_scenario1.gif and /dev/null differ diff --git a/rules/scenarios-of-building-the-system/betterlargedotnet_scenario2.gif b/rules/scenarios-of-building-the-system/betterlargedotnet_scenario2.gif deleted file mode 100644 index 14cbe1aab6a..00000000000 Binary files a/rules/scenarios-of-building-the-system/betterlargedotnet_scenario2.gif and /dev/null differ diff --git a/rules/scenarios-of-building-the-system/betterlargedotnet_scenario3.gif b/rules/scenarios-of-building-the-system/betterlargedotnet_scenario3.gif deleted file mode 100644 index e246e227629..00000000000 Binary files a/rules/scenarios-of-building-the-system/betterlargedotnet_scenario3.gif and /dev/null differ diff --git a/rules/scenarios-of-building-the-system/rule.md b/rules/scenarios-of-building-the-system/rule.md deleted file mode 100644 index b4e3f5cdf1a..00000000000 --- a/rules/scenarios-of-building-the-system/rule.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -type: rule -title: Do you know the scenarios for building large .NET projects? -uri: scenarios-of-building-the-system -authors: - - title: Adam Cogan - url: https://ssw.com.au/people/adam-cogan/ -created: 2014-03-14T06:02:00.000Z -guid: 3021ff26-7bfa-47b5-811d-82bf417fe880 ---- - -There are various ways of organizing your code for large .NET projects in Visual Studio. - - - -![Figure: The common scenario of a Large Project](betterlargedotnet_scenario.gif) - -1. First option would be to put all the projects in a single solution, reference projects using project references. - - ![Figure: Option 1 - All projects in one single solution](betterlargedotnet_scenario1.gif) - - Putting all the projects into a single solution and reference the projects using project references has the following advantages and disadvantages: - - **Advantages** - - * The main advantage of having project references is that it can support multiple versions quite well. - * Other advantages include the fact that it can be a lot more reliable and switch-able. - - **Disadvantages** - - There are, however, two major disadvantages in adding many projects to one single solution. - - * It is not scalable. Having 240 projects would take 1 hours and 30 minutes to load and to build in one solution, so it can be very difficult to allow that kind of a solution to continually grow. - * Middle tier could possibly have 100's of IP addresses. - * It is not efficient to load that entire time as mentioned above. In general one solution can efficiently handle 60 projects. - -2. Another option would be to create separate solutions for each application, i.e. have a Windows Solution, a separate ASP.NET Web App Solution etc.. each solution referencing the middle tier and base system projects. - - ![Figure: Option 2 - Every application with its own solution](betterlargedotnet_scenario2.gif) - - **Advantages** - - * The main advantage of having separate solutions for each application is that there will be less load time than the 1st option mentioned. - * Multiple versions can also be supported. - * Switching between debug and release is relatively easy. - - **Disadvantages** - - The fact that the application is being build 4 times would make build time significantly longer. Other problems include: - - * Applications trying to load versions which could change during the build time. However this could be worked-around by not allowing auto-increment of the Assembly info Version Number, i.e. instead of "2.0.*", removing the star ("2.0") will prevent increments of the version number. - * It is not efficient repeating the build in each solution as mentioned above. - * It is not scalable, or reliable. - - If there are no signed assemblies, make sure there are dynamic assemblies. The application must be build once so there are no differing versions of these assemblies. The contents of exactly what's in each assembly must be known. - -3. Mick's Recommended Approach - - ![Figure: Option 3 - Using Staging Areas](betterlargedotnet_scenario3.gif) - - The recommended approach - - 1. Each project goes into a single solution. - - * This is determined by grouping projects depending on the dependencies. - * The Data Access solution is build first, then the Middle Tier depends on the first solution. Applications depends on both. - * Developers don't want to change too much, so these layers should be kept invisible from them. - 2. Each solution references assemblies from a single staging area. - - * Developers don't need to look at the data access. The applications will get the assemblies directly from the staging area. - * Assemblies found in the staging area are only locked when the underlying layers are being rebuilt. - 3. Staging areas are mapped to a drive letter using the dos command "Subst" or a network share. - - * Mapping to the path is more flexible in gaining access to the staging area and modifying it. - * Instead of having long paths, it is recommended to have one drive letter regardless of the version. This would allow switching between debug and release easier, as well as switch between versions. - * File references are solved with having the same drive letter. - * These drives that are mapped are made by scripts that are run. The script also includes putting the files straight into source safe. e.g. - - ```bash - $ log:$ \[- SourceSafe Admin] - ss option - expand keyword "\*.cs" "\*.vb" "*.xml" - ``` - * There would also be a set of macros that are specificly created to: - - * Clean the proj. - * Clean the sln. - * Mass Rename. - - Create solutions which group projects by there dependencies as mentioned above. - - **Advantages** - - * Each project is only built once, speeding the build and eliminating problems with versioning between .NET assemblies. - * Referencing from a single drive letter helps simplify the problems with using file references - * The use of "subst" and mapped network drives allows flexibility of easily the location from which a solution is referencing its assemblies. diff --git a/rules/seal-your-classes-by-default/rule.md b/rules/seal-your-classes-by-default/rule.md index aa43a925638..2cd367d2c55 100644 --- a/rules/seal-your-classes-by-default/rule.md +++ b/rules/seal-your-classes-by-default/rule.md @@ -5,8 +5,6 @@ uri: seal-your-classes-by-default authors: - title: Gordon Beeming url: https://ssw.com.au/people/gordon-beeming - - title: Nadee Kodituwakku - url: https://ssw.com.au/people/nadee-kodituwakku created: 2022-11-25T07:17:00.000Z guid: 77F8E9B0-2BCB-4AFA-B022-3CFDD3B36C56 redirects: diff --git a/rules/utilize-a-release-train/rule.md b/rules/utilize-a-release-train/rule.md index c2d48baacc8..bdb80310c8e 100644 --- a/rules/utilize-a-release-train/rule.md +++ b/rules/utilize-a-release-train/rule.md @@ -1,7 +1,7 @@ --- type: rule title: Do you utilize a Release Train Engineer (RTE) for synchronization? -uri: utilize-a-release-train +uri: do-you-utilize-a-release-train authors: - title: Gert Marx url: https://ssw.com.au/people/gert-marx @@ -15,38 +15,27 @@ archivedreason: null guid: 08b0c095-52ad-4d44-adf9-5906a28852eb --- -Picture this: You've got a fleet of agile teams, each buzzing with activity. Yet, despite their hard work, aligning their efforts feels like trying to synchronize an orchestra without a conductor. Deadlines slip through the cracks, and the big picture gets fuzzy. - -This is where a Release Train Engineer (RTE) steps in. Think of the RTE as your agile conductor, harmonizing these teams to ensure they stay in sync, hit their deadlines, and align their outputs with overarching business goals. +Picture this: You've got a fleet of agile teams, each buzzing with activity. Yet, despite their hard work, aligning their efforts feels like trying to synchronize an orchestra without a conductor. Deadlines slip through the cracks, and the big picture gets fuzzy. This is where a Release Train Engineer (RTE) steps in. Think of the RTE as your agile conductor, harmonizing these teams to ensure they stay in sync, hit their deadlines, and align their outputs with overarching business goals. ## What is a Release Train Engineer (RTE)? -A Release Train Engineer (RTE) plays a pivotal role in the Agile Release Train (ART), acting as both a servant leader and a coach. In this capacity, the RTE isn't just overseeing; they're deeply involved in facilitating ART events and processes, ensuring everything runs like clockwork. - -Their primary mission? -To assist and guide the teams within the ART, helping them navigate challenges and effectively deliver value. The RTE's role is crucial in aligning the teams' efforts with the larger organizational objectives and ensuring a smooth, consistent flow of work. +A Release Train Engineer (RTE) plays a pivotal role in the Agile Release Train (ART), acting as both a servant leader and a coach. In this capacity, the RTE isn't just overseeing; they're deeply involved in facilitating ART events and processes, ensuring everything runs like clockwork. Their primary mission? To assist and guide the teams within the ART, helping them navigate challenges and effectively deliver value. The RTE's role is crucial in aligning the teams' efforts with the larger organizational objectives and ensuring a smooth, consistent flow of work. ### Benefits of Utilizing an RTE -#### Synchronization - -An RTE is the linchpin for maintaining synchronization across all teams on the Agile Release Train. They ensure not just routine alignment but a deep-seated harmony with the train's mission and objectives. By doing so, the RTE helps prevent the derailment of projects due to misalignment or miscommunication. - -It's like having an expert conductor who ensures that every part of the orchestra plays in unison, creating a symphony rather than a cacophony. This synchronization is vital for timely and cohesive deliverables, directly impacting the success of the entire train. +**Synchronization** -#### Facilitation +An RTE is the linchpin for maintaining synchronization across all teams on the Agile Release Train. They ensure not just routine alignment but a deep-seated harmony with the train's mission and objectives. By doing so, the RTE helps prevent the derailment of projects due to misalignment or miscommunication. It's like having an expert conductor who ensures that every part of the orchestra plays in unison, creating a symphony rather than a cacophony. This synchronization is vital for timely and cohesive deliverables, directly impacting the success of the entire train. -The RTE plays a crucial role in steering the program-level processes and execution. This isn't just about keeping meetings on track or ticking boxes on a checklist. It's about creating an environment where collaboration is seamless, decision-making is efficient, and execution is smooth. +**Facilitation** -From planning sessions to retrospectives, the RTE ensures that each step in the Agile Release Train is conducted with precision and purpose. Their expertise in facilitation helps bridge gaps, iron out kinks, and keep the entire program moving forward cohesively and effectively. +The RTE plays a crucial role in steering the program-level processes and execution. This isn't just about keeping meetings on track or ticking boxes on a checklist. It's about creating an environment where collaboration is seamless, decision-making is efficient, and execution is smooth. From planning sessions to retrospectives, the RTE ensures that each step in the Agile Release Train is conducted with precision and purpose. Their expertise in facilitation helps bridge gaps, iron out kinks, and keep the entire program moving forward cohesively and effectively. -#### Conflict Resolution +**Conflict Resolution** -The RTE often steps into the role of a mediator, a crucial aspect when multiple teams are working together under tight deadlines and high stakes. In such an environment, conflicts, whether between teams or within them, are inevitable. The RTE's skill in navigating these disagreements is key. They work not just to find quick fixes, but to address underlying issues, fostering an atmosphere of understanding and collaboration. - -This conflict resolution capability is vital in maintaining team morale, ensuring smooth collaboration, and keeping the Agile Release Train on track towards its objectives. +The RTE often steps into the role of a mediator, a crucial aspect when multiple teams are working together under tight deadlines and high stakes. In such an environment, conflicts, whether between teams or within them, are inevitable. The RTE's skill in navigating these disagreements is key. They work not just to find quick fixes, but to address underlying issues, fostering an atmosphere of understanding and collaboration. This conflict resolution capability is vital in maintaining team morale, ensuring smooth collaboration, and keeping the Agile Release Train on track towards its objectives. ::: greybox Utilize an RTE to keep your agile teams synchronized and focused on delivering value. @@ -60,9 +49,7 @@ Utilize an RTE to keep your agile teams synchronized and focused on delivering v ### Improved Coordination -Utilizing an RTE introduces a pivotal element in large-scale project management: a centralized coordination hub. When you have multiple teams, each with their unique dynamics and workflows, orchestrating their efforts can be a complex task. An RTE simplifies this by serving as the single point of contact and oversight. - -This streamlined coordination not only makes managing the teams more straightforward but also ensures that everyone is moving in sync, following a unified strategy. The presence of an RTE thus leads to smoother operations, clearer communication, and a more cohesive approach to reaching project milestones. +Utilizing an RTE introduces a pivotal element in large-scale project management: a centralized coordination hub. When you have multiple teams, each with their unique dynamics and workflows, orchestrating their efforts can be a complex task. An RTE simplifies this by serving as the single point of contact and oversight. This streamlined coordination not only makes managing the teams more straightforward but also ensures that everyone is moving in sync, following a unified strategy. The presence of an RTE thus leads to smoother operations, clearer communication, and a more cohesive approach to reaching project milestones. ::: greybox Appoint an RTE for centralized coordination and management. @@ -70,9 +57,7 @@ Appoint an RTE for centralized coordination and management. ### Enhanced Communication -An RTE is not just a facilitator but a vital communication nexus within the Agile Release Train. In complex projects with multiple stakeholders, messages can easily become muddled or lost in translation. The RTE actively works to prevent this. By maintaining open, clear channels of communication, they ensure that everyone, from team members to top management, is on the same page. - -This enhanced communication is key to avoiding misunderstandings, ensuring transparency, and fostering a collaborative environment. Ultimately, it contributes to the overall health and success of the project, keeping everyone aligned and focused on common goals. +An RTE is not just a facilitator but a vital communication nexus within the Agile Release Train. In complex projects with multiple stakeholders, messages can easily become muddled or lost in translation. The RTE actively works to prevent this. By maintaining open, clear channels of communication, they ensure that everyone, from team members to top management, is on the same page. This enhanced communication is key to avoiding misunderstandings, ensuring transparency, and fostering a collaborative environment. Ultimately, it contributes to the overall health and success of the project, keeping everyone aligned and focused on common goals. ::: greybox Rely on an RTE for effective communication between teams and stakeholders. @@ -84,6 +69,4 @@ Bad Example - Lack of an RTE can lead to communication gaps, causing delays and ## Conclusion -Employing a Release Train Engineer (RTE) is more than a strategic decision; it's a critical component for success in any scaled agile framework. - -An RTE does much more than just keep the wheels turning; they ensure that multiple agile teams work in harmony, like a well-oiled machine. From seamless communication and pinpoint coordination to adept conflict resolution, the RTE's role is multifaceted and indispensable. They stand as the cornerstone of any Agile Release Train, orchestrating efforts to drive efficiency, alignment, and, ultimately, success. +Employing a Release Train Engineer (RTE) is more than a strategic decision; it's a critical component for success in any scaled agile framework. An RTE does much more than just keep the wheels turning; they ensure that multiple agile teams work in harmony, like a well-oiled machine. From seamless communication and pinpoint coordination to adept conflict resolution, the RTE's role is multifaceted and indispensable. They stand as the cornerstone of any Agile Release Train, orchestrating efforts to drive efficiency, alignment, and, ultimately, success.