<?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: Tim</title>
    <description>The latest articles on DEV Community by Tim (@theothertimduncan).</description>
    <link>https://dev.to/theothertimduncan</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%2F38853%2Faaff6b9a-f6ed-4b37-9770-2a86a505d7e0.png</url>
      <title>DEV Community: Tim</title>
      <link>https://dev.to/theothertimduncan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/theothertimduncan"/>
    <language>en</language>
    <item>
      <title>Does your team have a formatting standard?</title>
      <dc:creator>Tim</dc:creator>
      <pubDate>Mon, 04 Feb 2019 23:00:27 +0000</pubDate>
      <link>https://dev.to/theothertimduncan/does-your-team-have-a-formatting-standard-19co</link>
      <guid>https://dev.to/theothertimduncan/does-your-team-have-a-formatting-standard-19co</guid>
      <description>&lt;p&gt;As I stated in my &lt;a href="https://dev.to/theothertimduncan/my-developer-story-1b55"&gt;previous post&lt;/a&gt;, working with other developers is an area where I struggle, both as a leader and as a member of a team. As an introvert and possibly slightly autistic, interacting with other humans at any level can be difficult for me. &lt;/p&gt;

&lt;p&gt;I know my struggle is common. This industry tends to attract the misfits like me that prefer the logical interaction with 1's and 0's instead of the messy analog world. Unfortunately for us misfits the days of the lone programmer in a dark corner of the basement accomplishing something no longer exist. And possibly never did. It takes a team to accomplish something. And despite that "unfortunately" above, I think that's a good thing.&lt;/p&gt;

&lt;p&gt;Good thing but challenging. Over the years I've gotten better at interacting with others. My current job has actually helped with identifying areas where I could improve and learn. But it's also been very frustrating at times. I'm also a perfectionist with a little OCD, so it can be really difficult to tell whether I'm someone who pushes for quality or just an arrogant nitpicking asshole.&lt;/p&gt;

&lt;p&gt;Which leads me to my question for today. I've been struggling - and procrastinating - on how to continue from my previous post with some of the issues I've been struggling with. Then I ran into something last week that felt like a good starting point. Does your team have a formatting standard? And maybe more importantly, how do you enforce it?&lt;/p&gt;

&lt;p&gt;For that last question, I believe that the actual answer is you don't. There are multiple ways such as linting to automatically clean up code before it is ever committed. But to highlight the first challenge with my shop, we can't even agree on tooling. We're a .NET shop, so we primarily use Visual Studio Professional. I remember once mentioning in a meeting that a simple keyboard shortcut - Ctrl-K,Ctrl-D - handles the majority of the formatting clean up for you. The response I got from one person - the one I consider the sloppiest as well - captured the problem perfectly: "I don't have time to learn new keyboard shortcuts.".&lt;/p&gt;

&lt;p&gt;Which version of Visual Studio we use has been a continual source of conflict. It's only been a couple years since I managed to get us to switch from VS 2010 to 2015. Let's not even mention the arguments over the last year around switching to VS 2017. Some of us have switched (like me), but for the most part, VS 2015 is what is expected to be used. That leaves out the option of taking advantage of using &lt;a href="https://docs.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options?view=vs-2017"&gt;.editorconfig&lt;/a&gt;. I did create one for all the projects I'm responsible for so at least those who use VS 2017 will be affected. I know there is an extension for VS 2015 to add support for .editorconfig. For that matter, I've personally been using &lt;a href="https://marketplace.visualstudio.com/items?itemName=SteveCadwallader.CodeMaid"&gt;CodeMaid&lt;/a&gt; which would work in either version. But I haven't even tried starting a discussion over what extensions everyone should be expected to be using. I already know how that discussion would go.&lt;/p&gt;

