<?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: Dan Schnau</title>
    <description>The latest articles on DEV Community by Dan Schnau (@danschnau).</description>
    <link>https://dev.to/danschnau</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%2F26974%2F7d49b6af-05b5-4e3b-b1fa-89eb44fff770.jpeg</url>
      <title>DEV Community: Dan Schnau</title>
      <link>https://dev.to/danschnau</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/danschnau"/>
    <language>en</language>
    <item>
      <title>.NET 8 Preview 3: Simplified Output Path format for Builds</title>
      <dc:creator>Dan Schnau</dc:creator>
      <pubDate>Thu, 20 Apr 2023 19:31:26 +0000</pubDate>
      <link>https://dev.to/danschnau/net-8-preview-3-simplified-output-path-format-for-builds-jl6</link>
      <guid>https://dev.to/danschnau/net-8-preview-3-simplified-output-path-format-for-builds-jl6</guid>
      <description>&lt;p&gt;If you're like me, you're used to finding your .NET build artifacts in &lt;code&gt;/bin&lt;/code&gt; and &lt;code&gt;/obj&lt;/code&gt; directories inside your source projects. It's been this way my whole career.&lt;/p&gt;

&lt;p&gt;In .NET 8 Preview 3, this can be changed to dump the &lt;code&gt;/bin&lt;/code&gt; and &lt;code&gt;/obj&lt;/code&gt; artifacts into an &lt;code&gt;.artifacts&lt;/code&gt; directory instead of the source root.&lt;/p&gt;

&lt;p&gt;.NET Manager Chet Husk Writes about it &lt;a href="https://github.com/dotnet/core/issues/8135#issuecomment-1483357684" rel="noopener noreferrer"&gt;in the comments of 'What's new in .NET 8 Preview 3' discussion&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'd like to test this little feature out. First, I needed to install &lt;a href="https://dotnet.microsoft.com/en-us/download/dotnet/8.0" rel="noopener noreferrer"&gt;.NET 8 Preview 3&lt;/a&gt;. It required a system restart.&lt;/p&gt;

&lt;p&gt;First, a new console app in a directory &lt;code&gt;testartifactsoutput&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~#@❯ dotnet new console ❮ 

Welcome to .NET 8.0!
---------------------
SDK Version: 8.0.100-preview.3.23178.7

Telemetry
---------
The .NET tools collect usage data in order to help us improve your experience..... *SNIP*

Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only).
Learn about HTTPS: https://aka.ms/dotnet-https
----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------
The template "Console App" was created successfully.

Processing post-creation actions...
Restoring C:\danschnauprojects\testartifactsoutput\testartifactsoutput.csproj:
  Determining projects to restore...
  Restored C:\danschnauprojects\testartifactsoutput\testartifactsoutput.csproj (in 76 ms).
Restore succeeded.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The default behavior is still to build to the &lt;code&gt;/bin&lt;/code&gt; directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~#@❯ dotnet build ❮ 
MSBuild version 17.6.0-preview-23174-01+e7de13307 for .NET
  Determining projects to restore...
  All projects are up-to-date for restore.
C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targ
ets(287,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\danschnaupr
ojects\testartifactsoutput\testartifactsoutput.csproj]
  testartifactsoutput -&amp;gt; C:\danschnauprojects\testartifactsoutput\bin\Debug\net8.0\testartifactsoutput.dll

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, we create a &lt;code&gt;Directory.Build.Props&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~#@❯ dotnet new buildprops ❮ 
The template "MSBuild Directory.Build.props file" was created successfully.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The buildprops file is pretty sparse.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;Project&amp;gt;
  &amp;lt;!-- See https://aka.ms/dotnet/msbuild/customize for more details on customizing your build --&amp;gt;
  &amp;lt;PropertyGroup&amp;gt;

  &amp;lt;/PropertyGroup&amp;gt;
&amp;lt;/Project&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We add the &lt;code&gt;UseArtifactsOutput&lt;/code&gt; flag to the file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;Project&amp;gt;
  &amp;lt;!-- See https://aka.ms/dotnet/msbuild/customize for more details on customizing your build --&amp;gt;
  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;UseArtifactsOutput&amp;gt;true&amp;lt;/UseArtifactsOutput&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;
