I've always been an advocate of making a clear delineation between a scripter and a developer. Some people say that just writing PowerShell code makes you a developer. Others I've talked to believe that you're not a "developer" until your checking in your code to source control and have some kind of minimum line count on a project. Either way, the line is fuzzy but I came across a situation yesterday that put a lightbulb over my head and made me realize I'm a "developer" now.
I've written some big modules before but it's always been on my time and it's always just been me. I never considered myself a developer. This is why I'm completely excluding line count as the delineator between scripter and developer.
I've also created fairly large PowerShell projects that have went through many review passes and I have open sourced them. But I still didn't consider myself a developer. I've even used source control to manage my code but I still didn't consider myself a developer. It was only until I'm in the situation where I am now that I've finally given in and consider myself a "PowerShell Developer".
I believe it took a few different scenarios combined to finally make me realize I've joined the dark side.
Shared code base with others
Prior to my current position I've always been on my own. I could code up a storm and not affect anyone but myself. Now I'm collaborating on a code base that's much bigger than any I've worked with before. I have to realize that changes that I make may affect others' work. This takes some getting used to. I can no longer just "tweak this little thing" without much testing since it may affect much more than I realize.
Feature deadlines and Bug fixes
I have deadlines for my code. Previously, I had deadlines for sysadmin tasks. I have deadlines to automate X feature and deadlines to fix Y bug. It's all about code modifications now. It's no longer about how I can get a DC brought online and servicing clients or supporting some system. It's now about deadlines for automating this or that task in code.
We use TFS for source control. All the PowerShell code is in source control and I am expected to regularly make commits to source control. I can't just pretend to use source control like I was previously. My job now depends on it!
I now only make changes to Dev code. This code gets reviewed and merged into QA if it's sufficient. If QA testing goes well it will then be built to eventually be put into a new version release. This is development. A system administrator/scripter would never have to go through a process like this.
I love my new position as a DevOps Automation Engineer and look forward to writing more and more PowerShell code every day! I guess this whole developer thing isn't too bad after all.
Join the Jar Tippers on Patreon
It takes a lot of time to write detailed blog posts like this one. In a single-income family, this blog is one way I depend on to keep the lights on. I'd be eternally grateful if you could become a Patreon patron today!Become a Patron!