DaedTech

Stories about Software

By

Some Changes to DaedTech Because I Want to Build a Thing

If I squint hard enough, I see an odd symmetry to my life that can be book-ended pretty simply with the phrase, “I want to build a thing.” I say this now, and I said it when I headed off to college, but I didn’t say it all that much in between. At least, I didn’t say it in the macro sense. But let me start the story a little before college.

As a kid, I was pretty equal opportunity when it came to academics. This was eventually born out somewhat empirically by my nearly identical SAT scores for math and verbal. So even though I had aptitude for math and the sciences, the first actual profession I aspired to in a non-childish fashion was to be a writer/novelist. I was pretty sure that I would make my living this way until it came time to apply to college. Here, I punted on a decision, applying to what I perceived to be the most rigorous major/school at each college and reasoning that I’d sort of force myself to make a decision. Mission accomplished. After weighing options and finances, Carnegie Mellon University in Pittsburgh was my best option and they were pretty good at Computer Science, so Computer Science it was. The world was enthralled with dot-coms, I’d always liked hacking around on my programmable calculators, I was told I’d be printing money when I graduated, and so I headed off to school saying, “alright, I’m gonna go build a thing!”

AirportMetalDetector Read More

By

How My New Pluralsight Course Can Help You

I spent a good portion of this fall working on a Pluralsight course.  It was originally going to be ready earlier, but it’s a lot harder to get a course recorded in a hotel room than it is in my comfy office at home. Nevertheless, I finished it up some weeks back, and it was just released on New Years Eve, 2014.

Earlier this fall, I wrote a post called “Have a Cigar.” In it, I described how I thought we as developers had essentially opted out of controlling our own destiny by adopting the attitude, “I’m a programmer and I don’t care about that business stuff.”  Sometime later, I read this post by Michael O. Church and realized there was a nice tie-in with autonomy as well.  Programmers feel they have more “geek cred” by eschewing “business matters,” but they also know that they’ll have autonomy when picking an RDBMS in a way that they won’t when discussing what the tools and software budget should be.  It’s a completely understandable sentiment.

But unfortunately, the road to controlling our own career destinies travels through “the business.”  If we want to lead existing organizations or found new ones, we can’t operate as if we were in some kind of technical think tank.  We need to learn to solve different kinds of problems, and in order to do so, we need to play on the home field of the MBAs, project managers, CPAs, and C-levels.  And to do that, we need to be able to communicate effectively in their language about concepts in our field.

It was toward this end that I made this Pluralsight course, entitled, “Making the Business Case for Best Practices.”  I wanted to start a conversation and provide some tools to people in our line of work that are looking to help people understand why they’re doing what they’re doing.  I wanted to give you a way to say, “We don’t just do practice X because it’s ‘the right thing.’ It also helps us make money.”

One thing I’m asked pretty frequently is “how can I convince my manager/the CTO/the project manager/etc. that we should do TDD/continuous integration/code review/pair programming/etc.?”  Usually, they’ll say something like, “I know it’s the right way to do it, but how do I make them see that?”  My response is generally something like, “How do you know it’s the right way to do it? Does it help your company make or save money?”

FriendlyBoss

Often people are surprised by this response, especially because I’m such a proponent of many of these practices.  But the reason that I’m a proponent of them is because they’ve helped me and companies I’ve worked with to meet their goals with the aid of software.  In other words, TDD isn’t the right thing to do because it is a superior approach, but rather it’s the right thing to do if it helps generate revenue or reduce expenses for the company commissioning the software.

It’s important to understand that because it’s important to understand that software is a tool and not an end goal.  If you’re a developer or working as a PM/line manager for a software group, it’s easy to view the software as the be-all, end-all. But in reality, you’re writing software to help do something more basic — automate an expensive, error-prone process, help customers communicate, run some kind of hardware that end-users use, etc.  And so the only thing that really matters when you’re discussing how to write that software (TDD or not, pair programming or not, etc) is whether the practice will help the software’s stakeholders achieve their goals and/or save money in the process.

