Archive for the 'General' Category

How do you keep up with technology?

Saturday, June 10th, 2017

If your first thought on seeing that question is to think of the techniques you use to keep up – books, courses, videos, experimentation and so on, then you’re probably doing it wrong – or at least, could do it better.

Find out why in my new Pluralsight course “Keeping up with Technology“.

New Course: Building Software That Lasts – A Guide to Maintainable Software

Thursday, June 2nd, 2016

Will your software outlast the original developers? Almost certainly yes. But will you be able to maintain it?

That’s one thing about being in the software development business as long as I have – you gain a very healthy respect for the value of maintenance. Sure, the studies all show that maintenance costs 50%-80% of the total life-cycle cost of software, but there’s nothing like living through the entire life-cycle of multiple software projects to really understand that.

You spend a lot of time thinking about what you might have done earlier on to make life easier now.

Which is why my latest Pluralsight course, Building Software That Lasts – A Guide to Maintainable Software, is perhaps the most important course I’ve published. If not the most important, it’s certainly the one with the greatest potential to have a real impact on the cost of software.

This is not a theoretical course full of recommendations that sound great, but never put into practice. This course was born from pain – and the sure knowledge that in many cases, especially in today’s fast paced development world, maintenance and maintainability is the last thing on anyone’s mind, or in anyone’s budget. So while yes, I do discuss best practices, I spend a lot of time focused on processes and practices that are simple and cheap – and that might actually get done even when budgets are tight and speed is of the essence.

So I invite you to check it out and tell your friends. Even if you just pick up a few ideas, they’ll be worth it – that’s the thing about maintenance: a small investment now can save you a fortune in time and effort later on.

New Course – The Future of Technology Careers

Saturday, May 16th, 2015

What technologies will you be working on a decade from now? Will you even be working in tech? Do you even think that far ahead?

Most of us don’t. There’s this assumption that because technology changes so quickly, long range career planning in technology is futile. So our careers are driven by the opportunities of the moment and happenstance, rather than by any real long term thought.

But it turns out that long term career planning is possible, even as the pace of technology change increases. Not only is it possible, it’s a crucial part of any technology career, for all that it is neglected.

My new Pluralsight course, “The Future of Technology Careers” can help you to start applying long range planning to your career – to think about the future in new ways.

And if that doesn’t convince you to watch it, allow me to point out that it is the only Pluralsight course to seriously address the potential consequences of a Zombie apocalypse on software development. How can anyone say no to that? Remember – you can sign up for a free trial on their web site, so what are you waiting for?

New Course: Data Visualization for Developers

Saturday, April 26th, 2014

I’m pleased to announce my latest Pluralsight course “Data Visualization for Developers”. In this course I cover the fundamentals of data visualization that every developer should know. The course goes beyond the basics of charting to cover data visualization architectures – an essential element on today’s world where data, analytics and rendering can be distributed across multiple servers and cloud services.

Check it out at pluralsight.com

So long, Windows XP

Saturday, March 29th, 2014

Part of being in the software development business is that sometimes you have to support software for a long time. Longer even, than Microsoft does. So the fact that XP is about to become an unsupported unsecured target of every virus and botnet in the wild doesn’t change the fact that I need to keep it around as part of an old build system.

But, that doesn’t mean I need to keep it around as real hardware. So, it’s time to say farewell to that old Sony Vaio – one of the finest and quietest old Pentium machines I’ve owned. Its soul has been removed – virtualized – leaving behind an empty hulk of hardware with, get this, the last of the old tube monitors.

Its spirit will live on, joining a virtual community of old Windows 2000, Windows 98 and Windows NT build systems. Waiting in limbo for the possibility they’ll be called into action again to support a customer running some ancient legacy software.

Adventures with Motorola – The Sequel

Monday, December 16th, 2013

