<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Michael Landry</title>
    <description>The latest articles on DEV Community by Michael Landry (@milandry).</description>
    <link>https://dev.to/milandry</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F647509%2F6a2025d3-9842-40a4-a6da-2ea225aadb8a.jpeg</url>
      <title>DEV Community: Michael Landry</title>
      <link>https://dev.to/milandry</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/milandry"/>
    <language>en</language>
    <item>
      <title>A Tier List for Company AI Strategies.</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Mon, 12 Jan 2026 00:36:24 +0000</pubDate>
      <link>https://dev.to/milandry/a-tier-list-for-company-ai-strategies-3fmo</link>
      <guid>https://dev.to/milandry/a-tier-list-for-company-ai-strategies-3fmo</guid>
      <description>&lt;p&gt;Often these days, conversations inevitably turn to the topic of AI. While we should expect this as it has and will continue to transform our world, I can't help but note the rather disparate takes, understandings and discourse on the matter, even amongst IT professionals. While most of us don't possess deep academic training on the subject, myself being more of a hobbyist for most of my engineering career, and have spent most of our existence in a world where AI was just a curiosity, I always observe a certain juvenile quality to these conversations, as if the masses were thrust into carrying on an informed conversation on a matter that takes years and years to master. &lt;/p&gt;

&lt;p&gt;And so I offer to the reader this tier list of organization AI strategies. These conversations help me realize that the majority of companies are still adjusting to this new world, with most making sincere efforts to appear informed yet still searching for the path to post scarcity AI nirvana.&lt;/p&gt;

&lt;p&gt;Aside from drawing parallels between colleagues and companies, it frames the topic of AI in terms of a natural progression from the nature of the change, to level of impact it can have, and what to expect from the next level of transformation, and what will be needed to reach the next level.&lt;/p&gt;

&lt;p&gt;I offer these 5 tiers, with a fun culinary spice to them. Tier I contains more points than any of the other tiers. Seeing how all organizations start their journey here, and that most companies are at this level, this is to be expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  I: Sprinkle
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Light opportunistic exploitation of AI solutions&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Characterized by 'sprinkling' AI on existing solutions and processes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Often, these 'AI' strategies are just application of traditional IT/computer solutions mislabeled as AI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tier I strategies also claim AI utilization through curation of AI-labeled vendors, tooling, basic plugins, and integrations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tier I strategies are often broad yet shallow, and lack measurement or KPIs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No formal strategy, training, or organizational mandates provisioned nor imposed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tier I strategies are spearheaded by leaders with very little AI fluency or perhaps technology in general, who rely on an assumed instinctual understanding of AI and its value proposition (as an example, contrasting different AI methodologies such as deep learning, neural network, generative AI, LLM, etc, and how these techniques differ in suitability to solving different problems). &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  II: Stir
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Deliberate integration of AI into specific workflows and tools.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Strategists have at least a basic understanding of AI as a field.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vendors and tooling undergo informed analysis before adoption; such integrations feature custom integrations and configurations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Organizational adoption features basic guidelines and training.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Focus on boosts and efficiency is targeted. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Changes are still additive rather than transformative.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  III: Simmer
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Deep embedding of AI across multiple functions, with custom solutions and data feedback loops.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Organizational leaders either possess AI fluency or consult and delegate AI adoption and operations to informed strategists.&lt;/li&gt;
&lt;li&gt;Fine-tuned models, internal AI platforms, agentic workflows (AI agents that plan and execute multi-step tasks), and RAG systems.&lt;/li&gt;
&lt;li&gt;Cross-functional governance, data infrastructure investments, and measurable ROI tracking.&lt;/li&gt;
&lt;li&gt;AI influences decisions, optimizes operations, and starts reshaping how work is done.&lt;/li&gt;
&lt;li&gt;Core contributors (engineers, dbas, managers, etc) must up-skill in the AI domain. Legacy roles and titles are augmented and replaced by AI oriented skillsets.&lt;/li&gt;
&lt;li&gt;The organization recognizes the criticality of quality data, and begins investment and enhancement of data architecture and data sourcing.&lt;/li&gt;
&lt;li&gt;The organization is "letting AI simmer" — changes are gradual but pervasive.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  IV: Bake
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;AI is baked into core business processes and products; the company redesigns operations around AI capabilities.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enterprise-wide platforms, autonomous agents/swarm systems, predictive analytics at scale, and AI-driven automation of complex workflows.&lt;/li&gt;
&lt;li&gt;Significant talent hiring, ethical frameworks, and cultural shift toward AI fluency.&lt;/li&gt;
&lt;li&gt;New revenue streams or cost structures emerge from AI (e.g., AI-powered products or services).&lt;/li&gt;
&lt;li&gt;AI is no longer a layer — it's fundamental to how value is created.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  V: Feast
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;AI-native transformation: the entire organization is built or rebuilt around AI as the primary driver.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The organization is now an industry leader thanks to an exponential advantaged realized through AI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Continuous AI-human collaboration and evolution of proprietary AI models.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quick hits
&lt;/h2&gt;

&lt;p&gt;My new phrase-of-the-week goes to &lt;em&gt;artisan code&lt;/em&gt;. It will be difficult to talk about code as just &lt;em&gt;code&lt;/em&gt; anymore. Instead, we will have to qualify it somewhere on the artisan code &amp;lt;--&amp;gt; AI slop spectrum. I can imagine myself in the not-too-distant feature telling people about how companies used to source all of their software directly from wetware, but that such a thing is a luxury for deep-pocketed patrons skulking in Parisian botiques yearning for the beautiful, clean code of halcyon days.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>leadership</category>
    </item>
    <item>
      <title>Constraint-based Design</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Fri, 23 Feb 2024 21:03:29 +0000</pubDate>
      <link>https://dev.to/milandry/constraint-based-design-2lpo</link>
      <guid>https://dev.to/milandry/constraint-based-design-2lpo</guid>
      <description>&lt;p&gt;&lt;em&gt;Image courtesy of &lt;a href="https://www.vectorstock.com/"&gt;https://www.vectorstock.com/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This article seeks to establish the concept of Constraint-based Design (CBD), especially as it pertains to code design, system architecture, and the Software Development Lifecycle (SDLC). There are &lt;a href="https://www.figma.com/resource-library/constraints-in-design/"&gt;similar articles&lt;/a&gt; and scholarship on this eponymous term, however, I am to establish CBD as critical to all participants of software projects. &lt;br&gt;
&lt;strong&gt;Constraint-based Design is the idea that the capabilities of a system or solution are best understood not only by its features and capacities, but also, if not more so, by its limitations and constraints.  CBD is a very effective paradigm to adopt during the design and architecture phases of SDLC. It, paradoxically, makes for &lt;em&gt;simpler&lt;/em&gt; and &lt;em&gt;easier&lt;/em&gt;  designs and problem-solving sessions by limiting the decision points and options to well-understood and predictable patterns. It also makes for better developer experience as engineers come to rely on, familiarize, and continually enhance known patterns and solutions. Stakeholders, Project Managers, and Product Owners are also able to make much more informed decisions when considering customized solutions for specific problems solved by CBD systems. Lastly, project costs are ultimately reduced as CBD forces implementations into highly reusable components that are very well understood and robust.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A real world example
&lt;/h2&gt;