&amp;lt;/Project&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now I cleaned up the build by deleting the &lt;code&gt;/bin&lt;/code&gt; and &lt;code&gt;obj&lt;/code&gt; directories.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~#@❯ ls ❮ 

    Directory: C:\danschnauprojects\testartifactsoutput

Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 4/20/2023 3:25 PM 212 Directory.Build.props
-a---- 4/20/2023 3:20 PM 105 Program.cs
-a---- 4/20/2023 3:20 PM 252 testartifactsoutput.csproj

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now, a build:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~#@❯ dotnet build ❮ 
MSBuild version 17.6.0-preview-23174-01+e7de13307 for .NET
  Determining projects to restore...
  Restored C:\danschnauprojects\testartifactsoutput\testartifactsoutput.csproj (in 64 ms).
C:\Program Files\dotnet\sdk\8.0.100-preview.3.23178.7\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targ
ets(287,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\danschnaupr
ojects\testartifactsoutput\testartifactsoutput.csproj]
  testartifactsoutput -&amp;gt; C:\danschnauprojects\testartifactsoutput\.artifacts\bin\testartifactsoutput\debug\testartifactsoutput.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:01.20

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ooh, I see the &lt;code&gt;.artifacts&lt;/code&gt; directory in the output there.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;/bin&lt;/code&gt; and &lt;code&gt;/obj&lt;/code&gt; directories are now in their own &lt;code&gt;/.artifacts&lt;/code&gt; folder. Sweet.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~#@❯ ls ❮ 1s 452ms  

    Directory: C:\danschnauprojects\testartifactsoutput

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 4/20/2023 3:26 PM .artifacts
-a---- 4/20/2023 3:25 PM 212 Directory.Build.props
-a---- 4/20/2023 3:20 PM 105 Program.cs
-a---- 4/20/2023 3:20 PM 252 testartifactsoutput.csproj

~#@❯ ls .\.artifacts\ ❮ 

    Directory: C:\danschnauprojects\testartifactsoutput\.artifacts

Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 4/20/2023 3:26 PM bin
d----- 4/20/2023 3:26 PM obj

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Identity Protocol improvements in ASP.NET Core 8</title>
      <dc:creator>Dan Schnau</dc:creator>
      <pubDate>Mon, 10 Apr 2023 22:56:48 +0000</pubDate>
      <link>https://dev.to/danschnau/identity-protocol-improvements-in-aspnet-core-8-2n73</link>
      <guid>https://dev.to/danschnau/identity-protocol-improvements-in-aspnet-core-8-2n73</guid>
      <description>&lt;p&gt;Last week, &lt;a href="https://devblogs.microsoft.com/dotnet/improvements-auth-identity-aspnetcore-8/" rel="noopener noreferrer"&gt;Jeremy Likness discussed improvements to Authentication and Identity features in ASP.NET Core 8&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I wanted to try some of it out, so I first went to install &lt;a href="https://dotnet.microsoft.com/en-us/download/dotnet/8.0" rel="noopener noreferrer"&gt;dotnet 8.0.0-preview.2&lt;/a&gt;. I think the downloads page looks slick.&lt;/p&gt;

&lt;h2&gt;
  
  
  OpenID Connect, IdentityServer, and Duende
&lt;/h2&gt;

&lt;p&gt;Earlier this week, I talked about the terms &lt;a href="https://danschnau.com/blog/authentication-vs-authorization" rel="noopener noreferrer"&gt;Authentication vs Authorization&lt;/a&gt;. Now I'll use this chance to tie the terms to more technical details.&lt;/p&gt;

&lt;p&gt;ASP.NET Core, in the past, used a third-party implementation of OpenID Connect called IdentityServer to provide authentication and authorization services. IdentityServer is an implementation of the OpenId Conect protocol, which itself is a layer over the OAuth 2.0 protocol that provides Authentication, which is a protocol for Authorization.&lt;/p&gt;