&lt;p&gt;Let's get more specific. I have a codebase that I'm been the sole developer on for several months. Another developer has recently started working on it while I'm on a different project. To protect the guilty (ok, I'll be nice - innocent), let's call him D. D has been in the business for decades. He once worked at Compuserve as an example. And D is the biggest point of conflict for Visual Studio versions and other areas. But one point that he does repeat that I actually agree with is consistency. In some of the discussions we've had regarding a formatting standard, he has stated that it is more important to be consistent with the existing code. Except, I guess, that doesn't apply to him.&lt;/p&gt;

&lt;p&gt;This is one example of how I format my code and is how everything is formatted in this codebase.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jDyGOAG2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/TheOtherTimDuncan/TheOtherTimDuncan.github.io/master/images/posts/FormattingStandard/Standard%2520Formatting.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jDyGOAG2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/TheOtherTimDuncan/TheOtherTimDuncan.github.io/master/images/posts/FormattingStandard/Standard%2520Formatting.png" alt="Existing formatting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the code that D has been submitted, he's used two different formatting styles. I also find it "interesting" that he doesn't always follow the C# convention of Pascal casing for the property names. I know that class is meant to represent a database table and that table probably has columns capitalized that way (and yes, that database is that horrid but that blame lies elsewhere). But I don't know if he realizes that capitalization mismatches won't matter or if he's thinking he has to match the capitalization because "reasons".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--70bCRkh1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/TheOtherTimDuncan/TheOtherTimDuncan.github.io/master/images/posts/FormattingStandard/NonStandard%2520Formatting%25201.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--70bCRkh1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/TheOtherTimDuncan/TheOtherTimDuncan.github.io/master/images/posts/FormattingStandard/NonStandard%2520Formatting%25201.png" alt="Non-Standard Style"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FeCGaolb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/TheOtherTimDuncan/TheOtherTimDuncan.github.io/master/images/posts/FormattingStandard/Non%2520Standard%2520Formatting%25202.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FeCGaolb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/TheOtherTimDuncan/TheOtherTimDuncan.github.io/master/images/posts/FormattingStandard/Non%2520Standard%2520Formatting%25202.png" alt="Non-Standard Style"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Based on previous discussions with D, if I bring this up with him, the most likely response I would expect to get is that it doesn't matter and that it's more important the code works than that it's consistent or "pretty". What do you think? Do I need to turn down the OCD a notch and just let this go? How would you handle this situation?&lt;/p&gt;

</description>
      <category>career</category>
      <category>discuss</category>
    </item>
    <item>
      <title>My Developer Story</title>
      <dc:creator>Tim</dc:creator>
      <pubDate>Mon, 17 Dec 2018 23:18:16 +0000</pubDate>
      <link>https://dev.to/theothertimduncan/my-developer-story-1b55</link>
      <guid>https://dev.to/theothertimduncan/my-developer-story-1b55</guid>
      <description>&lt;p&gt;I've been struggling with some issues around leadership and mentoring at work and have reached the point where I feel I need to reach out and ask the community for help. But before I do, I think I should introduce myself and provide some background. This was also partially inspired by &lt;a href="https://dev.to/lvrbrtsn/from-homelessness-to-making-six-figures-on-learning-how-to-code--3p91"&gt;Levi's story&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My first computer was a Radio Shack &lt;a href="https://en.wikipedia.org/wiki/TRS-80_Color_Computer" rel="noopener noreferrer"&gt;TRS-80 Color 2&lt;/a&gt;. And yeah, that might make me a little old. I don't remember much about it. I can remember getting it upgraded from 16K to 64k. I can remember I had trouble getting it to work correctly with a tape recorder for storage and may have eventually gotten a floppy disk drive. You kids have it so easy these days.&lt;/p&gt;

&lt;p&gt;But the computer bug didn't really bite me then. In 1986 for my freshman year of high school (please don't do the math) I took a typing class that used &lt;a href="https://en.wikipedia.org/wiki/Apple_IIc" rel="noopener noreferrer"&gt;Apple II C's&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Apple_IIe" rel="noopener noreferrer"&gt;E's&lt;/a&gt;. The teacher saw something in me and recommended I take her programming class on Applesoft Basic the following year. That was when the bug bit. &lt;/p&gt;