&lt;p&gt;If you needed to fly somewhere. You would task engineers to build a plane. A plane is very good at flying; that is its singular purpose and responsibility. In some circumstances however, it turns out that it may be useful to have a vehicle that can both fly and float. Thus, the plane is redesigned for seaworthiness and liquid propellers. This is where care needs to be taken. This is not a case against amphibious planes, that seems cool and situationally useful, but it illustrates the problem when there is a lack of CBD. What if this vehicle needs a torpedo bay ? How would a torpedo bay effect its flying ability?  Would adding a bomb door cause the vehicle to sink? The analogy tells us that adding features, even a singular feature, can complicate or adversely impact the other features offered by a solution. The analogy is also that of the need to beg an important question, does this vehicle even need to be amphibious? CBD is essential in driving better design conversations. Perhaps some situations merit the amphibious vehicle, but a team that embraces CBD must first ask themselves, are there alternatives that satisfactorily solve the need at hand? With the constraint in place that the solution must be an airborne vehicle, then the design team is forced to consider more practical solutions to whatever the need is, and also consider the cost and benefit of any such design. The truth is that every system has constraints and limitations. Building systems without adopting CBD doesn't result in boundless, omnipotent solutions, only solutions where its shortcomings are poorly understood.&lt;/p&gt;

&lt;h2&gt;
  
  
  CBD is a mindset
&lt;/h2&gt;

&lt;p&gt;CBD is ultimately a mindset; a paradigm we should all advocate and adopt. With it, stakeholders better understand the limitations and capacities and strengths of their solution. Product Owners should realize better returns on resource investment by solving variations on recurring problems by acknowledging the constraints of a system and leveraging the existing features and capacities. Architects will build frameworks designed to solve anticipated problems; these frameworks are the primary source of constraints, and by creating such constraints, they can also make empowering assumptions about the system and system state which can be exploited to provide predictable, regular, and well understood solutions to known typical problems. Solution designers use existing patterns precedent to compose solutions to new problems. Engineers work within the confines of tools and states where certain assumptions can be guaranteed and exploited.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;It is usually more beneficial, and informative, to view systems and their constraints, rather than their features. Understanding and embracing system constraints protects stakeholders from mal-investments in dysfunctional and confusing solutions, leads to better and simpler designs and yields higher quality and more robust implementations.&lt;/p&gt;

</description>
      <category>sdlc</category>
      <category>design</category>
      <category>architecture</category>
    </item>
    <item>
      <title>New Job? New Project? Existing Project needing some tweaks? Go through this checklist ☑️</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Wed, 02 Aug 2023 22:55:06 +0000</pubDate>
      <link>https://dev.to/milandry/new-job-new-project-existing-project-needing-some-tweaks-go-through-this-checklist-1hah</link>
      <guid>https://dev.to/milandry/new-job-new-project-existing-project-needing-some-tweaks-go-through-this-checklist-1hah</guid>
      <description>&lt;p&gt;I hope this article finds you well! I've compiled this checklist for the benefit of anyone reading this, be they an engineer or manager, experienced or junior, starting on a new project or trying to tweak an existing one for better results. Starting a new software project can be both exciting and overwhelming. Whether you are an experienced developer or a newcomer to the world of software development, having a well-defined checklist can significantly improve the chances of success for the project and your time with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Identify the Product Owner
&lt;/h2&gt;

&lt;p&gt;This is the most important box to check. Your PO determines the success or failure of the project. This person is responsible for understanding the problem, visualizing the solution, and translating it into requirements that can be feasibly implemented by the team and their technology and capacity. The biggest painpoints all orbit around this individual, such as "timelines," "estimates", "scope", and goals, and for anyone with a decent amount of experience in the game knows these lyrics show up in every chorus.&lt;/p&gt;

&lt;p&gt;If you have a rockstar PO who's killing it, then great! Your project is on a great start! For those projects where this isn't the case, I'd offer the following points:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.scrum.org/resources/what-is-a-product-owner"&gt;Official Scrum guides specify that the PO should be a single person, and with good cause&lt;/a&gt;. If your project is going to deviate from this decision, there should be a well-understood reason as to why.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There is probably no such person who completely will understand both the business side and the technical side of a project. For that reason, it should be understood that the PO will ineviatbly have to delegate some responsibility to appropriate collaborators, and that's okay. With that said, it should go without saying that the team should do everything to support the PO and help them achieve their goal, including regular communication and advisement.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. Knowledge is flowing
&lt;/h2&gt;

&lt;p&gt;Everyone should feel like they have all the nessessary information to be successful. This should all be very transparent and accessable. Good signs are tickets that have great descriptions, and more importantly layout steps that can be followed in order to test that the work is complete, and that the scope is well defined. If it seems that the work is not clear for the contributors that are doing the work, then consider the following tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ask for people to ask questions and get feedback. Ensure that everyone feels comfortable asking for help.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Meetings are the primary way to communicate, but try to steer away from meetings that are too long or too frequent. I always find better results creating shorter meetings, with only the nesssarry participants, and whenever possible I like to brand them more as 'workshops' than meetings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Really focus, as a team, on creating good tickets. Working from a perspective of what should it do, to how to test it, and then finally how to implement it will be key. Test Driven Development!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. The developer loop
&lt;/h2&gt;

&lt;p&gt;The developer loop should be as quick as possible. This means that the time between making a change and seeing the results of that change should be as short as possible. This is a key factor in developer happiness, and it's also a key factor in the quality of the code. It's not feasable to meet work commitments if the developer loop is too long. If it takes too long to see the results of a change, loop into better tooling that allows more immediate feedback, such as hot reloading, or embrace a test driven development approach where business requirements can be declared and confirmed using a test harness that should in most circumstances provide faster feedback than normal approaches.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Following good SDLC practices and doing them correctly
&lt;/h2&gt;

&lt;p&gt;It should go without saying, but following good SDLC practices is key to success. This means that the team should be following a well defined process that is understood by all. This process should be well documented, and should be followed by all. If there are any deviations from the process, they should be well understood and documented. It's very easy to skip things that don't seem to matter, like retrospectives, especially when project hardships are being felt. However, following processes matter the most when things become difficult. If it feels like SDLC processes are being skipped, then have conversations about why with your colleagues, and you may find that you may not be alone in your feelings, which can be empowering to bring the team back torwards success&lt;/p&gt;

&lt;h2&gt;
  
  
  5. The Backlog is in good shape
&lt;/h2&gt;

&lt;p&gt;While it ultimately falls on the Product Owner to manage the backlog, it should be in everyone's interest to ensure that the backlog is in good shape. Consider the following tips to ensure this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Is there a regular cadence where teammates review and refine the items?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Does the system in place fit the team and the project? Perhaps creating more structure around tickets could help foster a better approach to creating tickets, such as designating custom fields that allow ticket creators to define steps to test, scope, and other important information.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Does everyone have a similar understanding of the relationships between tickets? It can and should vary by team and project, but within a team, there should be a common understanding of how tickets and their heiherarchies are organized.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. Foster the culture of testability and observability
&lt;/h2&gt;

&lt;p&gt;Testing and observability should be at the forefront when planning new project challenges. This means that the team should be thinking about how to test and observe the work that they are doing. As alluded to earlier, encouragement and guard rails, such as ticket templates that ask for such information, can help foster this culture. When planning for a project, consider allowing the testers and quality assurance team to take an active, rather than reactive, role to the design and implementation of the solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Position for success, never failure
&lt;/h2&gt;

