What’s the Developer Experience?

What’s the Developer Experience?

This is an excerpt from Enterprise Sofware Confidential, my white paper on buying enterprise software without making a huge mistake. 

In this article, you will learn:

  • solid business reasons to care about developer happiness – even when they’re not your employees
  • why so many enterprise vendors produce piles of garbage that still sell

When making a major software purchase, you have a lot of questions. But there’s one that nobody asks, yet is so critical: what’s the developer experience like?

As you read earlier, enterprise software is all about configuration and customization. Your company has proprietary processes to which the software must conform. Or it should. Granted, many times the software is in line with industry best practices and you are not. Changing your processes to match the software is a win/win. But if you’ve invested time and money to create competitive advantages, you don’t throw them away to save engineering dollars.

So no matter the core feature set, there will be a bunch of custom programming to get this thing off the ground. Yet nobody asks if it will be pleasant for the developers. Yes, pleasant! Maybe you don’t care if the programmers like their job. Maybe you don’t like your job. Misery loves company, right?

Kidding! Of course, you care about the happiness of your employees. But in most cases, these are not your employees. They’re at the system integrator or vendor, and you’re paying them a lot to power through it without complaining.

In reality, there are solid business reasons to care about developer happiness, even if they’re not “your” developers. (Note: I’m going to use the word integrator to denote anyone customizing your software. Short for system integrator, but often referred to as professional services or solutions consultants in the biz.)

Golden Handcuffs
Golden handcuffs are what we call the high salaries paid to good engineers so they don’t leave because the work sucks and they are not learning anything new. This cost is passed on to you, of course. And sooner or later, they are going to leave.  Maybe in the middle of your project. Probably to a better platform in the same industry. A lateral move pay-wise, but a raise in enjoyment.

Ill Communication
The experience could be bad because the vendor doesn’t support system integrators well. Poor documentation, no access to the bug tracker, and firewalls between the integrators and the product team. When something goes wrong, it’s on the integrator to prove it to the product team, which is a long and painful process when you can’t talk to them directly. Many eye-rolling questions. (“Have you tried turning it on and off again?”) And that time is billed to you!

A Pile of Garbage
Often times, the reason it’s a bad developer experience is because it’s bad software. It didn’t start that way (I assume). The 1.0 version was pretty good, used the latest and greatest frameworks and incorporated smart design decisions.

Then the sales division took over. If the vendor has to spend a lot on sales, and that team is credited with driving revenue, they amass power. When that mindset grows to the point where engineering can’t make a stand for quality, you’re on a path to a pile of garbage.

Sales will push for new features over fixing bugs. Marketing will mandate deadlines to meet their initiatives (trade shows, commercials, etc.), rather than how long it takes to do it right.

Have you heard of the term technical debt? That’s what you get when you rush developers instead of giving them time to do it right. Quick and dirty is expected every once in a while, but they need time to clean up the mess. In sales-driven organizations, that rarely happens.

Unfortunately, piles of garbage can have pretty long shelf lives. Prohibitive sales costs keep out challengers, and customers rely too much on social proof. Waaay too much.

From a technical perspective, however, I have not seen a product recover from pile-of-garbage status.1 They become notorious among engineers. The problem you’ll have is that engineers aren’t terribly confrontational. Notice that I have not called out any bad actors. Engineers love the truth and want to be honest, but they’re unlikely to openly bash products, especially the ones paying their salary. The good ones simply find better work.

What to do?
I started writing a comprehensive list of questions you want to ask when choosing software. But I don’t want to mislead you into thinking a list of questions off the internet prepares you for shelling out megabucks on software, with answers from dubious sources. If you have a software development background, and bought that type of software before, and oversaw its implementation and use, you’re in good shape. Otherwise, hire a consultant. Doesn’t have to be me, just someone with that experience. Then get them

Then get them to act like a seedy private eye. Wine and dine developers to get them to open up about how much they enjoy the platform. You will be shocked at how many vendors you eliminate this way.

You can comment on Hacker News.

  1. If you have, I’d love to hear about it. []
Enterprise Software Explained

Enterprise Software Explained

I recently wrote a hit article on buying enterprise software, and I was working on the followup when I realized that you, the manager tasked with choosing it, could benefit from an overview from an insider. I’ll explain how this software is packaged and delivered so you can discuss it with more confidence.

Most importantly, this will provide critical context and understanding to my final article, which will arm you with questions and talking points, both internal and external. That’s the one that will prevent you from going all Fahrenheit 451 on your company’s cash pile.

If you think you know all this stuff, please take a quick read and let me know if I’ve left anything out. Thanks!

What the heck is it?