Once you’ve come to understand what truly matters when discussing how to approach writing software, you’re in a much better position to make your case to the people that control the purse strings.  Imagine that you’re trying to make the case that your group should use static analysis and the crusty old architect with 25 years of seniority is stymying you.  His argument is probably something like, “blah, blah, 25 years, blah, blah, tried it before, blah, blah, can’t work, blah, blah, pointless, blah, blah kids these days.”  But his argument is likely to carry the day due to his tenure if you argue back with “blah, blah, right thing to do, blah, blah, saw at a conference, blah, blah, Uncle Bob, blah, blah, my grad school text book.”

But now, for a minute, imagine that you’re in the CTO’s office with the architect and he’s just made his tiresome case.  Instead of making a similar one, however, you plug in your laptop and start a slideshow where the first slide says, “Static Analysis is going to save you $13,000 per year in your budget.”  I bet you he snaps to attention and watches carefully as you lay out your case in the subsequent slides.

I wrote this course to help you do just that — to help you make the case for practices that you want to adopt not because they’re “best” but because they’re profitable.  I’ve been using this approach for some time now, and I’ve had a great deal of success convincing the people that needed convincing that my approach was sound.  I’m hoping that, with the aid of this course, you’ll have luck doing the same.

I couldn’t be more serious about the need for technical people to reclaim “the business” instead of shying away from it.  So I encourage you to take some time, learn the language of business and learn where and how software practices fit in to improving the bottom line.  Your career will be better for it, and so will your endeavors.

By

Retrospectives Are So New Years 2014

The last couple of years, I’ve posted yearly “retrospectives” about this blog. Last year, I actually mentioned that I’d started doing this because it seemed like something other bloggers did and then I kept doing it because I like continuity. This year, I’d like to take the opportunity to stop.

LotsLeftToDo

I suppose some reading might be mildly interested in which posts of mine in the last year were most popular, how my demographic splits looked, or how many visitors I had per month. That is, if I told you in this post, you might read through to the end. Or, you might not. (It’s okay if you wouldn’t — I wouldn’t bother either, if I were in your position).

Thing is, none of that matters very much, so I’m going to dispense with the artifice for its own sake. I’ve never been much for traditions anyway; pretty much everything done at weddings bemuses me. The important thing is that I write these musings of mine and you read them and appear to appreciate them and I, in turn, appreciate that. I appreciate you spending a few minutes a few days a week reading what I have to say. Seriously. There is a truly infinite number of ways in which you could spend your time and you’ve opted to spend it reading what I have to say. I am grateful for that. Thank you.

At this point, read on only if you’d like to hear me ruminate a bit about this past, weird year of our Lord, 2014. (In case you’re wondering, I haven’t taken this blog toward religiousity — “AD” means “Anno Domini” or “In the Year of Our Lord” so every time you date a check this year, regardless of your religion, you’re dating it “In the Year of Our Lord 2015.” I believe this is why people have pushed a bit for the designation 2015, CE or Common Era.) The rumination will be relatively brief and light — I promise.

Last year, I talked about growing up as a blogger. This year, I’ve grown up as a human. At the beginning of 2014, I was running an IT department. In the last 12 months, I bid a reluctant farewell to that job to strike out on my own as a free agent. It was a difficult decision but I had, in essence, become convinced that I would not find what I was looking for in the corporate world and I essentially opted out… at least as a salaried, W2 employee. I accepted the fact that life as a Company Man would inevitably disappoint and decided to try a different tack.

It’s been fun and interesting. I’ve grown my freelance application development practice a bit, but I’ve really branched into true consulting. What I mean by this is that instead of trading hours of software development for dollars, I’ve begun to favor offering my services as a velocity multiplier — working with organizations and teams to help them understand how to be more efficient at developing software.

Perhaps more important (and salient to this blog) than any of that, however, is my development as a content creator. A year ago, I had two Pluralsight courses and a couple of fresh E-Books. Today, I have 4 Pluralsight courses, 3 E-Books and 2 actual, printed books. While I’ve grown professionally in terms of leadership and consulting, I think I’ve grown even more in the arena of content creation.