&lt;p&gt;Ultimately, everyone on a team should feel like they are in a position to be successful. Success should be the default. If delays and failures are the norm, then the team will have to make significant (and ideally blameless) changes to the project approach. Consider the following tips to ensure that the team is positioned for success:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;No existing process or tooling should be considered sacred. If something isn't working, then it should be changed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is the work too difficult or structured in a way that makes it difficult to complete? Consider breaking the work down into smaller chunks, or reorganizing the work into a different structure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are contributors empowered to reach out, and communicate, and collaborate? Often times, the challenges of a project are not nessesserily hard, but that people don't have what they need to succeed, and they will need to get it from someone else who has what they need.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;By following this comprehensive checklist, you can lay a strong foundation for your new project and increase the chances of its success. Remember that flexibility and adaptability are crucial in the dynamic world of software development, so be prepared to iterate and refine your approach as the project progresses. Good luck with your project!&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4gl5BjUI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/evuj42ish8mxvlxv8643.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4gl5BjUI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/evuj42ish8mxvlxv8643.jpg" alt="Image description" width="483" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>project</category>
    </item>
    <item>
      <title>Improving Human-Computer Interfaces</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Fri, 24 Feb 2023 20:15:57 +0000</pubDate>
      <link>https://dev.to/milandry/improving-human-computer-interfaces-2c49</link>
      <guid>https://dev.to/milandry/improving-human-computer-interfaces-2c49</guid>
      <description>&lt;p&gt;&lt;em&gt;Cover art copyrighted by Fantasy Flight Games&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ideally, as professionals who interact with computers to complete their work, minimizing the friction between our thoughts and querying the appropriate data or updating the appropriate records or accessing the necessary system should be a paramount goal. The more imaginative minds might arrive at the following mental image, clamoring that useful convenient virtual reality can't come soon enough.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vba7EjaQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/el7roefw6z23lb8axrls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vba7EjaQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/el7roefw6z23lb8axrls.png" alt="hologram ui" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Image by Urku 3DArt&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is a great idea, but, being realistic, this is a ways off, and there is plenty of friction I see at play that can be removed with well-focused effort. Consider the following exhibit:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4mTlfoaL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yq82gign4m99ukrqryhj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4mTlfoaL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yq82gign4m99ukrqryhj.jpeg" alt="too many tabs" width="850" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a common sight I witness on a daily basis, and occasionally it elicits a comment in jest, but for me, I'd stress at the thought of my virtual work area, where I spend the majority of my time contributing to building a better place, as being disheveled like this.&lt;/p&gt;

&lt;p&gt;In the worst case scenario, if we cannot see the tabs and have no recollection of where the desired tab would be, the worst case outcome would be to have to check every single tab. Multiply this by the number of times changing interfaces is needed in order to complete a typical task, we are looking at a lot of lost time here. (For you time complexity junkies, the worst case time cost here is xy, where x is the number of tabs typically open and y is the number of times the user has to access an interface, 2 typically large numbers, costing a polynomial amount of time when it should be a constant operation)&lt;/p&gt;

&lt;p&gt;As a software engineer, I want to spend my time building and delivering software, not wrestling with my tooling.&lt;/p&gt;

&lt;h2&gt;
  
  
  How did this happen?
&lt;/h2&gt;

&lt;p&gt;Turing back the clock, I have a distinct memory of the Opera Web browser being the first major browser to introduce tabbed browsing. I can't claim that that information is accurate, but historically speaking, shortly after tabbed browsing debuted, every browser had it, and people came to use it, because it was an improvement over the existing design. Unfortunately, the typical user of today can expect to require touching multiple web interfaces, numbering in the dozens for a single task, and the tabbed browsing approach is no longer sustainable. Noble efforts are being made, in form of 'grouped tabs' and other gimmicks, but ultimately, a paradigm shift is needed to tackle the issue properly. Let's se if we can do better!&lt;/p&gt;

&lt;h2&gt;
  
  
  Thinking beyond
&lt;/h2&gt;

&lt;p&gt;As per the title, I didn't want to make this a blog specifically to be a diatribe on the shortcomings of browsers, but the problem in general. "How do we remove as much friction between the brain and the computer system?" Thinking deeper about a computer, its primary purpose in interacting with humans is to show requested interfaces to the human. What I really want to focus on is improving the journey from the inception of the thought in the brain to the interface on the screen. Most minds usually conclude that a specific task needs to happen, and a specific tool(interface) will complete the task. Using the following mental conversation as an example:&lt;/p&gt;

&lt;p&gt;"I need to look at production logs"&lt;/p&gt;

&lt;p&gt;The only mental effort here should be to parse that idea into an input of sorts that could then be used to fetch the appropriate interface. Perhaps something like&lt;/p&gt;

&lt;p&gt;" logs &amp;gt; production"&lt;/p&gt;

&lt;p&gt;With further possibilities to disambiguate the parts of production as needed.&lt;/p&gt;

&lt;p&gt;This simplicity certainly outshines the current status quo which is usually something along the lines of&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"I need to look at production logs.&lt;br&gt;
Is that an application installed on my computer, or a webapp?&lt;br&gt;
Its a web app... Okay, now I need to find the (right) browser (if its already open, or I need to open a new on?)&lt;br&gt;
Browser already open here, and I have 40 tabs open. Gotta search through these tabs... Actually, I'll just open a new tab.&lt;br&gt;
What is the URL for production logging? I've stashed it into my bookmarks somewhere... Looking at the bookmark library now, how is this sorted? Okay, I know, navigating through the tree of directories to get to the desired bookmark.&lt;br&gt;
new tab opened, now I have to navigate this site in order to get to the correct interface to solve my problem..."&lt;/em&gt;&lt;br&gt;
And on and on...&lt;/p&gt;

&lt;h2&gt;
  
  
  Optimizing the OS UI-UX.
&lt;/h2&gt;

&lt;p&gt;What I am aiming to establish is that operating systems were designed first and foremost to mediate between computer software and the underlying metal, and secondly as a suite of user interfaces intended to be as generic as possible, IE, NOT optimized for efficiently executing common workflows flows of a particular user. With its rich and storied journey of going from punch cards to assembled native applications to "byte code" apps that run in virtual boxes, to browser apps and every branch, side road, and failure along the way, computers are always evolving according to the "laws of the jungle" rather than whatever was necessarily the best user experience. What I also want to suggest is that any interface and interaction can, and should be investigated for improvement. As a developer, I spend a lot of time in a terminal, and not necessarily by choice, and I really like to think in terms of 'build the thing' instead of &lt;code&gt;./gradlew -A -s -xsns 2048 10240 'tcp port 80 and (((ip[2:2] - ((ip[0]&amp;amp;0xf)&amp;lt;&amp;lt;2)) - ((tcp[12]&amp;amp;0xf0)&amp;gt;&amp;gt;2)) != 0)' | egrep --line-buffered "^........(GET |HTTP\/|POST |HEAD )&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Candidate Solutions
&lt;/h2&gt;

&lt;p&gt;We will all have different tastes, and I wanted to establish a springboard of sorts for thinking about the nature of this problem, and ways to improve. I'll share some of the following techniques I've come across which you are welcome to use or as inspiration for your own taste and situation.&lt;br&gt;
I've found the &lt;a href="https://www.keyboardmaestro.com/main/"&gt;Keyboard Maestro&lt;/a&gt; application to be the most powerful weapon in my arsenal on a Mac for improving my day to day toil in building the interfaces I want. It's an app that I use to convert my computer into a friction-free tool that solves the problems I face day to day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Requesting the desired interface
&lt;/h2&gt;

