The Future of Development (Round 23,895)
I'm going to preface this post with this disclaimer: it is unedited, and raw, I ramble a bit, go on tangents, and well, it is my thoughts about the direction of development...
There are so many posts that talk about the future of software development or the future of the web. I realized that in 1995 the future of the web was a bit different from the future of it today. However, the process debates are still the same. It is laughable the debates I often hear regarding the next thing... currently, the last big push was JavaScript frameworks, and now with the latest buzzword being about AI and ML, the next big thing is machines writing code. Congrats to google for accomplishing the initial phase of that (see here)
The problem is still the same, what are we actually trying to fix with this technology and does even need to be fixed?
I hear people through the phrase machine learning around all the time and in their minds they think you are adding a brain to a computer so it can figure things out. That is not how it works people. Computers process large amounts of data way faster than any normal human can read. There is discussion about how IBM Watson is helping curing cancer. Let's translate that to reality, it is processing large amounts of near real-time data to come up with alternate solutions based on the latest data available. It is not performing surgery (yet) and with crispr available now, we may not need actual surgery, but just dna modifications. So here is why machine learning is becoming more important.
- We have way more data available today than we did 5 years ago
- We have processors that are much faster than they were 5 years ago
- We have tools that help process that data to a usable format
That's the main reasons. More data, faster processors, and better tools. The data points we are getting because of IoT devices is getting crazier. They have sensors that can improve your irrigation system dynamically based on weather predictions. It exists and is happening today.
The future of software development is simple: more data, more accurate decision trees, faster delivery of information. That's pretty much it.
Now, the more important part is how is that future going to affect humans. Are we on the cusp of SkyNet? Maybe? But here is what Satya Nadella , CEO of Microsoft, is pushing now. It is empathy. Empathy in regards to dealing with others and shifting your perspective. You have your own perspective based on your experiences but that may lead you to a decision that someone else may not agree with, based on their experience.
With all of this information at our fingertips, we really should not complain about lack of knowledge. The problem I see is the pursuit of knowledge. I believe empathy is only one part of the puzzle for the future of development. I think we need to also encourage a strong work ethic for developers to produce better code and solve harder problems in the simplest way.
Development has some simple things that people tend to over complicate because it make them feel superior or valuable because of the complexity. I don't think that needs to be the case. We can create simple solutions, and it is often the simple solution, that is the most difficult to come up with.
Steve Jobs said "I'm actually as proud of the things we haven't done as the things I have done. Innovation is saying no to 1,000 things."
I think so many of us miss that. We try to do more and more and add features, and add slides to presentations rather than reduce, eliminate...
The future of development needs to take into account empathy, a simple solution first, and stability.
After decades of experience, I realize I take so much for granted regarding development. I consider scale, network traffic, security, deployment, architecture, data structures, base functionality, and user experience as just a few things that I consider on a new project.
So many people either take devops work for granted, or actually don't even consider it at all. Then there is the actual future of software development regarding the people who are writing the code... are they happy doing what they do, and if so, why? and how do we spread that joy? What makes them happy? What is going on with them?
I was walking to work today and thought, what if we started every conversation with a new person with this: "What happened to you?" Not, "How are you?" but what happened to you... why? because either they will immediately get defensive and hopefully we can convince them we are coming from a place of love and truly want to know what happened, good and bad to them or they will simply open up and start dumping their story.
That is how we can retain developers, by listening. By making them involved on an emotional level with each other. That is how software companies stop worrying about the bottom line and start worrying about their employees. We listen, we help each other grow, we improve our own selves by helping others and teaching. It is not always about the software, that is often the easy part. It is identifying what the problem is we are trying to solve and how a human approach can make someone's life better, whether it be a better vaccine, a healthier meal, or a better use of time to interact with those around us.
I know that this is about the future of development, but it needs to be about the development of people and not just the development of software. Imagine if empathy was the default solution to a problem, and then intelligence is involved on top of that, and then technology used with it. What kind of amazing world could we create when we lead with empathy, humility, and a true intention of helping others. We market and advertise to move money from one account to another. We should market to connect with respect... Focus on that first, and everything else will solve itself. I know only a bit of the change I am capable of, but if there is a group all headed in the same direction, it becomes a force of joy.
Development is not about the software, it is about the people who are using it and that are creating it. Develop with Joy and Build Something Amazing.