&lt;p&gt;The Authorization story here starts with the &lt;a href="https://www.rfc-editor.org/rfc/rfc6749" rel="noopener noreferrer"&gt;OAuth 2.0 Authorization Framework&lt;/a&gt;. Oauth 2.0 is a framework for dealing with limitations of client-server authentication. There are a lot of good reasons to not implement client-server authentication. From this developer's perspective, the most attractive reason is that with OAuth, I as a software engineer, don't need to spend the time and money on implementing password security. This is because the OAuth protocol specifies an authorization layer that separates the client and server, enabling third parties to provide Authorization services.&lt;/p&gt;

&lt;p&gt;OAuth 2.0 provides an &lt;em&gt;authorization&lt;/em&gt; implementation. OpenID Connect provides an &lt;em&gt;authentication&lt;/em&gt; implementation. And both are just protocols. That is - protocols that are instructions for software to implement to work with other software that implements the same protocols.&lt;/p&gt;

&lt;p&gt;Back to the beginning. Until version 8, ASP.NET Core used a third party implementation of OpenId Connect called &lt;a href="https://identityserver4.readthedocs.io/en/latest/" rel="noopener noreferrer"&gt;IdentityServer&lt;/a&gt;. In version 8, this dependency is removed, and developers will be able to pick from IdentityServer or any other number of OpenId Connect and OAuth 2.0 implementations.&lt;/p&gt;

&lt;p&gt;Ostensibly, these changes will make it easier to create and ship "simple" auth systems that do things like use social logins - and I look forward to trying them out as they become available.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Authentication vs Authorization</title>
      <dc:creator>Dan Schnau</dc:creator>
      <pubDate>Mon, 10 Apr 2023 14:14:51 +0000</pubDate>
      <link>https://dev.to/danschnau/authentication-vs-authorization-49n3</link>
      <guid>https://dev.to/danschnau/authentication-vs-authorization-49n3</guid>
      <description>&lt;p&gt;Authentication and Authorization (AuthN and AuthZ) are terms that refer to discrete, specific concepts that can easily be confused.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authentication&lt;/strong&gt; is the process of proving that someone is who they claim to be.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Authorization&lt;/strong&gt; is the process of granting access to a resource.&lt;/p&gt;

&lt;p&gt;For instance, to buy alcohol, I must be at least 21 years old, as per legal requirements. When I try to make the purchase, the sales clerk will likely request my driver's license. By examining the photo on the license and confirming it to be of me, the sales clerk is performing &lt;strong&gt;Authentication&lt;/strong&gt;. I have presented evidence that I am Dan Schnau, and provided a government-issued document with a photograph and other relevant facts, verifying my identity.&lt;/p&gt;

&lt;p&gt;However, at this moment, the sales clerk has not allowed me access to the resource- alcohol. After proving my identity, the sales clerk will perform &lt;strong&gt;Authorization.&lt;/strong&gt; The clerk will verify my date of birth on the driver's license, which will enable them to grant access, knowing that I have already proved who I am (via photo ID) and that I am authorized based on my age.&lt;/p&gt;

&lt;p&gt;In summary, Authentication verifies identities, and Authorization grants access to resources based on those identities. It is critical to implement both measures for safe systems.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>I asked ChatGPT to write 500 words about the software industry.</title>
      <dc:creator>Dan Schnau</dc:creator>
      <pubDate>Fri, 31 Mar 2023 19:21:05 +0000</pubDate>
      <link>https://dev.to/danschnau/i-asked-chatgpt-to-write-500-words-about-the-software-industry-2bhj</link>
      <guid>https://dev.to/danschnau/i-asked-chatgpt-to-write-500-words-about-the-software-industry-2bhj</guid>
      <description>&lt;p&gt;As an AI language model, it is difficult for me to express opinions or personal bias since my responses are generated entirely based on statistical patterns from the dataset I was trained on. However, I can provide a general overview of the current state of the software industry.&lt;/p&gt;

&lt;p&gt;The software industry is one of the fastest-growing industries in the world. It has transformed almost every aspect of daily life, from how we communicate with each other to how we conduct business. The industry has seen exponential growth in the past few decades, with the increasing availability of processing power, deep learning techniques, and cloud computing. Software development has become easier, faster, and more affordable than ever before.&lt;/p&gt;