&lt;p&gt;The majority of the value Keyboard Maestro delivers is in the form of loading the right interface I need. After several iterations, I've arrived at the following solution. After pressing a specified key (I chose F1), the user is shown a list of options to select. Once presented the user may click (or, more often) type the target choice (once enough letters are submitted to unambiguously identify the target, the option fires). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8705cLMH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hlfntjkspd4ay95ybmqr.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8705cLMH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hlfntjkspd4ay95ybmqr.gif" alt="Image description" width="726" height="760"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;Every interface I might need is stored in a tree of words. I just have to know the name I assigned it (with the option of adding redundant options to reach the same interface), type it, and I am already where I want to be.&lt;/p&gt;

&lt;h2&gt;
  
  
  Massaging the approach
&lt;/h2&gt;

&lt;p&gt;Well almost. There is the option, and the temptation, to group different interfaces into collections, then bind that collection to various keystrokes or triggers, but I found that lumping everything together into a single group cut down on the extra overhead of trying to remember or assign specific interfaces to specific groups and the resulting and tedious internal philosophical discussions of deciding how to group items, why group them that way, and what to do when something breaks the convention ... With the exception that I've bound IDE-projects interfaces to F5 and repository viewers (aka Github deeplinks to corresponding projects) to F8, and interfacing with project management software (aka Jira) with F2 due to the frequency of these invocations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Story time! An example
&lt;/h2&gt;

&lt;p&gt;My personal experience as a software engineer leads me to conclude that I probably spend more time going back and forth with colleagues about story requirements, details, and updates than I do actually implementing them. As such, I've put some thought and effort into removing the friction of dealing with Jira stories. Consequently, it makes for a fine example of what is possible using an approach like mine. Keyboard Maestro comes with easily programmable GUI interfaces, which I exploit in order to facilitate receiving prompts for only what the computer needs, and letting the scripting deal with the toil. I have such a GUI interface I use for All Things Jira, which becomes the target interface I invoke when that becomes my task. As mentioned previously, I could press F1, then type 's'-'t'... or just  hit F2 as it's common enough to merit an even faster shortcut.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ye6JpO43--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1fbwnpbsnkc734vqmm2r.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ye6JpO43--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1fbwnpbsnkc734vqmm2r.gif" alt="keyboard maestro story time macro" width="748" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;pressing F2, as you see here brings up a default value of 12345. That is my 'current story number'. I could overwrite it with a different number, at which point the new number becomes the 'current story number'. That value will also populate in other interfaces across macros. &lt;/p&gt;

&lt;p&gt;"open in chrome" will open the webpage for the ticket in question. It is a blue button meaning that its the default choice if 'enter' is pressed, so F2-enter brings up the details of my current story. Super convenient!&lt;/p&gt;

&lt;p&gt;"paste story url" puts the url of the current story on my clipboard. This is a huge time saver when I need my colleagues to take a look at said story.&lt;/p&gt;

&lt;p&gt;"set current story" binds the current story number with a 'description', and remembers it forever in a dictionary built into Keyboard maestro. Binding a 'description' to a story number is also immensely convenient, as more often than not, there is a great deal of ceremony and ritual around branch names, commit messages, pr descriptions and juggling tickets. and the description really comes in handy for tying all that together. Its an example of set-it-then-forget-it way of describing tickets and never having to worry or fret about branches, tickets, pr descriptions, and commits getting out of sync.&lt;/p&gt;

&lt;h2&gt;
  
  
  Alternative Tools
&lt;/h2&gt;

&lt;p&gt;For further considerations, I'd recommend auto hot key for windows, toby extension manager, and the time proving practice of writing shell scripts is always available.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Imaginative sci-fi authors have provided fantastical concepts for empowering us bags of meat to access cyberspace. The current reality is still quite far removed, with many still caged up in cubicles pecking away at plastic keys. All the same, some effort and imagination can cut the friction and toil that inserts itself between us and our craft, and hopefully some of those ideas will spill over into how mainstream user interfaces are designed and delivered to the masses.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>ux</category>
    </item>
    <item>
      <title>Standing on the Shoulders of Giants: the Articles and Resources that have Shaped my Career.</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Sat, 26 Nov 2022 02:46:54 +0000</pubDate>
      <link>https://dev.to/milandry/standing-on-the-shoulders-of-giants-the-articles-and-resources-that-have-shaped-my-career-26b6</link>
      <guid>https://dev.to/milandry/standing-on-the-shoulders-of-giants-the-articles-and-resources-that-have-shaped-my-career-26b6</guid>
      <description>&lt;p&gt;I am sharing this list of articles, videos and books as the topics covered are critical to any developer. These are the articles I found looking for answers when I needed them; there may different or better works covering the same ideas that we all find on our journey, but these were what I found when I needed them, and they have molded my ideas on software engineering. As a writer and one who wants to give back to the community, I also found that creating this post solves two problems: it helps me consolidate all of the critical but not obvious knowledge about the profession, and it helps me identify the major gaps of knowledge that needs to be penned to paper, and while I can certainly provide my take on all of these critical issues, I don't think that I can do it better than what has already been authored, and I really want to focus my efforts on high impact topics with little exposure. I'll probably periodically update it as they come to me.&lt;/p&gt;

&lt;p&gt;With that intro out of the way, here is the list, and my thoughts on their importance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Development Lifecycle
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://agilemanifesto.org/"&gt;http://agilemanifesto.org/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No excuse not to read it if you have not done so yet. It's only 413 characters and it can fit in 2 tweets. It really helps to frame what Scrum tries to do, and understanding the Agile Manifesto makes seeing Scrum for what it is, a logical yet somewhat simple tool for reliably building software&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/The_Mythical_Man-Month"&gt;&lt;em&gt;The Mythical Man Month&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The original Encypcopedia of SDLC antipatterns. What is striking is that these antipatterns are really not obviously antipatterns, illustrated by the fact that these practices continue to scourge software projects still today. A reading of this book brings with it an understanding that the hectic, panicked, and chaotic ambience of the project is a pretty typical experience. The reader would also possess the ability to pinpoint the particular practices that enivitably bring about the failures.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.codinghorror.com/we-hire-the-best-just-like-everyone-else/"&gt;https://blog.codinghorror.com/we-hire-the-best-just-like-everyone-else/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you don't know who Jeff Atwood is, you should. His articles are a treasure trove of software-people intersections. We who also practice Clipboard-Driven-Development (CDD) also owe him a debt of gratitute for &lt;a href="https://stackoverflow.com/"&gt;https://stackoverflow.com/&lt;/a&gt;. 😉&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://thecontextofthings.com/2018/03/14/stop-hiding-behind-busy-lies/"&gt;The Temple of Busy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cynical yes, but quite on point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Programming
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=QM1iUe6IofM"&gt;Object-Oriented Programming is Bad&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Provocative but well thought out. It is also a reminder to listen to that alarm going off in your head when you find yourself disagreeing with the sacred idols of the industry.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html"&gt;The Kingdom of Nouns&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Key ideas when comparing Java to other languages. The article has aged well having watched all of the new versions of Java doing everything in their power to ship out functional features without having to conjure up some intermediary class to house it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.codinghorror.com/kiss-and-yagni/"&gt;KISS and YAGNI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;May want to toss in Principle of Least Suprise as well&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@NeetCode"&gt;NeetCode&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Data structure and Algorithm training. Aside from the obvious Crack the Coding Interview , Neetcode has provided the absolute best resource for it, &lt;/p&gt;