Last week I referenced Motorola in two posts, concluding with the observation that they, unlike Salesforce, are not a “customer company”. This after their complete fiasco on cyber-Monday with regards to their $150 off promotion for Moto X phones.

One person pointed out to me how their CEO apologized for the events of that day, and their decision to double the number of available phones and offer them on two other days as an example of how they really are a “customer company”.

In all fairness, I agreed that Mr. Woodside’s apology was the right thing to do, and it was appreciated. At first I was less than thrilled by the offer to double the number of devices, as it didn’t seem it would fundamentally change the lottery nature of the offer, and thus potentially offer nothing but more frustration to those who tried to take advantage of the offer on Monday. However, I was very pleased to see that they changed the mechanism of the offer so all you needed to do was sign up for the discount – meaning that those who were aware of the new dates and showed up on time were virtually certain to get a discount voucher – it took about 9 minutes for them to run out.

Did Motorola make that change to make things better or more fair for those who were frustrated Monday, or because it was a necessary technical solution to scaling up to handle the anticipated traffic? I suspect the latter, but I’m willing to offer the benefit of the doubt, as both goals were accomplished.

But, despite this, Motorola is still not a “customer company”. Let me tell you why.

I ordered a phone after receiving the voucher. The next morning I received an Email that my order had been cancelled, with no reason – just a number to call if I wanted to find out why.

I tried their online chat support, but the person there could not help – they had no access to the necessary information.

So I called – it took about 5 minutes to connect me to an agent. It then took the agent about 10 minutes to research the problem – it turned out that the address I specified as the shipping address did not match the billing address, so the order was automatically cancelled. I use one of those mailbox places to receive packages – it’s more secure. Now I’ve seen sites where there were warnings that choosing a different shipping address might delay delivery because it requires additional verification. I’ve seen sites that don’t allow different billing and shipping addresses in some cases. But this is the first time I’ve just seen an order cancelled. Why was there no warning during purchasing? Why was there no reason on the cancellation Email, forcing me to call in?

And what about the discount voucher code? Could it still be reused? It took the agent more time to research that, and then transfer me to the department that could issue me a new code. Except that they couldn’t – they had to open a case that required management approval to issue a new code – and they would call me back within 24 hours. That, of course, did not happen. They called back in 48 hours saying that a case had been escalated to management to request a new code. This did happen, several days later, leaving me just one day to use the code before its expiration date.

This is why Motorola is not a customer company. Their support staff are wonderful people – they were very nice and worked hard to solve my issues. But they clearly are not empowered to make things right, and they don’t have the tools to do so quickly – I was on the phone for over half an hour for what should have been a very simple process.

If they were a customer company, I would have received a call or Email before the order was cancelled explaining the issue and offering me options. If they were a customer company, they would have been able to reopen or replace the order to my home address, or even the mailbox place once I called. If they were a customer company they would have been able to reissue me a discount code on the spot.

You may wonder why I keep harping on this. It’s not because I hate Motorola. On the contrary – my current phone is a Motorola Droid Razr and it is a great phone, and I finally got my hands on a Moto X despite Motorola’s best efforts. And so far, it seems to be as amazing a phone as I was hoping it would be. Motorola is a technology company, and like many, I’m willing to put up with a lot of hassle to get great technology. But I shouldn’t have to. And I hope someone at Motorola will read this and realize that if they want to be competitive with the Apples and Samsungs in the world, they’re going to need more than great technology – they’re going to need to become a customer company as well.

So that’s what it means to be a customer company….

Monday, December 2nd, 2013

At Dreamforce there was quite a bit of talk about how the Salesforce platform can help any company to become a “customer company”. Frankly, I paid little attention – to me it sounded like typical marketing speak – a cliché intended to sell something.

Today Salesforce announced the results of their hackathon investigation, and while it’s interesting, what really struck me was the contrast in the process that took place there as compared to another experience I had today with Motorola as I tried to purchase a phone.