I was a little surprised  the first time an exec asked me, “What exactly is ‘enterprise’ software?” But it’s a reasonable question. In my view, it is software designed to handle the needs of the world’s largest and most complex businesses. This might include:

  • thousands of transactions per second (Black Friday, returns after Christmas)
  • large or complex data1
  • highly complex business logic
  • integration (data sharing and process triggers) with similarly complex systems

How do you write software that can do all this? Well, you don’t create a software package, like Word or Excel. You create a software platform. Something that can be molded and extended to meet your business needs within that specific domain (ecommerce, ERP, CRM, marketing automation, etc.).

SaaS or On Premise?

SaaS
Software as a Service includes vendors like Salesforce, Shopify, Mailchimp, Google Analytics, etc. They host it, and everyone is on the same system. It’s sometimes called “cloud based” because marketing thinks that’s cool. There might be different tiers of prices/features, and they will likely do something extraordinary for you if you throw enough money at them.

On Premise
The name implies it’s installed on your servers, but it doesn’t have to be. Could be hosted by the vendor, integrator, or anywhere you like. The key is that each installation is a one-off that requires separate installation and maintenance. Almost all on premise enterprise software includes the source code for you to customize, so it can also be a unique snowflake (for better or worse).

OOTB, Configuration, and Customization

OOTB is out of the box. It’s the features you get right after installation and minimal configuration. Like user management, and, um… well probably something else, you did just pay 6 figures for this.

Configuration requires no coding, just enabling features and modifying settings through the user interface. A product expert or business analyst (typically referred to as an administrator/admin in this case) can handle this, no need for a coder.

Note: Salesforce enables a ton of functionality via configuration, to the point where a Salesforce certified “developer” doesn’t do any actual software development (coding). Of course, there is coding you can do for Salesforce (Apex), but why not use confusing vernacular when you can? Welcome to enterprise software.

Customization requires coding. It’s often the bulk of the cost of the software. I frequently see professional services (what they call this work, along with the installation and configuration) running 1x-3x the license cost, which is often 6 figures.

Good enterprise software will have clear extension points (APIs) for customization. Most SaaS software has a web service API for integration. Web services enable your integration code to run anywhere, written in any language on any platform. You have a .NET coder, but the enterprise platform is Java/Linux, or some mystery? No problem. Through the API, you can download your orders, upload changes to your your customer database, destroy valuable data, etc.

A couple SaaS platforms, like Salesforce and Demandware, have a proprietary programming language, in addition to their web service. On premise software might have a web service interface, and/or a language API like Java or C#.

None of that is rocket surgery, but takes time to get the requirements right and cover all the edge cases. The problem comes when a core feature is implemented incorrectly for your business and there’s no way to customize it through the API. You have to change the core code (and maybe the database) to meet your requirements. I often suggest changing your process to match the software, if this is possible. But maybe you’re doing it differently because this is a competitive advantage. Or you’ve already changed your process to accommodate another, more expensive piece of software. Implementing this is possible with on-premise software that includes the source code.

Basic Architecture

It’s important to understand, at the 30K ft. level at least, the different parts of the software.

  • Core code: The creamy center. It has most of the functionality and underlying services. It includes the APIs to integrate with other software (say, ecommerce to ERP or CRM) and add/modify features (customization).
  • Admin interface: The interface to configure the software.
  • User interface: What your customers or employees see.
  • External integration code: This uses the web service API, FTP, or other external integration method. This code is stored and run completely separately.
  • Custom code: What you write to add/modify features. It’s typically stored somewhere it uses or overrides – not overwrites – the existing code. Typically. It could include…
    • modifying the user interfaces mentioned (changing the templates)
    • code using the Core APIs to add features and integrate with other software
    • changing (overwriting) the core code, if it’s really needed to support the business

As you’ll see in a second, modifying the core code is a lot like going back in time. You fix one thing, like, you didn’t total your classic car. But you somehow wiped out all the pandas. And we’re at war with Eastasia. (Luckily, we’ve always been at war with Eastasia.)

Upgrades

Upgrades can be very tricky depending on the platform and level of customization. With most SaaS, upgrades should be automatic and you get all the admin UI features and core fixes and improvements. The rest will require enabling through configuration, modifying the user interface, or adding code to access new features in the API. Code using old APIs should still work if they do it right.

With on premise, some of that will be the same. A new version means a new core. You drop it in, run regression tests, and you should get the fixes and performance improvements to the core code, plus any new admin screens.

In both cases, you may have modified the UI. That means your code is overriding theirs, so any features in the UI won’t be available until you add them to your custom templates. With on premise, you may have modified the admin screens as well, so same deal.