&lt;h2&gt;
  
  
  Functional programming
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.educative.io/courses/functional-programming-patterns-with-ramdajs"&gt;Learn FP and Ramda&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://learnyouahaskell.com/chapters"&gt;Learn Haskell&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Versioning and build pipelines
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nvie.com/posts/a-successful-git-branching-model/"&gt;Gitflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I don't actually condone the suggestions in this article, nor does the author anymore for that matter, but the majority of the software industry still reveres these concepts, thus making it extremely important reference material&lt;/p&gt;

</description>
      <category>sdlc</category>
      <category>career</category>
    </item>
    <item>
      <title>95% of your Project Hardships are Caused by this One Thing, a Failure to Communicate.</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Sun, 06 Nov 2022 00:03:25 +0000</pubDate>
      <link>https://dev.to/milandry/95-of-your-project-hardships-are-caused-by-this-one-thing-a-failure-to-communicate-2dph</link>
      <guid>https://dev.to/milandry/95-of-your-project-hardships-are-caused-by-this-one-thing-a-failure-to-communicate-2dph</guid>
      <description>&lt;p&gt;"Good communication is the bridge between confusion and clarity" according to Nat Turner. If confusion grips your project on a daily and weekly basis, as I often find for many projects, then it befits the entire team to recognize, accept, and address the root cause: we are not doing a very good job communicating our ideas. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Good communication is the bridge between confusion and clarity&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I would even make the case that the majority of the more recognizable smells, anti-patterns, and mistakes are just specific instances of failures to communicate: incomplete requirements, wrong abstractions, ticket deadlocks, and failing processes to name a few. &lt;/p&gt;

&lt;h2&gt;
  
  
  Defining Communication
&lt;/h2&gt;

&lt;p&gt;The concept of communication is deep, and should rightly be considered a &lt;strong&gt;critical&lt;/strong&gt; skill needed for success in any endeavor, and one that has to actively be honed. With that being said, the fundamental fact of communication is that the ability to express oneself &lt;em&gt;pales&lt;/em&gt; in importance to the ability to &lt;strong&gt;listen&lt;/strong&gt;. Being mindful of this listening component is important when understanding how it impacts a software project.&lt;/p&gt;

&lt;p&gt;I also highlight an ofter overlooked fact, &lt;em&gt;source code&lt;/em&gt; is a form of communication. It is probably the most complex way that people communicate in a regular basis. When writing source code, the author is writing for at least two audiences, humans who will read it to derive specifications and to maintain it, and for compilers that will execute its instructions in the most strict of adherence to grammar and syntax. When evaluating the competency of a prospective software engineer, their ability to speak, write, read, listen, and communicate is going to be a much better predictor of their capacity to read and write source code than something more relatively banal such as calculating time and space complexities of a given algorithm. This is why I  repeatedly endorse the merits of linguistic skills over all others, and that the right way of judging code is by clarity, lucidity, and understandability, and not complexity, sophistication, or even elegance.  Experienced engineers write code that is easy to understand, not code that is so complex that only experienced engineers could comprehend it.&lt;/p&gt;

&lt;p&gt;Outside of code, consider all of the following things and how they are manifestations of communication: unit tests, designs and diagrams, READMEs, meeting notes, agendas, emails, Slack threads, discussions, tickets, comments, code reviews, and on and on... All of these activities are chances to contribute to the success of the team, or to miscommunicate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples of miscommunication and examples
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Miscommunication&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ambiguity&lt;/td&gt;
&lt;td&gt;A colleague raises a discussion about a bug, but assumes that everyone knows which bug they are talking about, when in fact there are many bugs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong Audience&lt;/td&gt;
&lt;td&gt;A colleague authors a guide, but its voice drifts from deeply technical to more of a sales pitch, and entirely without a target audience in mind&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wrong Information&lt;/td&gt;
&lt;td&gt;the wrong date for a deadline is set&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Concealed Information&lt;/td&gt;
&lt;td&gt;A colleague with critical project or corporate knowledge and information fails to disclose or document the knowledge.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;wrong context&lt;/td&gt;
&lt;td&gt;A discussion of pros and cons fail to take into account whether it is in regards to meeting an immediate need, or for long term planning&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;absence of communication&lt;/td&gt;
&lt;td&gt;A technical ticket is written with no description, a README or document doesn't exist.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;unresponsiveness&lt;/td&gt;
&lt;td&gt;A colleague 'ghosts' requests, creating a bottleneck for some result&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;assumptions about the audience&lt;/td&gt;
&lt;td&gt;A speaker assumes that the audience is highly technical, or knows obscure acronyms.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;failure to listen&lt;/td&gt;
&lt;td&gt;Every effort is made to inform colleagues about a concern, but no action is taken.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;failure to discuss&lt;/td&gt;
&lt;td&gt;Unforeseen challenges arise, instead of raising these new issues and alerting that deadlines may have to be pushed back, nothing is said, and the work silently fails&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;With so many ways to fail to communicate, one should never underestimate how much these failures can harm a project.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Thought Experiment
&lt;/h2&gt;

&lt;p&gt;To further cement this idea, just think back to the last hardship or failure on your current project. Was it caused by bad communication, or could have it been prevented with better conversation? I thought so 😀. &lt;/p&gt;

&lt;h2&gt;
  
  
  Recommendations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  For you and your Career
&lt;/h3&gt;

&lt;p&gt;My first recommendation is to understand the true gravity that miscommunication has on a project. Additionally to this, and my objective of the article, is that I want you, as civilly as possible, to &lt;strong&gt;call out miscommunications loudly and often&lt;/strong&gt; as they create hardships on the project.&lt;br&gt;&lt;br&gt;
 Secondly, I highly recommend improving your own communication skills. This topic is beyond the scope of a single blog post, but aside from the obvious recommendations, which one would immediately find after a few minutes of googling such as reading, using a thesaurus, and brushing up on grammar, I would attribute a large amount of failure to a not-so-obvious source: coloring and obstructing information through the prism of one's ego. While it might feel dropping an endorsement of a self-help book in a communication blog, reading &lt;em&gt;&lt;a href="https://www.amazon.com/Power-Now-Guide-Spiritual-Enlightenment/dp/1577314808"&gt;The Power of Now&lt;/a&gt;&lt;/em&gt; has been very instrumental for me to pick up on these errors and how they happen.&lt;br&gt;
In addition, I think that staying up-to-date on the latest industry trends through constantly reading articles like these are a great way to hone this skill, but taking on a writing hobby does wonders as well. I personally think that engineers should hone their writing skills just as much as one's coding skills.&lt;/p&gt;

&lt;h3&gt;
  
  
  What your Team can do
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Research&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are plenty of resources on the internet that can help your team communicate better. It would not be a waste of time to implement some of the suggestions offered by more authoritative foundations, such as &lt;a href="https://www.atlassian.com/blog/teamwork/effective-communication-in-the-workplace"&gt;Atlassian&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Define Ubiquitous Language&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'll let &lt;a href="https://martinfowler.com/bliki/UbiquitousLanguage.html"&gt;Martin Fowler&lt;/a&gt; layout the case for it. Practically speaking, if your project doesn't have some sort of pattern for documenting the specific words that you use throughout the project, an easy win is to write it up and share it with the team.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Introspection and action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;recognize the dynamics of your projects 'office', being especially cognizant of any hybrid or remote colleagues on the team.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve your code review process&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This topic is getting a lot more attention lately, and deservedly so.&lt;a href="https://daedtech.com/how-to-use-a-code-review-to-execute-someones-soul/"&gt; This particular article by Erik Dietrich&lt;/a&gt; really distills the vitriol of the practice into words&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve your meetings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A lot of communication anti-patterns are on full display at a typical project meeting. Fixing these meetings are a good starting point. &lt;a href="https://news.yahoo.com/walk-meeting-elon-musk-six-154936765.html"&gt;Elon Musk&lt;/a&gt; has a lot of thoughts on the topic as well that resonate with my experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Software engineering is a discipline of communication, and software is built as a team. Great communication skills will serve you greatly as an engineer, and is paramount to becoming a leader in the field. You owe it to you and your team to make sure that the ideas that we share and receive are done correctly.&lt;/p&gt;