For those who aren’t aware, Motorola had announced a Cyber-Monday sale on their Moto X phone, discounting the non-contract phone by $150 starting at 8am CST. When morning came, their website did a complete melt-down. And while a site melt-down isn’t the same thing as a disputed hackathon, both represent a public facing crisis of confidence – raising the question: can you trust them?

When Salesforce faced this crisis, it took very little time to see a real response that basically promised an investigation. And that response didn’t come from an anonymous twitter account; it came directly from the VP of Developer Relations and the CEO.

Motorola’s response so far, to put it bluntly, has been awful. Even as hundreds or thousands of customers tried to purchase phones, there was virtually no communication other than to state the obvious – that the site was down. All day, potential customers asked on twitter, forums and Facebook for any information, and as they day went on, more and more of them announced their decision to switch to other phones, and promised never to buy from Motorola again. It was hours before there was even an apology. Only at the end of the day did Motorola announce that they will try again and increase the number of phones available, but even there – it meant nothing, as nobody knows how many phones they were going to make available in the first place.

I read the results of the Salesforce investigation. Personally, I accept it as accurate. This is partly because I know many of the people involved, but mostly because I believe in a variation of Occam’s razor – that one should never attribute to malice or conspiracy what can be explained by human error or exhaustion. The decision to award a second grand prize to the second place winner was an extraordinary step to avoid a potential injustice in a case where justice could not be determined.

What really struck me was the process. From the very beginning and throughout, Salesforce listened. They paid attention to the developer community and responded – and not just as a faceless corporation, but as individuals, and with reasonable transparency. Contrast this with Motorola, whose every action so far shows no concern for their customers at all – no understanding or acknowledgement of those who woke up early or spent hours trying to purchase a phone, believing that the site might be restored any minute. After, all, it’s tough to imagine or understand how a Google company can so completely fail with a web site over such a long period.

So I end this day with a better understanding of what it means to be a customer company. I think for Salesforce it is more than a cliché – their actions are giving the phrase meaning. Whereas Motorola, based on their responses today, seems to have no clue whatsoever.

Two Epic Failures – Sears Black-Friday and Motorola Cyber-Monday

Monday, December 2nd, 2013

In the past 48 hours I’ve witnessed two absolutely epic failures on the part of two different ecommerce sites. Both seemed like technology failures – except that they were not. They were failures in management.

The first was when a friend of mine ordered two new appliances from Sears.com, a refrigerator and a dishwasher. The initial order on the web site went fine, with next day delivery promised and scheduled. The first sign of trouble was when my friend got a call from the installers asking them to confirm that she is in Illinois for the dishwasher delivery. She is, in fact, in California, and it’s hard to imagine how this error occurred. As a result, she cancelled the dishwasher order.

She was at home when the delivery people for the refrigerator arrived. Unfortunately, as they drove up to the house they managed to hit a pole and take down some phone lines. Their reaction – to drive away, refusing to deliver the refrigerator and promising to reschedule for the next day. The next day, they didn’t arrive.

Upon calling Sears customer service, even the customer service agent was shocked by the notes on the account record, but still couldn’t promise timely delivery.

The end result – two cancelled orders. The business went to Home Depot. Worse, my friend, for whom Sears has always been the very first stop for appliance purchases, has sworn not only to never shop at Sears again, but is literally making friends promise to never shop at Sears again.

 

The second epic failure is great cyber-Monday Moto X fiasco. By all accounts, the Moto X phone is a great phone, just overpriced. So when Motorola announced a Cyber-Monday sale pricing it comparably to the Nexus 5, they got quite a bit of traffic. They must have lacked faith in their own phone because the site was clearly not able to handle the traffic – it effectively went down immediately at the time the promotion was expected to begin.

It stayed down for hours (and is still down as I write this), only briefly becoming available for developer edition phones that quickly sold out. During this time, Motorola’s only communication were two tweets and Facebook posts tell people what they already knew – that the site was down, with no additional information as to when it will be back up.

