Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Ted Neward Coder Interview - Developer Responsibility

0.00/5 (No votes)
27 Oct 2015 1  
Welcome to our continuing series of CodeProject interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Ted Neward, a speaker, author, training, and general authority on .NET and Java technologies

The developer is a very important and growing influencer in business. Where do you see that level of influence going and what is its significance?

TN: Often times, the CTO has a vision that individual developers do not. The CTO is looking at the bigger picture and the developer is focusing on his/her portion of the picture. Which, quite frankly, is what we pay them to do.

So in some respects, that added responsibility comes at a price. I get a little concerned about the consequences of that added responsibility. But regardless of whether or not we think this is a good idea, it is happening. I don’t want to see developers given too much influence, or too much control to open the conversation because I think that they could end up making a whole slew of mistakes that will ultimately hurt us all.

You might argue that some of that has already happened. Just this week we are hearing reports that a major automobile company is being investigated for being guilty of putting code into software that masks emissions results. It’s a huge scandal and they are looking to punish them to the tune of billions of dollars. They did it with software. It has nothing to do with the physical car itself.

The developer community should be talking about our level of culpability. Should a software developer have said, "This is wrong; we shouldn’t be doing this."? There are a lot of people I know who say that the software engineer who wrote that is guilty of malfeasance. At the same time, that engineer had a responsibility to do what his client/employer asked him/her to do. It’s a really an interesting gut check.

As software takes a greater central place in the world, we who create – like it or not – may be taking a greater responsibility. We have to start asking ourselves the uncomfortable questions.

With the rise of their influence, with the rise of mobility, and millennials, and the consumerization of apps, developers have become cool. If you’re a developer, you’re cool. What are your thoughts on the changing view and the status of the developers in society now?

TN: It’s exciting and it’s dangerous. It’s been happening for a while. I’m old enough to remember when being a computer geek meant you got beat up on the playground and geeks were clearly not cool. One of the things that I see happening, unfortunately, is that in many cases this new found coolness is creating a degree of hubris (I almost want to say arrogance) on the part of the technology community that I think we’re going to regret. The coolness often brings a position of power, influence, and respect. That said, I think we are starting to tip down the other side where we are assuming our technology skills can solve all problems. I think we are going to cause all kinds of problems by doing so.

"With great power comes great responsibility," right? That word, "responsibility" really needs to be laid out as well as the realization that the things that we do will have a ripple effect. The law of unintended consequences is a real nasty bugger and it will catch up.

Open source technology has really begun to shape the future. What is the value of open source and as it continues to grow and evolve where do you see it taking us next?

It's interesting because, being the age range that I am, I'm old enough to have watched open source evolve.

Developers ultimately like the freedom that open source grants them. The freedom to fix patches and bugs without having to wait for the company to respond. The freedom of control, the freedom from fear, and the freedom of speech (as in expressing themselves with code).

But there's another aspect of open source which I think cannot be understated. Open source is often equated with "free" (as in cheap). This is something that a lot of companies tapped into very very quickly. Not the IBMs or Microsofts of the world, but the people who are consuming the stuff that IBM and Microsoft are trying to sell.

And as a result, Microsoft is struggling right now to try to figure out what to do with Windows. Apple already figured it out. Apple said we're a hardware company. We sell hardware; the operating system is just sort of a gateway drug. So we'll give you free operating system upgrade. It's hard to argue with free.

At the same time, one of the things that you will find fairly quickly when you start talking to developers is they're very quick to support: "Open source software should be free except for the software that I write." That takes on a very different complexity and that's part of the thing that all of the major vendors are wrestling with right now is, how much of this can we effectively make free?

A lot of companies are going after the: "Software is open source, but services are what we sell," or, "part of my code is free, but then other parts of it are something you pay for" – the so-called freemium model.

I think part of the open source discussion becomes one of are we talking about software from a legal and intellectual property perspective, or are we talking about it from a budgetary perspective? How exactly are we are we approaching this conversation of open source?

Talk to the guys from Electronic Freedom Foundation and they're very much about "software should all be free and all of it should be open source." Anybody should be able to go and look at how your software works. There are a lot of companies out there who are not ready to embrace that aspect of open source. They love the fact that Linux is open source; they love the fact that TomCat is open source; they love the fact that Microsoft is starting to open source a lot their tools and technology. But asking banks, pharmaceutical companies, etc. to open source their software? That's a nonstarter. That is absolutely a nonstarter. They won’t even talk to you at that point.