</description>
      <category>sdlc</category>
      <category>career</category>
    </item>
    <item>
      <title>Dynamos vs Planners, an Important Profile Spectrum for Engineers</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Wed, 26 Oct 2022 20:18:41 +0000</pubDate>
      <link>https://dev.to/milandry/dynamos-vs-planners-an-important-profile-spectrum-for-engineers-2jln</link>
      <guid>https://dev.to/milandry/dynamos-vs-planners-an-important-profile-spectrum-for-engineers-2jln</guid>
      <description>&lt;h2&gt;
  
  
  This spectrum plays a very important role on how your job and career plays out, it's worthwhile to be aware of it.
&lt;/h2&gt;

&lt;p&gt;I am writing this article as an informative piece, and so that we can put our hands on its link so as to give it a concrete name and description. It is not new information by any means; anyone who has slogged through one of those long annoying &lt;em&gt;strongly disagree...strongly agree&lt;/em&gt; surveys to determine if you would be a "good fit" culturally will find this information familiar. Without further ado...&lt;/p&gt;

&lt;h3&gt;
  
  
  The Profiles
&lt;/h3&gt;

&lt;p&gt;The Dynamo is your bootstrapper person. Most would describe this person as a "self starter", "showing initiative", "getting stuff done", "getting hands dirty", "working face first", and on and on. The Planner, by contrast, is going to be your individual that is detail-oriented and plans out the solution end-to-end. While I present these profiles here as being on a spectrum, if asked, I would refuse to identify with one or the other as both profiles have desirable features that are not mutually exclusive. However, it would not be entirely honest to claim that one could manifest as a perfect version of both profiles simultaneously. Now that terminology has been established, let's look at the implications, for both the project they serve, and how it shapes we engineers.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Pros and the Cons
&lt;/h3&gt;

&lt;h4&gt;
  
  
  The Dynamo
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gets stuff moving and gets it done&lt;/li&gt;
&lt;li&gt;Bypasses bottlenecks and deadlocks&lt;/li&gt;
&lt;li&gt;Good at identifying and delivering meaningful and impactful results&lt;/li&gt;
&lt;li&gt;Highly valued by managerial and business leadership&lt;/li&gt;
&lt;li&gt;Tend to become highly visible individuals both within and outside the team&lt;/li&gt;
&lt;li&gt;Often given ample credit, sometimes praised as project saviors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Susceptible of introducing technical debt of all varieties, especially that of wrong abstractions&lt;/li&gt;
&lt;li&gt;Often makes unilateral design decisions without gathering or waiting for consensus from colleagues.&lt;/li&gt;
&lt;li&gt;Requires good experience, knowledge, great effort, and boldness to actually be successful in rushing out changes against legacy code bases to deliver value&lt;/li&gt;
&lt;li&gt;Dynamos can expect to rework a lot of implementations. For that same reason, Dynamos are inclined to provide little to non-existent high-quality unit tests or documentation.&lt;/li&gt;
&lt;li&gt;Other critical facets of software development, including testability, developer experience, automation, maintainability, and documentation may be neglected by Dynamos.&lt;/li&gt;
&lt;li&gt;Dynamos assume much riskier behavior, leading to volatile outcomes swinging from success and praise to termination and project failure.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  The Planner
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Planners view tasks through a large variety of lenses, considering many topics such as feasibility, optimal solutions, extensibility, reusability, testability, maintainability, good design, and plausible risk.&lt;/li&gt;
&lt;li&gt;Planners are detail-oriented&lt;/li&gt;
&lt;li&gt;Planners are more willing to build consensus amongst colleagues for solutions&lt;/li&gt;
&lt;li&gt;Planners are more inclined to ship testing and documentation along with their tasks, often building out these entities before doing the implementation so as to having a gauge to judge for correctness.&lt;/li&gt;
&lt;li&gt;Planners are very good at preventing a variety of classes of problems from ever harming the project by virtue of thorough research and planning beforehand.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Planners are susceptible to blame for, or causing, project delays and deadlocks. &lt;/li&gt;
&lt;li&gt;Planners are prone to being bogged down by bureaucratic processes, and culpable of introducing and enacting new processes that do more harm than good.&lt;/li&gt;
&lt;li&gt;It is difficult to identify, and much less quantify, the positive impact a planner can have on a project by virtue of preventing problems from ever arising, and will not likely receive credit for it.&lt;/li&gt;
&lt;li&gt;Planners don't garner the same attention as a Dynamo might, especially amongst managerial and leadership colleagues.&lt;/li&gt;
&lt;li&gt;Through more thorough conversation and documentation, Planners are less likely to retain unique knowledge crucial to the success of the project, thus making Planners more expendable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I hope you find this topic exploration informative. My goal, having been a good Dynamo, a bad Dynamo, a good Planner, and a bad Planner at various times in my career, was to portray the profiles not as one being better than the other, but more in their realistic flattering and not-so-flattering light. The important takeaway I have is to identify this behavior, and that all projects throughout all moments of their lifetime need one profile over the another, and that we can and should adapt.  Perhaps you recognize these themes in your own project, and see the effect that they can have. Perhaps you identify with one or the other, and find the conclusions similar to your own experiences. If not, leave a comment below! Thank you for reading! &lt;/p&gt;

</description>
      <category>career</category>
      <category>sdlc</category>
    </item>
    <item>
      <title>Software Stories should be organized as Call Stacks, not Queues.</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Thu, 12 Aug 2021 02:30:56 +0000</pubDate>
      <link>https://dev.to/milandry/software-stories-should-be-organized-as-call-stacks-not-queues-1mnn</link>
      <guid>https://dev.to/milandry/software-stories-should-be-organized-as-call-stacks-not-queues-1mnn</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Stories and Epics and Subtasks, ohh my!!&lt;/p&gt;
&lt;cite&gt;Dorothy the Product Owner&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;p&gt;It seems no matter who I ask, I can never get a straight definition of what an “epic is.” I find this fact alarming. Agile teams all over the planet, replete with very intelligent people, opt to organize their work load in terms of concepts with nebulous definitions. That software projects both large and small, public and private, often come in over budget and late should come as no surprise given this fact, and I feel that a certain company, in prime position as the go-to choice for off-the-shelf project management software work and tracking, exacerbate the problem by providing solutions that force end users to classify and structure work into specific configurations, use specific terminology, and enforce hierarchal groupings, because let’s face it, corporations would fall apart without bucketing everything into one class or another. In my own struggles, I just go with a simple definition, epics are a collection of user stories (or tickets, or however you want to refer to your baseline block of work.) The point is, is that, while fixing all the Scrum confusion for every business is beyond the abilities anything or anyone currently possess, it would be nice to chip away at the problem. &lt;/p&gt;

&lt;p&gt;But after thinking about the problem, trying to frame the whole scrum-agile work structuring thing into something sensible, simple, and effective is very daunting, so much so that I believe there is ,fundamentally, something wrong with a core tenement of this problem. &lt;/p&gt;