&lt;p&gt;One of the key drivers of the industry's growth has been the rise of mobile devices. With more than 3 billion smartphones in use globally, software developers have had to adapt to the rapidly changing behavior and needs of consumers. This has led to a surge in the development of mobile applications, which have become indispensable for both business and personal use.&lt;/p&gt;

&lt;p&gt;Another key driver of the software industry's growth has been the shift to cloud computing. Cloud computing has enabled businesses of all sizes to access affordable computing power and storage without having to set up their own IT infrastructure. This has democratized technology, making it accessible to small and medium-sized enterprises that previously did not have the resources to invest in IT infrastructure.&lt;/p&gt;

&lt;p&gt;The software industry has also seen a shift in the way software is developed. The traditional model of developing software has been replaced by more agile approaches such as DevOps, which emphasizes collaboration, agility, and rapid iterations. These approaches have enabled businesses to be more responsive to market demands and to deliver software products faster.&lt;/p&gt;

&lt;p&gt;However, the increasing reliance on software has also led to concerns around security and privacy. The rise of cybercrime has highlighted the need for secure software development practices, and companies are increasingly investing in cybersecurity measures to protect their assets and customers' information.&lt;/p&gt;

&lt;p&gt;The software industry has also seen a shift in the business model, with more companies embracing open-source software. Open-source software allows businesses to access the source code of software products, customize them to meet their needs, and contribute back to the community. This has led to a flourishing ecosystem of software developers who share their knowledge and collaborate on projects.&lt;/p&gt;

&lt;p&gt;Finally, the software industry is undergoing a shift towards automation and artificial intelligence (AI). AI has the potential to transform the way we develop software, making it more efficient and effective. AI-powered tools can help identify bugs and optimize code, freeing up developers' time to focus on more complex tasks. However, there are concerns around the impact of automation on jobs, and the industry must find a way to balance the benefits of automation with the need to protect jobs and skills.&lt;/p&gt;

&lt;p&gt;In conclusion, the software industry is in a state of constant evolution. As technology continues to advance and consumer behavior changes, software developers must adapt to stay ahead of the curve. The industry's growth and increasing importance in almost every aspect of daily life are indicative of the potential it holds for the future. However, the industry must also address the challenges it faces, such as cybersecurity and the impact of automation on jobs. Overall, the software industry is a vital and exciting industry, and its future is full of promise.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Rules for Overcoming Worry</title>
      <dc:creator>Dan Schnau</dc:creator>
      <pubDate>Wed, 25 Jan 2023 16:52:32 +0000</pubDate>
      <link>https://dev.to/danschnau/rules-for-overcoming-worry-49a0</link>
      <guid>https://dev.to/danschnau/rules-for-overcoming-worry-49a0</guid>
      <description>&lt;p&gt;A few years ago I visited a &lt;a href="https://www.twicesoldtales.com/" rel="noopener noreferrer"&gt;used book store in Seattle&lt;/a&gt;. It had several cats hanging around with the customers, which was pretty cool.&lt;/p&gt;

&lt;p&gt;I found a copy of &lt;a href="https://www.amazon.com/How-Stop-Worrying-Start-Living/dp/0671733354?&amp;amp;_encoding=UTF8&amp;amp;tag=danschnaudotc-20&amp;amp;linkCode=ur2&amp;amp;linkId=1dbe2f10c8989ac29a769902ed4204cd&amp;amp;camp=1789&amp;amp;creative=9325" rel="noopener noreferrer"&gt;How To Stop Worrying and Start Living&lt;/a&gt; by Dale Carnegie, of "How to Win Friends and Influence People" fame.&lt;/p&gt;

&lt;p&gt;I bought it, and it's been a great book to keep around when I get stressed out.&lt;/p&gt;

&lt;p&gt;One of the exercises in the book suggests creating your own rules for overcoming worry. I wrote my answers down and have copied them here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rules for Overcoming Worry
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Remember that every moment is new. Past performance is not indicative of future results.&lt;/li&gt;
&lt;li&gt;Meditate. Breathe relaxation and loving-kindness into your muscles, from head to toe.&lt;/li&gt;
&lt;li&gt;Remember what your mother told you when you were a stressed out child (and has been so right about): "Most of the things you worry about will never even happen".&lt;/li&gt;
&lt;li&gt;Focus on the present day in front of you. The distant future is of no concern. As Apollo Creed told Rocky Balboa as he trained to fight Clubber Lang: "There is no tomorrow!"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I put a lot of energy into stayling relaxed these days. I know that being stressed out will not only not help but rather it will harm me.&lt;/p&gt;