And that's where this is really playing itself out is in the discussions around intellectual property. Who owns what’s in your head, or what's being expressed out of your figures on the keyboard onto the company's magnetic storage devices. Who owns that? How long do they own it? What does that ownership constitute? There are a lot of really, really interesting psychological, sociological, and philosophical problems that open source creates. That Pandora's Box is now wide open and we don't quite know what to do with it. We're sort of stumbling our way through it one issue at a time.

Let’s talk a little about this thing called platform-as-a-service. There are a number of flavors out there, but what do you think of platform-as-a-service as an offering set? What would you look for in the viability of that in the marketplace? What are the things that things that make platform-as-a-service worthy of your attention.

Well to sum it up, I’m actually going to borrow from Polish - "Not my circus, not my monkeys." It’s a great phrase. It is basically what a lot of the cloud, and specifically platform-as-a-service, enables the developer to do. To say, "Not my circus, not my monkeys."

Historically, if I sat down and built an application or built a web site or web service, there were a lot of those operational issues that I, as the developer, had to take into account. For starters I had to make sure I was developing it on a platform or operating system that the I.T. guys could support. This is one of the problems that Ruby faced in the very early days. A lot of these companies were running on Windows servers and the idea of Ruby on a LAMP-style stack was kind of a non-starter.

And so when we start talking about a platform-as-a-service, what that enables me (as the developer) to do is basically say somebody else is going to take care of all of that stuff below the application layer. In other words I need to look at everything below the code that I write and say, "Not my circus; not my monkeys." That is an incredibly enabling thing to the developer community.

Now that you have this great platform-as-a-service (and don’t have to focus on anything but the application layer) do you think it’s more important to get your app first to market or to ensure it is of the highest quality?

Honestly this is one of those cases where there is no clear answer as far as I can tell.

While you're working on your product, your company's competitors are working on similar kinds of things. The first one in the market generally has that first mover advantage. It’s not always a given that you're going to win the market but you definitely get the lion's share of the face time in terms of column inches, the marketing, etc. The second mover shares a little of the benefits, but small by comparison to the first mover - small advantage. By the time you're the third or fourth mover in the market you kind of become an "also ran" and so your business has a very, very strongly vested interest in getting that stuff out the door.

If it were easy to say always go with one over the other, you know everybody would be doing it, and the first person to do it differently would likely come out ahead.

I'll give you a perfect example. When Apple released the iPod there were already music players out there in the industry and everybody figured that this was just doomed. We thought the iPod would fail and obviously history has shown us that spending a certain amount of time around user experience and providing a very simple UI around that can really make the difference. That said, there are also a lot of examples of people that came out with some beautifully crafted user experiences that have since died. So clearly, quality will win out every time either way. It’s never a one size fits all answer, unfortunately. I wish it were.

Which particular platforms have you been exploring or and have found useful?

Well the short version is all of them. I've been experimenting recently with Bluemix, which is IBM’s platform-as-a-service. It's been a fun platform to play with. Again, from a developers perspective it’s a "not my circus; not my monkeys" kind of a thing. That's one of the things that I like about working with an established platform like Bluemix. IBM has a whole bunch of plugins. I have a friend who is a deep Cloud Foundry advocate. He actually works for Pivotal and I get Cloud Foundry from him. Having played with it, it is actually a very easy and reasonable way to get started. The nice thing is that a lot of material that's available out there for Cloud Foundry platforms works on the Bluemix stack as much as it does anywhere else.

There’s that old statement from the ‘70s: "Nobody ever got fired for buying IBM, right?" There's a certain amount of tongue-in-cheek to that, but there's also an acknowledgement of the fact that this company has been around longer than many of the people writing code for it have been alive. And that's a degree of reliability that a lot of companies just cannot claim. That's important. That's something that a lot of developers don't necessarily put importance on until they reach a point of having to stand in front of the C.E.O. and say, "yes I'm willing to bet my career on the fact that this cloud provider is going to be around X number of years from now."

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here