&lt;p&gt;I want to propose a change to the paradigm, and I ask you to consider the concept, for you see, this possible solution has been staring software engineers in the face since forever. As currently practice, software work is pushed through a queue, with little stories marching through one end of the pipeline and out the other or sometimes across a board like a game of Frogger. Unfortunately, software engineering is a nontrivial task, and for this scheme to succeed, a great deal of planning must go into sequencing the tasks in the correct order or the sprint will fail, tasks will have to be retracted, contexts have to be switched, and velocity suffers. Teams try to create frilly hierarchies and shoehorn the work into them in the hopes of making better sense of the sequencing and timelines.&lt;/p&gt;

&lt;p&gt;None if this is necessary. Instead of spending time in meetings planning this out, let’s start doing the things, starting with the most pressing need of the stakeholders. Instead of reconstructing the need into sequences of blocks of work, simply abandon the notion of a  sprint queue and put them into a stack. Yes, that stack. And once that discovery finds the next big bad blocker, that work goes on top of the stack. Now the engineer is working on a new item, and continues to work on the item until it completes or requires a new block of work to go on the stack.This continues until, inevitably, all unknowns are brought into light, the minimum scope has been defined, and suddenly, blocks of work come flying off the stack at a rapid clip, and the deliverable gets shipped. Woohoo!   &lt;/p&gt;

&lt;p&gt;I recommend trying out this paradigm if not for work related tasks, but thinking about your own big projects and using a stack to break it down and start getting things done instead of trying to map out exactly how you are going to move your mountain.&lt;/p&gt;

</description>
      <category>agile</category>
    </item>
    <item>
      <title>The Rule of Three, Life Hacks to make your Interviews (and just about anything else) Easier</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Sun, 20 Jun 2021 00:52:05 +0000</pubDate>
      <link>https://dev.to/milandry/the-rule-of-three-life-hacks-to-make-your-interviews-and-just-about-anything-else-easier-5068</link>
      <guid>https://dev.to/milandry/the-rule-of-three-life-hacks-to-make-your-interviews-and-just-about-anything-else-easier-5068</guid>
      <description>&lt;h2&gt;The rule&lt;/h2&gt;

&lt;p&gt;The Rule of Three is quite simple. In terms of any topic, commit to summarizing that topic in 3 points. Not two. Not four. Three.&lt;/p&gt;

&lt;h2&gt;Applying the rule: the interview process&lt;/h2&gt;

&lt;p&gt;As a novice interviewer, I found the interview process to always be overwhelming. Even the rudimentary ritual of coughing up the 'elevator' speech always felt ham-handed, incomplete, and unsatisfying. Nowadays, I can recite it pretty smoothly:&lt;/p&gt;

&lt;p&gt; "My name is Michael Landry, I am a business owner, and software engineer, with experience in the government and financial industries"&lt;/p&gt;

&lt;p&gt;I'll admit, it's not the greatest elevator speech ever spoken, but I am comfortable with it, as comfortable as I am with just about most things, and it is the ease of mind that is so wonderful about the Rule of Three. By applying the Rule of Three, you know when you are 'Done.'  By only providing two points, it feels incomplete. By providing four points, it takes on a sense of rambling, which has always been a weakness of mine. Five is simply right out.  Three is the correct amount for just about any topic, and if we need to go deeper or extend on a point, you can simply take any point you already mentioned, and recursively apply the Rule of Three on a subpoint of the topic. Easy.&lt;/p&gt;

&lt;h2&gt;Use it everywhere&lt;/h2&gt;

&lt;p&gt;I use this rule to shop for hotels, research something new, collect information, and just about anything. It's a good guide for making sure I don't waste too much time overkilling something that just needs a little attention, while supplying enough data points to establish patterns. &lt;/p&gt;

&lt;p&gt;Image courtesy of Columbia pictures&lt;/p&gt;

</description>
      <category>interview</category>
      <category>lifehacks</category>
      <category>timemanagement</category>
      <category>research</category>
    </item>
    <item>
      <title>Every Web Application is the same, the SELID Website</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Fri, 18 Jun 2021 01:13:03 +0000</pubDate>
      <link>https://dev.to/milandry/every-web-application-is-the-same-the-selid-website-1pea</link>
      <guid>https://dev.to/milandry/every-web-application-is-the-same-the-selid-website-1pea</guid>
      <description>&lt;p&gt;What does &lt;a rel="noreferrer noopener" href="https://www.google.com/"&gt;google,&lt;/a&gt; &lt;a rel="noreferrer noopener" href="https://www.apartments.com/"&gt;apartments.com,&lt;/a&gt; and &lt;a href="https://www.amazon.com/"&gt;amazon.com&lt;/a&gt;, have in common?  They are all websites, obviously, but not just that; they all follow the same pattern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The visitor is presented with a search field&lt;/li&gt;
&lt;li&gt;After querying for something, the visitor is then whisked away to a search results page&lt;/li&gt;
&lt;li&gt;Upon clicking on a result, a details page is then presented, usually featuring information and buttons that run off to CRUD something in a database or call some APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yup, thats it. This sums up pretty much every web application ever made, even the fancy proprietary expensive application your employer is probably building right now.  I like to refer to these as SeLiD websites ( Search, List, Drill down or Details)&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Now the next question. What are the acceptable and approved tools and solutions available to software engineers seeking to build a customized web application? Sure, React is pretty amazing, and everyone has heard of AWS, but if every website emerges into the same template every time, then where is the tool that maps to these problems? Businesses want solutions to business problems. Retailers want customers to search, view, and buy merchandise. Property owners want renters to search, view, and rent properties. Software engineers are tasked to build these solutions, and as software engineers, we want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a search field that combs through and returns matches from a list of records&lt;/li&gt;
&lt;li&gt;Shove each returned record into a template, then shove those into another list&lt;/li&gt;
&lt;li&gt;Wire up each record into a detail page that will easily interface into some sort of CRUD SDK and extendable callback middleware.&lt;/li&gt;
&lt;li&gt;Slap some make up on it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As far as 'customization' goes, it should be a simple matter of asking which records are being queried, how should the data be presented, what widgets are going on to the screen, what are these widgets going to do to the data, and how is this thing going to look?&lt;/p&gt;

&lt;p&gt;Surveying the current landscape of software engineering, I don't see this tool, and I observe the following issues.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The popular 'front end libraries' only solve technical issues, such as synchronizing behavior and state for the web app, which would normally be fine, except that businesses need to have their business solutions solved and not just their technical issues&lt;/li&gt;
&lt;li&gt;Engineers have to solve and resolve the same problems over and over again for every web application. The same problems common to every app that the usual libraries don't address. These include authentication, authorization, theming, linting, building, containerization deploying, and on and on... &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are many projects that try to be the 'batteries included' unicorn, but all come up short in some form or fashion. Either they neglect to solve a critical concern, bring too much opinion to bear, too calcified to be extensible, too complicated, too broad, too difficult, and simply not aware of the absurdly common use-cases I have outlined above. &lt;/p&gt;