&lt;p&gt;I spent the rest of high school mostly self-learning since the formal classes weren't available and eventually moved to PCs. I can still remember the joy when I first got my hands on an &lt;a href="https://en.wikipedia.org/wiki/IBM_PCjr" rel="noopener noreferrer"&gt;IBM PC Jr&lt;/a&gt; (color screen!). Along with the switch to PCs, I moved from Applesoft Basic to Microsoft GW-Basic then QuickBasic, Borland Pascal, and then Turbo Pascal for Windows. I joined the Navy after high school with the intent of using the GI Bill for college only to have that not work out too well for me and end up getting kicked out three years later without the GI Bill. I made a brief attempt to get into writing and selling shareware (pre-Internet) but quit when I realized my business skills and resources were lacking. At that point, since without an education or any formal experience I felt I was unhirable, I essentially took a break from the development world. I worked as a temp for a while doing data entry before landing a permanent job in a warehouse as a merchandise picker.&lt;/p&gt;

&lt;p&gt;I didn't completely drop out. I had been introduced to Microsoft Access at one point and was still playing around with it. And I still read everything I could on various topics on software development. But it was the Microsoft Access experience that led me to the next step in my career. It was sometimes necessary to reprint the barcode label for merchandise. This involved looking up a number in the computer to then manually re-enter in a different application to print the barcode. The constant repetition annoyed me, so I created an Access database to remember previous entries and and to interface with the barcode printer. That got me noticed and pulled into a department that was essentially converting Excel "databases" into Access databases. This was an unofficial department working without official IT support since in this larger organization IT was focused on bigger and more important projects for the front office. Over the next few years, I ended up creating and managing an Access database system allowing multiple departments to manage HR data, productivity data, and other processes. By the end, the entire warehouse and a couple others were essentially running on my system.&lt;/p&gt;

&lt;p&gt;But eventually the stress and lack of official support was too much. I was working with some great people and felt valued, but every effort to find a second individual to help failed. It didn't help that due to corporate politics and policy that the role was essentially capped at $24 an hour. And for the final couple years, I had hit that cap. No "real" developer was willing to work at that rate or in my working conditions (back corner of the warehouse with forklifts running behind me), and the one or two from the warehouse floor that thought they might be interested didn't have anywhere near the level of knowledge to handle the system. When it finally sunk in that the chances of my ever making more than $24 an hour were nil and due to other changes in my life that was no longer enough to support my family, I decided I had no choice but to step outside of my comfort zone and find another job.&lt;/p&gt;

&lt;p&gt;Somehow a little ray of sunshine and luck shone down on me for a bit. One of the supervisors I had worked with at one point had a mother-in-law working at a shop that was hiring. He gave her my resume, and she passed it on. As the owner of that shop has told me on multiple occasions (with my full agreement), I was lucky their hiring standards were so low back then. He has also said they got really lucky with me (also with my full agreement!). And so in January 2012 I began what I consider the professional part of my career as a software developer.&lt;/p&gt;

&lt;p&gt;This shop is a Microsoft shop. They started me on a classic ASP application they sold to hospitals. They also had some apps using C# and WebForms that I eventually worked on too. Today I'm still using C# but with MVC and Razor, and we still have a couple classic ASP applications being actively worked on (yeah, they still exist). I've progressed to being a team lead or co-lead for three different projects.&lt;/p&gt;

&lt;p&gt;And that's where I am today. I still (mostly) enjoy what I'm doing and only regret not trying to start a career as a developer sooner. Where I struggle the most today is figuring out both how to effectively work within a team and how to effectively lead a team. But that struggle will be the subject of my next post.&lt;/p&gt;

</description>
      <category>career</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
