Software development is a fast-changing environment. New tech, platforms, libraries, and frameworks seem to come every week. How does being a senior developer fit into that? Is it possible to even be senior in such an environment? In this episode, I explore the idea as well as recap the "Things I Wish I Knew" series as a whole.
Monday, December 25, 2017
Monday, December 18, 2017
Ep 45, Things I Wish I Knew 10 Years Ago, Coding Ability Does Not Determine Career Trajectory
As a young programmer, I figured that my abilities as a developer would be the primary driver of my career trajectory. As the years have gone on, I've realized that notion was a bit naive. In this episode, I examine what I've seen drive career progression in this industry.
Monday, December 11, 2017
Ep 44, Things I Wish I Knew 10 Years Ago: Job Titles Are Often Meaningless
Up until a few years ago, I held this assumption that job titles carry at least some meaning and weight. As I've advanced in my career, I've found this to be a dubious assumption at best. In today's epsiode, we I talk about job titles for programmers and their meaning (or lack of) within the software development industry.
Monday, December 4, 2017
Ep 43, Things I Wish I Knew 10 Years Ago: Job Postings Can Be Highly Inaccurate
Programming is unique in that job postings can be...creative with the truth. This is, unfortunately, something we typically only learn after a few years in the industry. In this episode, I examine inaccurate job postings.
Thursday, November 30, 2017
Ep 42, Things I Wish I Knew 10 Years Ago: Friends and Family Have No Idea What You Do
Being a programmer means that often people outside of other developers will have no idea what you do. Trying to explain your career to them will often lead to glazed over expressions. In this episode, I talk about some of the more humorous aspects of this, as well as some of the more serious.
Monday, November 20, 2017
Ep 41, Things I Wish I Knew 10 Years Ago: Software Dev Is Often More Hype Driven Than Experience Driven
I like to think that our industry is one such that each generation of programmers builds on the experience of the previous. In some cases, I think this is true, but more often I feel like we let ourselves get caught in the cycle of hype. In this episode, I dig into the topic of experience vs hype and which drives the other.
Monday, November 13, 2017
Ep 40, Things I Wish I Knew 10 Years Ago: Why Users Use Your Software
We like to think that users use our software because they've evaluated their options and found our software to be the best at enhancing their lives or jobs. However, in the enterprise or B2B environments, this is rarely the case. In this episode I explore the real reasons such users are using your software.
Monday, November 6, 2017
Ep 39, Things I Wish I Knew 10 Years Ago: Code Quality Is Not A Primary Driver Of Success
We talk about code quality a lot, and for good reason, but where does it fall in the list of things that really contribute to a project's success? Top 3? Top 5? If not there, why is it still so important? Today's show digs into that topic.
Monday, October 30, 2017
Ep 38, On Blaming the Last Programmer
Blaming the last programmer. We've all done it. It's practically a time-honored tradition. I find it both fascinating and annoying. In this more lighthearted, I talk about blaming the coder before you and some of the insights about it.
Monday, October 23, 2017
Ep 37, On What Makes for Bad Rollouts
Last week I talked about rollouts in general. Today we're going to talk about ways I've seen software rollouts go horribly wrong.
Monday, October 16, 2017
Ep 36, On Rollouts and Harsh Realities
Whatever kind of developer you are, for most of us shipping code is our overall objective. At some point, all the theory about patterns and business rules and the debates about frameworks and tech give way to the realities of getting your code in front of the users. In this episode, I talk about those realities.
Monday, October 2, 2017
Ep 35, On Karma, Meritocracies, and Getting What You Deserve
We like to think that people get what they deserve, that their good or bad karma will catch up to them. This is true even of logical thinkers like programmers. We like to think that developers who work hard and ship good software will be rewarded and that good leaders will be promoted into management. In this episode, I talk about these ideas and whether or not they're realistic.
Wednesday, September 27, 2017
Bonus Ep 2, On Professional Expectations and Being Realistic
I expect a lot of myself professionally. That comes largely from my upbringing and my early 20s, and it sometimes causes me to be really hard on myself. I also tend to carry those expectations over to others, and that can cause me to struggle when I feel others haven't met those expectations. In this bonus episode, I talk about those expectations and whether or not they're realistic.
Monday, September 25, 2017
Ep 34, On Trendy Programming and Actually Shipping Code
Incorporating trendy new tech into our projects can be a big temptation. Last week I talked about some of the dangers of doing just that, this week I want to talk about the criteria I think your project should meet if you are going to pull in some of those things.
Monday, September 18, 2017
Ep 33, On Fads, Career Burnout, and Standing the Test of Time
Programming, and web dev especially, can be prone to fads. In some respects, they drive innovation, but from another point of view, I think the constant reinvention stifles our ability to build solutions that can stand the test of time. In this episode, I dig into the dangers of fads and how I ended up burned out from web dev.
Wednesday, September 13, 2017
Bonus Ep 1, Thoughts On Communication, People's Feelings, and Being Diplomatic
I can be a pretty honest and direct guy, and that has gotten me into hot water as a programmer on more than one occasion. In this episode I talk about my struggles with trying to be more diplomatic and the mixed feelings I have about it.
Monday, September 11, 2017
Ep 32, Office Politics Exception Handling: When Relationships Go Wrong
Last week we talked about the importance of building key relationships in the hopes of giving you, your developers, and your project an increased chance of success. What if those relationships go wrong, or already are? In this show I go over how to repair those relationships when possible and mitigate them when you can't.
Tuesday, September 5, 2017
Ep 31, Hello, World: Beginner's Office Politics for Programmers
"Office politics" brings to mind images of nasty people backstabbing each other to jockey for position at the office. These days people prefer the phrase "soft skills". Whatever phrase you use, the truth is that maintaining good relationships with key people can help programmers and their projects really succeed. In this episode I go over some of those relationships that I think are really helpful for software developers.
Monday, August 28, 2017
Ep 30, Various Thoughts On Lead Developers, Office Politics, Ignoring the Past, and Controlling Your Emotions
Guys, I have had a tough couple of weeks and frankly have not been able to nail down a single topic I've wanted to cover. For today's show I'm going to key off of that and talk about a few things:
- Programmers who want the prestige of being a lead developer but not the responsibility
- Should programmers understand office politics?
- The dangers of ignoring the past
- The idea of "controlling one's emotions"
Monday, August 21, 2017
Ep 29, Don't Be a Resume Driven Developer
"Resume driven development" is a humorous and often derisive term for a certain style of programming and programmer. It's a tempting trap to fall into, but in this episode I go into my experiences with these types of developers and their projects and why you should avoid the temptation of becoming one.
Monday, August 14, 2017
Ep 28, On Being a Junior Developer
Junior developers. We've all been one, and some of us still are. In this episode, I talk about some of my experiences as and thoughts on junior developers, which ones make for good hires, and I also try to offer encouragement to any junior devs out there who feel down and out.
Monday, August 7, 2017
Ep 27, Can the What and the How really be separated?
In many shops, you often have someone, typically a manager, who's in charge of what and programmers who are in charge of the how. Is this a natural division of the work we do? In this episode, I explore why I think the what and how aren't truly separable.
Monday, July 31, 2017
Ep 26, The Dangers of Goldplating
We've all heard the term "goldplating" in software development, but what exactly is it? Who generates it, and why should it be avoided? In this episode, I dig into both stakeholder and developer driven goldplating, why it's bad, and how to mitigate its effects.
Monday, July 24, 2017
Ep 25, When Agile isn't so agile
The Agile revolution was supposed to bring us new abilities to adapt to change in software projects. In many cases, Agile has delivered on that promise, but in many other cases, it can be just as inflexible as Waterfall. In this episode, I examine one such scenario and give some advice for programmers who find themselves in it.
Monday, July 17, 2017
Ep 24, Are Highly Talented Jerks Worth It?
We've all had to work with difficult programmers, but every once in a while we come across someone who's so onerous that they negatively impact the entire shop. Unfortunately, sometimes these people are also highly skilled in some key area of your organization. Are such people worth dealing with their toxic personalities? In this episode, I answer that question and offer insight from my own experiences with such developers.
Monday, July 10, 2017
Ep 23, Why I Hate The Phrase "That's not my code"
Have you ever had to fix a bug in code that you didn't write? Most programmers have. A common thing I hear when this happens is for the developer to say, "That's not my code". In this episode, I talk about how unhelpful that phrase is and why I dislike it so much, as well as offering guidance on what to do if you find yourself consistently fixing someone else's bugs.
Monday, July 3, 2017
Ep 22, Take Pride In Your Code But Remain Emotionally Detached
Taking pride in the code we write is really important. The best programmers treat it like a craft. But how much pride is too much pride? What happens when we find ourselves unwilling to admit when we're wrong? In this episode, we explore these concepts and end with takeaways for dealing with our own emotions and other defensive developers.
Monday, June 26, 2017
Ep 21, Should New Development and Maintenance Be Separate Groups?
Some developers get to work on new projects, others of us provide maintenance on existing applications. Why do organizations separate the work like this? What are the effects of doing so? In this episode I dig into why some organizations separate greenfield from brownfield development and offer my perspective on that approach.
Monday, June 19, 2017
Ep 20, Write Software For Your Users: A Bold, New Concept
As software developers, our job is to deliver software that is appropriate for our user base so that they may solve some sort of problem. This is something I think we struggle with as an industry. In this episode, I dig into the topic of understanding your user base and then offer several takeaways to help you deliver better solutions to them.
Monday, June 12, 2017
Ep 19, When is "ship early, ship often" appropriate?
We often encounter the phrase "ship early, ship often". What does it mean? Where does it fit into software dev and Agile specifically? In this episode, I examine the phrase and try to dig out some conclusions about when and where "ship early, ship often" really applies.
Monday, June 5, 2017
Ep 18, What If Leaving My Job Isn't An Option?
So many tech talking heads will advise someone in a tricky situation to "find a better job", but what if that's not possible? In this episode, I dig into the options programmers have when they can't or don't want to leave their current jobs.
Monday, May 29, 2017
Ep 17, Coding Against Deadlines
The vast majority of software projects have deadlines. Sometimes these deadlines are realistic, other times they're not. In this episode, I dig into ways of effectively using what time you have to ship the best code possible, whether that deadline is far away or right around the corner.
Monday, May 22, 2017
Ep 16, Understanding Your Organization's Culture
Your organization has a specific culture. So does the department in which you work. Even your project team has a specific culture. Who drives these levels of culture? How can it be changed, or should it? In this episode, I dig into the topic and offer thoughts on how to understand, navigate, affect change, and use that culture to enhance your project, career, and overall job satisfaction.
Monday, May 15, 2017
Ep 15, Understanding The Technical Vs Business Dynamic
Most software development projects these days divide tasks between the technical people and business people. Technical people include programmers, QA analysts, data professionals, and the like. Business people typically refers to project managers, product owners, and business analysts. For some projects, this dynamic clicks really well, but for others, it can become hostile. In this episode, I dig into some of the pitfalls of this relationship, how to repair and avoid broken dynamics, and why it's so important to keep this dynamic healthy.
Monday, May 8, 2017
Ep 14, Deadlines and Scope Vs Code Cleanup
Hopefully, our projects reach their v1 ship dates. Those last few months can be exciting and nerve-wracking. Many times, development teams will want to spend some of that period doing code cleanup, but what if v1 scope hasn't yet been completed? In the argument of MVP scope vs technical debt, who wins? I dig into that topic and give some advice on how to defuse the situation and hopefully avoid it altogether in the future.
Monday, May 1, 2017
Ep 13, Technical Reasons Projects Fail
Last week we dug into the non-technical reasons that cause projects to fail. As promised, this week I turn our attention to the various things that developers do that can cause projects to fail. I also spend a little time talking about the different meanings of failure in this industry. We finish up with takeaways for developers that will help them avoid this situation.
Monday, April 24, 2017
Ep 12, My Project Failed, Do I Suck As A Programmer?
Software projects fail all of the time. When they do, we as developers can take it very personally. I think it's important for us to reflect on how we contributed to those failures, but I think it's equally important for us to understand some of the non-technical reasons that projects fail. In this episode, I explore some of those non-technical circumstances.
Monday, April 17, 2017
Ep 11, Generalists Vs Specialists And The Good Enough Solution
Lately, I've been seeing a lot of chatter regarding generalists vs specialists in the field of software development. It's an interesting and somewhat controversial topic. In this episode I dig into my take on it, the history behind the question as I've seen it, and my general thoughts and takeaways.
Monday, April 10, 2017
Ep 10, Where Did My Career Motivation Go?
From a young age, we're told that the key to a fulfilling career is to find something we're passionate about and figure out how to make money at it. Our society places a great level of importance on having a satisfying career. I think this hits programmers harder than many because we truly tend to love what we do. Are those expectations about our careers realistic? Should we always be motivated and happy with our jobs? In this episode, I deep dive into some heavy issues to examine those topics.
Monday, April 3, 2017
Ep 9 Why I Fell Out Of Love With Scrum
Is your organization considering adopting Scrum? Have you yourself wondered what all the buzz is about? Are you a software developer or product owner that's found yourself struggling with it? In this episode I dig into my experiences and opinions on Scrum as a flavor of Agile.
Monday, March 27, 2017
Ep 8, How I Fell Into The Mistake Of Big Design Up Front
I'm an enterprise developer, and so much of my time is spent pondering architectural issues on these humongous applications that we write. Lately, though, I've realized that I've fallen into the trap of Big Design Up Front. In this episode I share my thoughts on a recent personal project where BDUF completely hampered my ability to write any actual code.
Monday, March 20, 2017
Ep 7, Refactoring, Why Managers Hate It (And Sometimes So Should You)
Boy, do managers hate refactors. I've seen managers become livid just at the mention of the word. Why is that? Is their anger justified? In this episode I do a deep dive into refactoring to shed some light on the subject.
Monday, March 13, 2017
Ep 6 - Is There A Saner Approach To TDD?
In episode 5, I talked about some of the shortcomings I'd found while working on a purely test driven development project. In this episode I outline some of the changes our team made for a more approachable TDD that fit better with our culture. I end the show with some overall thoughts on our process and its benefits and drawbacks.
Monday, March 6, 2017
Ep 5, TDD: A Retrospective
Test Driven Development, or TDD. It's a buzzword we hear thrown around a lot in this industry. These days it's considered a de facto "best practice". Is it? What are its pluses and minuses? In this episode I shed some light on those questions by diving into my own experiences with it on an enterprise level project.
Monday, February 27, 2017
Ep 4, The Sad State of Careers in Software Development
Do job titles matter for software developers? What's the career progression for a developer that doesn't want to go into management, anyway? In this show I attempt to answer those questions while also giving some commentary on what I think is a sad state of affairs for software developer careers. I end the show with some thoughts on what I'd like to see going forward!
Monday, February 20, 2017
Ep 3, Is Software Development A Meritocracy
We like to think that we're rewarded based on our abilities. I think this is especially true in STEM fields where we solve very complex, technical problems every day. I think many people regardless of field expect to be rewarded based on their ability and proficiency. Is that the case? Do we work in a meritocracy? This show digs into that question, tries to answer it, and finishes with some advice to help you navigate through the realities in our field.
Monday, February 13, 2017
The Users Don't Care What The Code Looks Like...Do They?
I've heard many times throughout my career that "the user doesn't care what the code looks like, as long as it works". I've most often heard this phrase when a manager or some other stakeholder wanted me to release code before I thought it was ready. Today I'd like to examine that phrase and see if there's any truth to it.
Thursday, February 9, 2017
Stitcher: http://www.stitcher.com/s?fid=130365&refid=stpr
YouTube: https://www.youtube.com/channel/UCDyMM5PWkkI_7hgXwfZIgRQ
I'm trying to add a lot of different ways for folks to listen and subscribe if they like. Let me know of any I might be missing!
Wednesday, February 8, 2017
iTunes: https://itunes.apple.com/us/podcast/a-programmer-refactored/id1203268151
Google Play Music: https://play.google.com/music/m/Iga77aswf4r4djzhurfaesbbbxi?t=A_Programmer_Refactored
Monday, February 6, 2017
This blog will accompany the podcasts that I publish. Each episode of the show will have its show notes posted here, too.
Ep 1 Technical Debt: A Useful Metaphor For A Terrible Practice
We've all heard the term "technical debt". What exactly is it? How does it affect our projects? Can it be avoided? In this episode of A Programmer Refactored, I take a look at the phrase, dissect it a bit, then ultimately try to determine if its of any real use.