&lt;p&gt;In response to this, the Rondo Platform was born. As an engineer, I have come to find certain platforms, libraries, and technologies as being very easy, robust, and extendable, and by combining these with other open source technologies and best practices, we are able to build the Rondo Platform to be as robust, and efficient, and as simple as possible. Simply put, it takes care of all the toil that goes into custom website construction, and allows the engineer to focus on what matters, solving the business need, while leaving extensibility to customize as much as required.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>webdev</category>
      <category>platform</category>
      <category>pattern</category>
    </item>
    <item>
      <title>An Engineer’s take on “Company Culture”</title>
      <dc:creator>Michael Landry</dc:creator>
      <pubDate>Fri, 11 Jun 2021 03:20:50 +0000</pubDate>
      <link>https://dev.to/milandry/an-engineer-s-take-on-company-culture-3802</link>
      <guid>https://dev.to/milandry/an-engineer-s-take-on-company-culture-3802</guid>
      <description>&lt;p&gt;The "Company Culture" topic comes up quite often, and for good reason. The culture of a company is a chief driver in the success of the company. Despite of its profound impact in both the operation of a company as well as the interview process, I feel that most discussions revolving around it are often nebulous, almost always devolving to mentioning something about having a ping pong table in the break room. Having been bewildered by such discussions in the interview process, I decided I at least needed to come up with some sort of take on it of my own, or at least forming a definition that that makes sense to me:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;"The company culture is the set of principles and values that drive the ideas and actions of a company. "&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;After spending some amount of time researching, and interviewing with a variety of companies, what turns out to be a nebulous and expansive topic actually turns out to be the same usual concepts rehashed in different forms. This topic is very important, but it need not be daunting or confusing.  Whether the discussion is about the success of the company in general, seeing if a team is a good fit, or tackling the issue in an interview, maintaining a straightforward understanding of the concept is key.  I myself, in subscribing to my usual Rule of Three to keep things simple yet sufficient, subscribe to the three following principles that I adhere to when I need to be productive. I find that these three principles compliment and synergize with each other, and that these principles can be easily extended to encompass all sorts of different virtues of productivity:&lt;/p&gt;

&lt;h2&gt;Be results driven&lt;/h2&gt;

&lt;p&gt;I start with this one, it's the most important. When I view a company as a whole, we can ascertain on of this principle is important or not based on one simple criterion, do the actions of the company aide in providing a better good or service to its customers, which in turn drive profits to the stakeholders of a company? It seems obvious that this is what a company should be doing, but quite often I observe companies spending a lot of effort on extra curriculars, be it maintaining its image, fudging markets, hamstringing competition, or tilting the scales of one social issue or another.  Some of these things can be important, but CEOs that get caught up in everything except improving the good or service of their business will keep like-minded individuals employed underneath them. It is important for teams to be aware of objectives, that each individual has a goal, and the team has a goal, and that the company has a goal. Only when goals and results are clearly stated, understandable and communicated throughout the entire company (specifically, that means that something was written down and not just allegedly declared in a meeting you may or may not have attended) will an organization enjoy measurable success, and be able to recognize and reward good and strong effort.&lt;/p&gt;

&lt;p&gt;Good teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Favor results over processes.&lt;/li&gt;
&lt;li&gt;Clearly communicate objectives&lt;/li&gt;
&lt;li&gt;Recognize good effort and work&lt;/li&gt;
&lt;li&gt;Focus more on finding solutions and less on finding excuses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bad teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Drown in bureaucracy and process&lt;span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;Lose focus&lt;/li&gt;
&lt;li&gt;Spend a lot of effort on making (bad) policy &lt;/li&gt;
&lt;li&gt;Love having meetings, with many people, for long periods of time, while never encouraging anyone to withdraw if they are wasting their time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Meaningful and impactful ideas and actions&lt;/h2&gt;

&lt;p&gt;If one assumes that a company then is doing everything it can to achieve some goal, then the next sensible question is whether or not the objective is worth pursuing, or if there is something better. This principle can be expanded into many important values. A team can only know what is meaningful and impactful if they can 'see the big picture.' The big picture  exists not within a single team but across an organization. &lt;/p&gt;

&lt;p&gt;Good teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are capable of prioritizing important and urgent tasks over other tasks.&lt;/li&gt;
&lt;li&gt;Rigorously vet any new ideas and initiatives through an appropriate amount of cost/benefit analysis.&lt;/li&gt;
&lt;li&gt;Constantly reflect on existing practices and can change, expand, or discard practices as necessary.&lt;/li&gt;
&lt;li&gt;Can be agile and change as needed.&lt;/li&gt;
&lt;li&gt;Can see the big picture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bad teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tend to have many people who are always 'too busy', often indicating the lack of ability to manage and prioritize.&lt;span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;Defend bad ideas based on custom and seniority over merit. &lt;/li&gt;
&lt;li&gt;Adhere to ritualistic activities that do not have any meaningful value or relevance to the present situation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Communication and collaboration&lt;/h2&gt;

&lt;p&gt;This principle is rapidly being recognized as critical to modern software engineering efforts. The days of the brooding programmer hunched over a keyboard pecking away in solitude are long over.  The Software Development Lifecycle is much more well understood, and in order to execute, all team members must be in communication and work together to be successful.&lt;/p&gt;

&lt;p&gt;Good teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand that all members will succeed, or all will fail, as a team.&lt;/li&gt;
&lt;li&gt;Focus on the success of the team over promoting oneself&lt;/li&gt;
&lt;li&gt;Maintain regular feedback from management to team members, including and especially good feedback.&lt;/li&gt;
&lt;li&gt;Respect and trust all teammates&lt;/li&gt;
&lt;li&gt;Stay openminded to new ideas and approaches&lt;/li&gt;
&lt;li&gt;Promote the spread of ideas and knowledge throughout the team&lt;/li&gt;
&lt;li&gt;Find time to ensure that individuals are set up for success&lt;/li&gt;
&lt;li&gt;Recognize the value of constant improvement, and are eager to invest in, train, and support all team members. &lt;span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bad teams:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tend to have many people who are always 'too busy', often a 'clever' tactic to appear important, disregard the team, and refuse to take any responsibility.&lt;/li&gt;
&lt;li&gt;Conceal, hide, and mislead key information&lt;/li&gt;
&lt;li&gt;make it very difficult to have conversations with key teammates on other teams.&lt;span&gt;&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;A few case studies&lt;/h2&gt;

&lt;p&gt;As I mentioned previously, the best practices and values for every company are pretty much universal. Let's view a few company cultural declarations and map them back to one of these core principles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/careers/culture/"&gt;Amazon&lt;/a&gt;: &lt;/p&gt;

&lt;p&gt;Results Driven:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deliver Results&lt;/li&gt;
&lt;li&gt;Dive deep&lt;/li&gt;
&lt;li&gt;etc...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meaningful and impactful actions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customer obsession&lt;/li&gt;
&lt;li&gt;Think big&lt;/li&gt;
&lt;li&gt;etc...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Communication and Collaboration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have Backbone; Disagree and Commit&lt;/li&gt;
&lt;li&gt;Earn Trust&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And another to establish a trend, here is &lt;a href="https://www.myrocketcareer.com/About-Us/Our-Philosophies"&gt;Rocket Mortgage&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;Results Driven:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ignore the noise&lt;/li&gt;
&lt;li&gt;Numbers and money follow; they do not lead.&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;etc...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Meaningful and impactful actions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Obsessed with finding a better way.&lt;/li&gt;
&lt;li&gt;Every client. Every time. No exceptions. No excuses.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Communication and Collaboration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It’s not about WHO is right; it’s about WHAT is right.&lt;/li&gt;
&lt;li&gt;We are the “they.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is my take on company culture. While many might like to make it that their team or company is very unique in terms of their culture, I find that defining a set of values that apply universally goes a long way in simplifying the concept, and will help people understand what distinguishes the great companies from the rest.  Oh yeah, and be wary of people who are busy all the time.&lt;/p&gt;

</description>
      <category>culture</category>
      <category>career</category>
      <category>leadership</category>
    </item>
  </channel>
</rss>