So what was appearing on the twitter feed? Numerous posts by frustrated potential customers, many who had spent hours waiting online to purchase a phone. Posts of those who decided give up and get a different phone. Several sponsored posts by LG for their LG2 phone. And to add insult to injury, posts by Motorola about tickets to a Wired party, that nobody seemed to care about, and many found offensive.

 

You may think these were both failures in technology, but they were not. They are failures in management.

Sears had numerous opportunities to make things right for my friend. They could have apologized and expedited delivery. They could have thrown in free delivery. They could have assigned someone to solve the problem and do whatever they could to ensure customer satisfaction. They did not, and lost a customer for life. Clearly their customer service people were not empowered or motivated to provide good customer service, and that comes from the top.

Motorola had a golden opportunity to build excitement for the Moto X. They could have solved the web site problem in minutes by simply promising to honor the pricing on all orders until midnight. That would have immediately reduced the load on their site, as the load would naturally distribute itself through the day. They could have communicated what they are doing and how they were planning to handle the situation. Instead, they focused on fixing their technology instead of helping and communicating with their customers.

Websites get overloaded. Technology has glitches – we all know that. The measure of a company is how they deal with these failures and deal with their customers. This is the true failure of both Sears and Motorola in these stories, and they are entirely failures in management and culture, not failures in technology.

Introduction to Leadership and Management for Developers

Friday, September 20th, 2013

When I studied computer science, it was about gaining “hard” skills. Learning the technology – how to solve tough technical problems. There was almost nothing relating to what we now call “soft skills” – getting along with others, working with a team, dealing with managers, or being a manager.

Based on what I’ve seen of new graduates, things haven’t improved much. Yet in the real world, those “soft skills” are what really make the difference between someone who is truly driving the agenda, and those who are just pounding out code on demand.

I’ve learned and forgotten and learned hard skills throughout my career. But I can tell you this – it’s the soft skills – the leadership skills – that have made all the difference.

The problem is, that most leadership training isn’t design for developers (you know, people who spend 90% of their time dealing with relentlessly logical machines as compared to somewhat less rational human beings). You might think that puts us at a disadvantage when it comes to learning leadership, but it doesn’t. It’s just that the way you might teach leadership to an English major, psychologist, or MBA doesn’t necessarily work that well for developers.

So here it is, a leadership training course designed specifically for software developers. I’ve never seen anything quite like it, and I’m very excited to be able to present in one place many of the ideas and techniques that I’ve been teaching for many years.

Check out “Introduction to Leadership and Management for Developers” on pluralsight.com

So you want to be an entrepreneur?

Monday, May 6th, 2013

I think every developer, at some point in their career, has that whisper of a dream – what if I was the person to start a company… to be my own boss? What if there was a way to get out of this cubicle and make some serious money?

And it is a dream in more ways than one. You see, common mythology suggests that new ventures are either wildly successful, or total failures – the dreams are either the best dreams you can imagine, or nightmares. But in reality, most dreams are just – dreams. Ordinary and usually pleasant stories we barely remember when we wake up.

And so it is with entrepreneurship – some are wildly successful, some total failures, but a great many are ordinary and pleasant outcomes – individuals who make very nice livings in small or medium size companies, with greater freedom and income than they would ever have at a real job.

I’ve spent almost my entire career at small companies and start-ups, so I suppose I’ve lived that dream in a sense, and have learned a great deal along the away. And you know how it is with me – when I learn something, I like to share it – usually in books, but increasingly now in courses on Pluralsight.

So I’m pleased to present my new course “So you want to be an entrepreneur?”

This course is the sequel to my Career and Survival Strategies for Software Developers course – a guide to those who are curious about the possibilities of taking that particular career path of entrepreneurship, or who are already on that path and are looking to fill in some gaps in knowledge and perhaps avoid a mistake or two along the way.