Details
Joined devRant on 4/18/2016
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
This started as an update to my cover story for my Linked In profile, but as I got into a groove writing it, it turned into something more, but I’m not really sure what exactly. It maybe gets a little preachy towards the end so I’m not sure if I want to use it on LI but I figure it might be appreciated here:
In my IT career of nearly 20 years, I have worked on a very wide range of projects. I have worked on everything from mobile apps (both Adroid and iOS) to eCommerce to document management to CMS. I have such a broad technical background that if I am unfamiliar with any technology, there is a very good chance I can pick it up and run with it in a very short timespan.
If you think of the value that team members add to the team as a whole in mathematical terms, you have adders and you have subtractors. I am neither. I am a multiplier. I enjoy coaching, leading and architecture, but I don’t ever want to get out of the code entirely.
For the last 9 years, I have functioned as a technical team lead on a variety of highly successful and highly productive teams. As far as team leads go, I tend to be a bit more hands on. Generally, I manage to actively develop code about 25% of the time to keep my skills sharp and have a clear understanding of my team’s codebase.
Beyond that I also like to review as much of the code coming into the codebase as practical. I do this for 3 reasons. I do this because as a team lead, I am ultimately the one responsible for the quality and stability of the codebase. This also allows me to keep a finger on the pulse of the team, so that I have a better idea of who is struggling and who is outperforming. Finally, I recognize that my way may not necessarily be the best way to do something and I am perfectly willing to admit the same. I have learned just as much if not more by reviewing the work of others than having someone else review my own.
It has been said that if you find a job you love, you’ll never work a day in your life. This describes my relationship with software development perfectly. I have known that I would be writing software in some capacity for a living since I wrote my first “hello world” program in BASIC in the third grade.
I don’t like the term programmer because it has a sense of impersonality to it. I tolerate the title Software Developer, because it’s the industry standard. Personally, I prefer Software Craftsman to any other current vernacular for those that sling code for a living.
All too often is our work compiled into binary form, both literally and figuratively. Our users take for granted the fact that an app “just works”, without thinking about the proper use of layers of abstraction and separation of concerns, Gang of Four design patterns or why an abstract class was used instead of an interface. Take a look at any mediocre app’s review distribution in the App Store. You will inevitably see an inverse bell curve. Lot’s of 4’s and 5’s and lots of (but hopefully not as many) 1’s and not much in the middle. This leads one to believe that even given the subjective nature of a 5 star scale, users still look at things in terms of either “this app works for me” or “this one doesn’t”. It’s all still 1’s and 0’s.
Even as a contributor to many open source projects myself, I’ll be the first to admit that have never sat down and cracked open the Spring Framework to truly appreciate the work that has been poured into it. Yet, when I’m in backend mode, I’m working with Spring nearly every single day.
The moniker Software Craftsman helps to convey the fact that I put my heart and soul into every line of code that I or a member of my team write. An API contract isn’t just well designed or not. Some are better designed than others. Some are better documented than others. Despite the fact that the end result of our work is literally just a bunch of 1’s and 0’s, computer science is not an exact science at all. Anyone who has ever taken 200 lines of Java code and reduced it to less than 50 lines of reactive Kotlin, anyone who has ever hit that Utopia of 100% unit test coverage in a class, or anyone who can actually read that 2-line Perl implementation of the RSA algorithm understands this simple truth. Software development is an art form. I am a Software Craftsman.
#wk171 -
I am going to create a new language called Yoda that is identical to Java but it has no exception handling and no for loops.6
-
So any other day I wouldn't be that broken up over missing a day of work over a delayed and subesquently cancelled.. Except when that day of work means that I get to attend the WWDC keynote in person! F U American Airlines!1
-
TL;DR Developers don't like it when marketing attempts to do their job. They like it even less when they have to clean up the mess when they fuck things up.
Our marketing team was specifically told not to put JS into the CMS. They were told that if you need JS for something, we will do it and then work it into a release. That wasn't good enough so they hired a design firm to "hack" the JS inline. They found a back door to get the JS in place but couldn't get it to work right. They called me to come look at it. After 5 minutes of explaining why they shouldn't have done what they did, I grudgingly decided to look at the JS. 30 seconds later I fixed what they had been screwing with for about 8 hours. They were using --> arrows in their comments! Seriously?!? designer != developer2 -
Newbie just started this week and went changing hibernate settings on us. Changed hbm2ddl from update to create, which nukes the data on every deploy. She thought she was working against her local DB when in fact she was pointed at the shared integration database, thus nuking INT. Through a couple hours of PL/SQL wizardry, I managed to resurrect the data. Within 5 minutes of giving the team the all clear, the data disappeared again...betcha can guess what happened...again!2
-
When your boss says "no we don't need you present for the deployment on Saturday at 4:00 am." And your PM chimes in and says, yeah you can log in remotely." FML
-
When you know clearing out your maven repo will fix the problem but won't do it because if you do you'll never know what the ACTUAL problem was.
-
When a contractor that failed spectacularly on a project asks you to give them a recommendation on LinkedIn...