Finally, you may have modified the core code.  This means you have to merge your changes with the new core. Which means understanding all the new code, but even the old code may have been changed significantly. Improving existing code is called refactoring and is an industry best practice. Lucky for you, such things are rare in enterprise software. No matter, it’s still a pain, and error prone. When finished, run a smoke test: are there still pandas?

In all cases, upgrades will be vastly aided by running your regression test suite. These are all the end to end tests created by your QA team that prove everything is working as it should, and they should be automated. When a project is running late, QA is the first thing to go. Why not assume we got it right the first time? When it’s time to upgrade, if you scrapped these tests, you’re going to have to factor them into the cost of the upgrade, along with everything else. Also, scrapping these tests means you have bugs you don’t know about, which can be really embarrassing for you.

Or you can continue to ignore proper QA. Just have your interns and office admins run through some basic tasks to see if anything broke. If so, blame it on the vendor. The vendor will never admit it’s their fault, but that’s OK until your CEO wants to be on your conference call.

Welcome to enterprise software.

  1. I find most businesses don’t have true, valuable “big data” despite the hype, but it can be pretty scattered and complex. []
Ask a Repair Shop

Ask a Repair Shop

This is the story of how you’re buying your enterprise software the wrong way. Probably your appliances, too.

This is an excerpt from my guide, “Enterprise Software Confidential.”

This post is also available in Chinese thanks to Xu Zhi.

Some years ago, I had a broken GE washer. Pretty sure I knew the culprit, but if I was wrong I’d waste a bunch of money on a part I couldn’t return. So I called a local repair shop who serviced a number of brands, including mine. “Oh, we don’t repair GE anymore. They’re pretty much throwaways now. When they break, you just buy a new one.”

This shocked me, beyond learning of GE’s quality nosedive.1 If their products frequently broke, wouldn’t that mean a steady stream of work? Then I realized a flaw in human reasoning. The first time it breaks, you blame the manufacturer. The second time, and every time after that, you blame the repair shop. For a repair shop, servicing appliances from a bad vendor can damage your reputation. Upon realizing this, I called him right back. “If GE is bad, who do you recommend?” I got a full education on washers, including a lot of industry dirty laundry.

Since then, every time I make an appliance purchase – vacuum cleaner, dishwasher, car – I go to a repair shop. They’re always excited to talk to someone who will listen. They may even have a used model that will last you for years.  (more…)

  1. Could be better now, but I wouldn’t know. []

Officially an Athlete

Big news everyone! I’m officially an athlete. OK, I see confusion on some of your faces, so allow me to explain.

I was in a department store, looking to purchase some trousers. I saw some from the Dockers line of the Levi Strauss company, in a style branded “Athletic,” and I ignored them at first. However, when I couldn’t find “relaxed fit” I returned to them. Turns out, athletic trousers are just the type I need.

First, they sit below the waist. Athletes such as myself store a lot of energy in the waist area, and we need pants that conform to our physique, which God has designed for spectacular performance.

Second, it offers extra room in the thighs and “seat.” As you know if we’ve met, I store a lot of energy in those areas as well. It’s important to have deep energy reserves for whenever I do something athletic, like get up from a chair. But also, and this is just as important, sitting back down in that chair. This is what’s known as “high intensity interval training,” and I’m able to endure very long intervals.

The legs are tapered. Partly because if they weren’t they’d use 50% more cotton. But this also cuts down on wind resistance if I need to move, cheetah-like, toward a buffet table. And let’s not forget, we athletes are style icons, and of course turn to the Dockers line to stay on the cutting edge of fashion.

Finally, the material stretches. An absolute must for athletic activities that cause our haunches to flex and bulge. Examples include getting out of a car, or mercurial employment of the 5-second rule.

On behalf of all athletes: thank you, Levi Strauss & Co. Your acumen in fashionable athletic-wear is unrivaled.

An Education on Education

An Education on Education

I had a very expensive education. But it was at a good school (RPI),1 in the right major at the right time.2 So upon graduation, I was employed, well-paid, and ready to avoid snow for the rest of my life.

However, many students have paid just as much or more, but they ended up with massive debt and terrible prospects. Here’s how you can have a great education and a great job, or at least avoid crippling debt. Fair warning: it also explains why we’ll never see free higher education in the US.

Forgive and Forget
Student loans are common and literally unforgivable, meaning bankruptcy doesn’t erase them. Why? Well, if you stop paying your mortgage, they take your house. Your car loan? They take your car. But there’s no lien on your education, and no way to repossess it. It’s yours for life, or at least until you forget it. In a dystopian system, they could make you forget it, but they still wouldn’t have it back. That’s why you always owe what you borrowed for education.