&lt;h4&gt;
  
  
  Affiliate notice
&lt;/h4&gt;

&lt;p&gt;This page contains Amazon affiliate links.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Good Software Engineers are Business Analysts Too</title>
      <dc:creator>Dan Schnau</dc:creator>
      <pubDate>Fri, 20 Jan 2023 18:31:35 +0000</pubDate>
      <link>https://dev.to/danschnau/good-software-engineers-are-business-analysts-too-b34</link>
      <guid>https://dev.to/danschnau/good-software-engineers-are-business-analysts-too-b34</guid>
      <description>&lt;p&gt;Good software engineers have to understand the business they're working in.&lt;/p&gt;

&lt;p&gt;If they don't, they're at the mercy of business analysts and project managers to explain what to do.&lt;/p&gt;

&lt;p&gt;Some of my most successful moments in my career have been when I've taken on a role of business analyst and gone directly to the source for information on what needs to be built for the business.&lt;/p&gt;

&lt;p&gt;In other words:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkfzmqoh35malpxdmink.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkfzmqoh35malpxdmink.png" alt="specifications" width="396" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You gotta write code, and be this person too.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ChatGPT Is at the Peak of the Hype Cycle</title>
      <dc:creator>Dan Schnau</dc:creator>
      <pubDate>Thu, 19 Jan 2023 16:01:39 +0000</pubDate>
      <link>https://dev.to/danschnau/chatgpt-is-at-the-peak-of-the-hype-cycle-5ch</link>
      <guid>https://dev.to/danschnau/chatgpt-is-at-the-peak-of-the-hype-cycle-5ch</guid>
      <description>&lt;p&gt;ChatGPT is at the peak of the hype cycle.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd3vtkmi18shf79aycqlp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd3vtkmi18shf79aycqlp.png" alt="peak of expectations" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>You'll Never Do Agile Right</title>
      <dc:creator>Dan Schnau</dc:creator>
      <pubDate>Wed, 23 Nov 2022 19:39:27 +0000</pubDate>
      <link>https://dev.to/danschnau/youll-never-do-agile-right-5150</link>
      <guid>https://dev.to/danschnau/youll-never-do-agile-right-5150</guid>
      <description>&lt;p&gt;In the article for &lt;a href="https://en.wikipedia.org/wiki/Agile_software_development" rel="noopener noreferrer"&gt;Agile Software Development&lt;/a&gt;, there are six thousand, eight hundred words and over 100 references.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://agilemanifesto.org/" rel="noopener noreferrer"&gt;Agile Mainfesto&lt;/a&gt; is 73 words. Gobs and gobs of software has been written to "do agile". Every software shop I've encountered in the last decade has told me they use an agile software development process. Being an "Agile coach" is an entire career.&lt;/p&gt;

&lt;p&gt;But the whole manifesto is just not all that.&lt;/p&gt;

&lt;p&gt;The entire body reads as follows:&lt;/p&gt;




&lt;p&gt;We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Individuals and interactions&lt;/strong&gt; over processes and tools&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Working software&lt;/strong&gt; over comprehensive documentation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Customer collaboration&lt;/strong&gt; over contract negotiation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Responding to change&lt;/strong&gt; over following a plan&lt;/p&gt;

&lt;p&gt;That is, while there is value in the items on the right, we value the items on the left more.&lt;/p&gt;




&lt;p&gt;That's it. Focus on relationships with people, and actually solving problems.&lt;/p&gt;

&lt;p&gt;Moreover, the Manifesto ends with a sentence to weasel out of any actual firm stance. &lt;em&gt;The other stuff is also valuable&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;You'll never do Agile right, because there's no way to prove that you're doing it right. Don't make user stories and have retrospective meetings just because it says to do so in some book or by some coach.&lt;/p&gt;

&lt;p&gt;Do what works for whatever your situation. Just make sure your values and priorities are in order. That's the whole manifesto.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
