As a programmer I hate writing boilerplate code. You know- the “stuff” you have to get setup before you actually start solving the problem you set out to solve. There are a lot of code generators out that these days to address the boilerplate issue, but even then there are a lot of well-solved problems that we programmers have to solve over and over again.
I wrote some time ago about the problem of inventing all of your own in-house technology, and the take-away is that there are a lot of well-solved problems. Don’t write your own CMS system unless it offers something new and unique. Don’t invent a new programming or data standard. And please, for the love of all that is holy, don’t invent a new programming language.
But let me flip that over and talk about what sorts of problems are worth solving. If you work for a business, most of your problems are shared with other businesses, but a few are unique to just you. A lot of the time, that uniqueness comes down to what you know, how you know it, and how you can show it to your customers.
With that said, I think there are two really interesting and compelling problems in modern software development. They are both related to what you know and how you communicate it.
Problem #1: Big Data
The problem is that no one can really define “big data.” Job descriptions for data positions are all over the board, there’s not a lot of guided coursework or certifications, and what is out there right now won’t make any sense in a year. It’s a very dynamic field, which is exciting for some, but terrifying for budget-conscious business managers.
The roots of the problem go back to where big data comes from: data science. Data science is designed to answer questions and develop knowledge, while big data’s purpose is to monetize that knowledge. A lot of companies that get big data right understand that data science must come first before monetization. Science is messy, slow, and doesn’t always yield what you’re looking for. It takes smart people, resources, and engaged leadership. Which is to say, it’s a big investment.
Big investment or not, the more you know, and the more you can turn that knowledge into valuable action, the better you’ll do.
Problem #2: Visualization
As big data expands from a fringe technology to simply being how business is done, we in the tech field need to get better as displaying all that data in a meaningful way. Gone are the days of throwing a list into MS Excel to make a pie chart. Data from your web analytics, market research, and CRM should play well on-screen. Chances are pretty good though that they don’t.
Developers are opinionated folks. An IOS developer will have a radically different set of tools and concepts than an Android developer, and those are different still from the web. And every one of them is wrong, because the tools will change a lot in the next few years. So instead of focusing on visualization technology, focus on how that visualization will impact decisions, and how it can drive business.
That my friends, is a tall order.