A forgiven student loan is essentially a scholarship or grant. Those are great, but have completely different qualification criteria. You typically have to have good grades and beat out other students. I got some grants and scholarships due to academic performance, but it only covered half my tuition. Those who performed better than I, or had greater financial need, got full rides. Makes sense!

Less Than the Paper It’s Printed On
Some think all higher education should be free, but that would be insane because of value. By value, I mean your earning potential after graduation. Some degrees are worthless. Actually, when you factor in opportunity cost – what you could have gained with the same time, effort, and money – they have negative value. This describes many degrees at for-profit universities. Some say those universities tricked people into going there, and I’m sure some did. The government is definitely doing a lousy job of protecting students there. Maybe forgiveness is reasonable in those extreme situations (fraud), but I’d rather see a class action or government lawsuit for fraud repay students, instead of our tax dollars.

Let’s say you’re going to a good school. Your major and the job market still have a huge impact on degree value, and it changes over time. Switch to a Democrat in the White House, defense spending goes down, as does the value of an aerospace engineering degree. Stringent (some would say overbearing) regulation on nuclear power plants has had the same effect on nuclear engineers. These unpredictable events can devalue a degree significantly. Disruptive technology can have a similar effect.

But even with good timing, is the right school and major enough? No, your degree matters a great deal. A friend who majored in bio had to get a masters degree just to be a lab tech or teach high school.3 Just about every scientific field other than computer science requires you to get a Ph.D. to have any career prospects. Many fields of engineering now expect a MS. It blows me away how many students enter college without realizing that.

Of course, you can still have the right major and degree at a reputable school, but it’s the wrong school! Most American universities are specialized in one field or another. Combined with reputation, it has a big impact on value. For instance, MIT is one of the best engineering schools in the world, if not the best. STEM4 degrees from there are quite valuable.

But did you know that MIT offers majors in all sorts of liberal arts fields, such as languages, cultures, and literature/writing? Given that MIT is also one of the most expensive schools in the world, do you think this is a wise investment? What is the expected return on a writing degree from here vs. NYU or the University of Iowa? (Hint: they are the MIT of creative writing.)

The Tuition is Too Damn High
So why don’t universities charge different prices for different degrees, when their value differs so wildly, and there’s clear data to prove it? Because the cost to educate them is roughly the same. You’ve surely heard about the soaring cost of education. Well, investigative reports show it’s not due to faculty salaries. Dependence on adjunct professors has skyrocketed, keeping educator payroll (vs. administrative) pretty stable.

Adjuncts are the bottom rung of professorship. They are part-time teaching jobs that not only have low wages, but educators are paid only for the hours spent in the classroom, not preparing lesson plans or grading papers. Many work multiple jobs to get by and are on welfare and food stamps.

One theory behind the rise of adjuncts is a flooded labor market. Lately, more college students are unsure of what to do upon graduation. They don’t like their options, especially if they have a liberal arts degree, so they stay in school. They get an MFA or PhD, take on more debt. Now they’re qualified for a job that has a flooded market and the worst prospects for tenure we’ve ever seen.5

So if the actual teaching costs aren’t to blame, what is? Buildings. Turns out, your obscene tuition – and alumni gifts – go to new buildings and campus beautification/maintenance. Why? Because prospective students rank campus beauty and amenities very highly when choosing a school.

My friend’s daughter is very smart and sensible. They toured several schools, but when they got to the Ivy League schools, she was smitten. “It looks like Hogwarts!” She’s right, and you know what? I did the same thing. I toured some schools with computer labs that were just a bunch of Macs and PCs scattered around a room. Then I visited RPI and saw rows and rows of high-end workstations housed here:

VCC

A big, beautiful chapel of stone and stained glass. It was like a sign from God.

Teenagers may be very smart and sensible (or not), but we’re asking them to make major life decisions – high risk investments – without the benefit of wisdom and hindsight. They are emotional thinkers, and architecture makes us emotional. So they weigh it much higher than they should, and colleges are using it to win them over.

A friend pointed out that administrative costs are also rising. That’s true, but I’ve read that most are related to buildings – it takes a lot of people to plan, build, maintain, and staff a $100M building. You know, like the arts building at my alma mater, an engineering school. Of course, it went way over budget.

Indiscriminately handing out loans makes it easy for schools to raise tuition. Since Reagan, politicians have been buying votes with easy money for houses, elevating homeownership to a basic human right, and causing the housing bubble and economic collapse of 2008. The same kind of thinking, applied to student loans, has created a tuition bubble. Unless we put that in check, tuition will continue to rise and Americans will be saddled with ever more debt.