As someone fortunate enough to have enjoyed a nice career as a software developer, the emphasis on content creation may sound strange. It’ll probably sound even stranger when, coming from a heavy STEM field, I explain that it was virtually assumed when I was a child that I’d wind up being a professional novelist or, at least, a writer of some sort. And so, the opportunity to fuse the fields of software work and writing is particularly appealing to me.

I don’t know exactly what’s coming in 2015, but I can tell you a few things. First of all, I’ll definitely keep writing to the DaedTech blog. Secondly, I’m going to keep working with Pluralsight. Beyond that, I’m planning to start doing some professional copywriting in the software industry and also to write a book from scratch. (If you’re interested, the loose working title/premise with which I’m operating is “Developer Hegemony: The Future of Work”). And, of course, I’m going to keep coding, keep working with developers, keep running teams, keep looking at your code bases and offering thoughts, keep loving technology and keep solving problems.

So, thanks again for reading, please feel free to check back and hit me up whenever, and have a great 2015!

By

A Thanksgiving Apology

I’d like to wish all (American) readers here a Happy Thanksgiving. I’m probably not going to make a post for Friday and perhaps not Monday, so this will be it for a little while. I’m rarely home these days, so I’m going to take the opportunity of being here to relax and visit with family. So, enjoy your own holidays or, if you’re not in the US, your rest of the week and weekend.

Also, I’d like to apologize for a situation brought to light yesterday by this tweet:

For those of you reading without the benefit of ad-block, I’d really like to apologize. It looks like at some point the disqus settings around advertisements reset to “show ads and shady ones at that.” I have no idea when I last updated disqus, so this has probably been going on for a while (I knew disqus would show ads, but I didn’t realize how gross they were). Those should be gone now, so please let me know if you see nonsense like that again. Looking at the credit I’ve earned through this accidental revenue source, the earnings aren’t nearly high enough to start asking the question, “does dignity have a price tag?” I’d rather provide a pleasant reading experience.

For anyone interested, here’s how to get disqus to stop doing that.

Anyway, for the holiday, enjoy this picture of a turkey:

Turkey

By

Hot off the Presses

Instead of your (semi) regularly scheduled post, I’d like to mark something of a milestone today. As a child, I was pretty sure I had it figured out. I was going to write science fiction novels for money and alternate between roaming around the world and living in the woods. I’m not sure exactly where I went wrong, but somehow I got slightly off course and wound up roaming the country, living in legacy code bases and fleeing from people waving Gantt charts. But, all is not lost — I now have two printed, published books to my name.

Links to 3 E-Books have appeared on the right-hand side of my site for a while now, but 2 of them are now available in print. So you can go to Amazon, order, and receive a real, bonafide, bound, glossed and printed book that I wrote. Or two.

Here they are.

Starting to Unit Test: Not as Hard as You Think

StartingToUnitTest

This book is more or less what you would expect, given the title. It assumes that you’re a developer who’d like to have some experience writing automated unit tests. But… you don’t know where to begin. The book invites you to relax and assures you that it won’t be so bad to learn if you set yourself up for success.  It also might be a great thing to slide casually to people on your team that can’t seem to break themselves of the habit of writing legacy code in real time.

If you’d like a copy, here’s the Link to Amazon

The Expert Beginner

ExpertBeginner

This is the synthesis and refinement of a series of popular posts I made some time back. It’s about the unfortunate journey that some people in the tech world take from novice to “not very good, but I was the first one here so now you have to listen to the dumb stuff I tell you.” Somewhat cynical on the surface, it really underscores what I perceive to be a muted, industry-wide tragedy but one from which recovery is certainly possible.

If you’d like a copy, here’s the Link to Amazon

Enjoy, and for those of you hoping for the next Chess TDD post, it’s in the works.  I have some of the video for the next one, but it needs audio.