Solutions

The first is mandatory mentoring. Before teens pick a school, force them to interact with professionals who have the job they think they want.6 Tell them which schools in their field are most respected, and what degrees are required. In other words, tell them up front what the minimum requirements are. We assume they know this, but they don’t, and neither do their parents. That wastes tons of time and money on the wrong school, major, degree, or all three.

Next, make schools collect data on employment rates and salaries by major. That’s the basic info a student needs to calculate his/her return on investment (ROI) for their chosen degree program. It should be part of the accreditation process and used for student loan qualification. People hate hearing this, but for the foreseeable future, computer science majors at top engineering schools should qualify for much bigger student loans than art history majors at the same school. Or, for that matter, CS majors at Bojangles College of Book Learnin’ and Taxidermy.

That’s smart investing. You don’t reward schools for skyrocketing tuition by having taxpayers give everyone a free ride. That’s part of what’s caused this mess. Schools will erect gilded palaces with 24/7 concierges and we’ll foot the bill.

And those bills will only get bigger. People point to Scandinavian countries as a working model for free education, but ask someone from there how many “permanent students” they know. People studying into their 30s, getting multiple degrees, happily living off the stipend with no intention to graduate. Then consider that the US population is over 12 times larger than all of Scandinavia combined. Heck, California alone is 40% bigger. Imagine the tax burden this would cause. Actually, you don’t have to, just ask someone from Scandinavia what their tax rate is.

At the same time, a top student from a poor family should never think they can’t afford Harvard or MIT. It should be guaranteed!7 That’s how we raise the impoverished. Reward both students and universities who perform well.

Finally, is there an alternative to college? Mike Rowe has been pointing out for years that our society suffers from a false belief that colleges are the only good answer to employment, and learning a trade is a recipe for hard times. In reality, compared to many college graduates, welders and machinists make way better money, have better job security, and they spent less time and money on their education.

I know it’s not easy work, but it could be a lucrative path to artist or author. I’m willing to bet that many tradesmen have great stories. I know veterans do;  just look at Hemingway. Pulitzer Prize? Check. Nobel Prize? Check. College degree? Nope.

The Future

It’s fun to think about the future and what might disrupt education. The first, which is already happening, is distance learning and MOOCs (massive open online courses). A great example is the Online Master of Computer Science offered by Georgia Tech. For at least 25 years, Georgia Tech has been considered a top 10 engineering school and by all accounts their distance learning program is legit. It’s just as rigorous as the one on campus, but cheaper and more convenient.

Given all the cheap adjuncts and grad students available to act as teaching assistants, you can have the star professors giving the lectures and scale this out to many students across the world.

You can also have educational tourism, in the same way you have medical tourism. That could play out in a few ways. First, note that undergraduate education, in STEM fields at least, is largely homogeneous. It’s there to prepare you for a graduate degree, where the real differentiation happens.

Therefore, a school abroad could gain a good reputation by licensing a curriculum from a top school. MIT Open Courseware has most of their material online for anyone to learn from. If a school could also license the assignments, tests, and grading policy, it would gain instant credibility.8

There has already been press about Americans attending German colleges for “free.” I can even see the same for us, brain draining the rest of the world because we don’t have enough students who get can into, say, top medical schools. Seems like a great alternative to a doctor shortage. I’m all for attracting the world’s best to America and fast-tracking their citizenship and contribution to society (including taxes).

 

 

  1. Less famous for being the oldest engineering school in the country than for its 4:1 gender ratio. []
  2. Computer science during the dot com boom. []
  3. Some states, including NY, require both a MS degree and a teaching credential to teach science. Despite the fact that a semester of college science teaches you more than a year of HS science. []
  4. Science, Technology, Engineering, and Math []
  5. But even before this, there was a sign: elbow patches. I always thought they were cool, a symbol of knowledge and authority. Then a friend explained that they weren’t a fashion statement but a sign of poverty. Professors were required to wear suits and had their elbows on desks while writing all day. They wore out the fabric, but couldn’t afford to buy new suits, so they sewed leather patches on them to keep it from happening again. This is why I won’t buy a new jacket with elbow patches, just as I don’t buy jeans with holes in them. It’s poverty as a fashion statement. []
  6. Yes, force, because they will probably be shy and insecure about it, and not realize adults get a big ego boost just from being consulted. Heck, I have to hammer this home to young professionals who already have a job. []
  7. I know Ivy Leagues are making sure that happens, but only very recently, and only because they’ve been shamed by alumni donors. []
  8. I have several other ideas along those lines, especially for computer science. If you’re an international school who wants input from an authority on the tech hiring process, reach out. []