I was thinking about what the next generation of technologist is going to look like. Not in terms of physical attributes, but in terms of behavior and thought. How are they going to act in a way that differentiates them from the herd. What truly makes them different in a world where education and intelligence is not as hard to come by?
To me what makes the Larry Ellison (Oracle) and Steve Jobs (Apple) different from the average CEO is a vision of the future. It seems that today trying to find someone who is Creative and Intelligent is an easy task. Trying to find someone Creative, Intelligent and Passionate is a little harder but not impossible. When you add Vision to the mix of personality traits is when the differentiation happens.
Vision of the future is something that man kind has always been after. There have been mystics, shaman and many figures across time and culture that have claimed to see the future. While I am a skeptic of humans ability to foresee the future, I do think that there are people who’s brains work in a different manor. I believe that there are people who have an understanding and intuition of behavior that can be pretty accurate.
I have found through out my career that there are a lot of Passionate, Creative and Intelligent people who cannot seem to figure out where to apply themselves. They need a leader with the plan that they are unable to create for themselves. Once a leader comes a long with a plan for the the Passionate, Creative, and Intelligent people find a successful way to apply themselves. When a leader comes along and can say, “we are at point A, we need to go to point B”, navigating to point B is an easier task. Its finding a good B that takes the vision.
I feel in the future that technology companies will continually need to hire Visionary leaders in their upper ranks to compete. They will need a plan for the future that is crafted by someone who has an idea of how that future might shape up. Companies with out a vision of the future will flounder because they won’t be able to produce parts of the foundation that society will need.
My advice is look for the people with the intuitive compass who have an understanding and ability to articulate their vision of the future.
All organizations big and small will all come to a point in which a very complex problem will arise. These problems can range from logistical challenges to operational challenges to technological challenges. There hasn’t been one company that I have worked for that did not face an overwhelmingly complex issue. However, I feel that human nature doing what human nature does attempts to deal with complex issues in the wrong way.
It has been my experience that when faced with a problem people tend to handle complex issues in an oddly similar manor. First the human logically says, “I can’t figure this out, Freddy is pretty smart, I will get him and we can figure this out together”. This snowball effect happens until there is a room filled with bright individuals all working to solve the same complex issue. A solution is proposed then shot down, someone in the right corner of the room says something that seems smart that gets appended to by someone in the left corner of the room. After some rounds if iteration, a solution starts to come together. At the next meeting, the conversation continues and the solution gets more complex but seems to solve the problem. Until all the smart people either get tired of thinking or an agreed upon solution is arrived.
What is wrong with this? You may be thinking that this is a good way to solve the problem. Get a bunch of smart people in a room and hammer it out, it is totally logical. The problem is that the method of solution is group thought.
Group thought presents many challenges. At first it seems like a great way to solve problems but looking beyond the surface some nasty human behaviors surface. There are several truths behind a lot of the way that people act and think.
1. No one likes to be wrong
2. No one likes to get blamed
3. People tend to be adverse to changing the status quo
When you get a lot of people in the room all solving the same problem, what happens is that everyone in the room tend to see the situation in the light of the loudest speaker. And responsibility is distributed across everyone; there for no is looks dumb or gets blamed for the decision. With these facts of human nature working to distract from the complex problem, group thinking tends to not be an effective way of arriving at a solution. Not to mention they are expensive for companies to pay people to sit in a room thinking.
If getting smart people in a room causes more harm than good in solving a complex problem, what ever is a person to do? I have several steps that I recommend to solve the illusion of complexity.
1. Re-frame the problem – Take the problem and think of various ways to re-frame the problem. What this does is allows the issue to be seen from different viewpoints that could potentially shed light and lead one in the correct direction for solving this issue.
2. Look for a metaphor already in existence – For me it is very helpful to find metaphors in existence that mimic the nature of the problem. Looking for metaphors and analyzing the metaphor is a great way of helping to put the issue into another context (re-framing).
3. Draw it out -Being visual creatures, complex issues are always better when presented in a visual way. Through flow charts, graphs, scenarios, ect; one can look for relationships with in the situation that can shed light on what the heart of the issue is.
4. Dissect the problem – The illusion of complexity comes from context and size. While the first 3 steps deal with changing and manipulating the context of an issue, dissecting the problem deals with reducing the size of a complex problem. Taking a big problem and making it small is an art form in and of itself. Analyzing a problem in a smaller world then figuring out how those smaller solutions interact at the holistic level is a great exercise that can yield a great solution.
5. Simplify the solution – At first your solution might resemble a redwood tree. Large and overly complex, but you know what, it solves the problem. So now it is time to simplify your solution and make it more effective at fixing the heart of the problem.
6. Simplify the solution - Simplify again, push and push to find the most elegant solution.
7. Simplify the solution – One more reduction and your redwood should resemble a toothpick. The smallest, least complicated, and most simple solutions are always the most effective.
Complexity is an illusion, the illusion is a matter of context and size.
Working for more than my share of companies large and small, one commonality I find is that as companies grow their headcount the process must adapt. That seems to be obvious and almost doesn’t need to be said. However, the value in that statement goes beyond the immediate statement and into the implication that follows.
The fact of the matter, is that as a company grows the headcount the process will always adapt and change, but weather or not it adapts properly is a different thing entirely. Increasing head counts provide a business the opportunity to solve operational problems by assigning people to the new tasks as they pop up. This tends to hide operational inefficiencies and make people busy in the time consuming tasks that could be solved in a more scalable way.
I have seen common symptoms of operational process that could be better solved by software. If you see any of these symptoms at your job, this could mean one of two things. First, that there is an innovative software product waiting to be developed. Or, there is software that is already out there that can help make the process more efficient
These are the three biggest symptoms I look for when trying to fix a process:
1. Excel Files
Microsoft Excel is a pretty great program for a lot of reasons, but because of it’s variety of uses, I find that it tends to be used to band-aid operational issues.
2. Task Assignments
3. Multi-System Madness
There are, I am sure, many more that could go on this list. However, when coming into a company that is looking to technology to increase productivity and process these are the biggest offenders.
There are may different types of products in the world from textile to chemical to mechanical and beyond. Our physical world hosts a verity of materials and mediums for us to product products. We, as enterprising beings, can use these materials and mediums to patch together a product that has value to someone else. This product can then in turn be sold for money and the more people willing to pay for your product, the more financially successful one can become.
However, with physical goods there are a number of factors that inhibit them. They can be limited in resources, in production, in storage, in transportation, in distribution, just to name a few. These limits eventually affect the price of the product which eventually changes the ability for the product to penetrate further into a society.
What I like about software products is their ability to bypass many, if not almost all, of the same limitations on physical products.
1. Build ability – Time to market / Cost
Software products are great in this aspect for two reasons. First, a software product can be up and running as quickly as you want it to. Fully functioning prototypes can be built in a matter of days to months. If it takes longer than 3 months for a functional prototype, then you are either solving a really large problem or something is wrong. Second, software is relatively inexpensive to build. If you can’t locate someone who can build you a prototype given the amount of freelance and outsourcing solutions, then you are not looking hard enough. A quick search on google can turn up people to build whatever your heart desires. A couple months down the road and a couple dollars (if you didn’t it just do it yourself) down the road; you should have a prototype out there for people to play with.
2. Skillets and personalities
I really love how easily it is to find passionate people out there to help create software products. There are passionate designers, engineer/developers, passionate technologists and marketers. A high amount of passion means that these people make it their life work to stay up on the industry and these people also tend to be highly entrepreneurial. Its fantastic to see an industry of people so enthusiastic that they all have side projects and their day job doesn’t stop at 5:00. Passionate and high energy people create a unique feeling of excitement that not many companies or projects can achieve.
3. Distribution
Electronic devices are becoming more ubiquitous by the day. From mobile phones to internet enabled tv’s to computers everywhere, our world is becoming more and more connected. Even in the developing worlds mobile devices are outnumbering computers because of their price and connectivity. A software product has the ability to be distributed to almost everyone, provided the software is useful to them. Software does not have to worry about shipping logistics or storage costs, although there are still companies who do, it is not necessary.
4. Changeability
When something in the software product is not working correctly it can be changed. In the world of bytes, anything is possible given time and resources; but it is still possible. Bugs can be changed, menu’s can be changed, taxonomies can be re-developed; and once the changes are made software can be upgraded remotely. Software does not need to research and develop a new prototype, the prototype doesn’t need to go into a factory, software doesn’t need to be recalled in the same manner as physical products.
5. Behavior tracking
I love data. Software can create more data than any one person can consume. In the world of atoms, a product would have to undergo a myriad of different testing scenarios to see how people would use the product. People are paid to come into a room with a glass mirror, paid to talk to a researcher, or asked to participate in a survey; there are many different ways that companies use to determine how people use their products. In the world of bytes, we have the ability to track how each customer is using our product. We can see how many people use a given feature, how many people clicked links, the paths that people are using to get through the system and much much more. Every customer can potentially be a participant in giving feedback about software with out having to be imposed on.
6. Flexibility
Software is flexible. There is a saying in software, “users are going to figure out how to use your products in ways you cannot hope to predict”. Lets take for example a vacuum. The user must plug it in, turn it on, hold it by the handle, run it over the carpet, turn it off and when they have clean carpet; they will empty out what they have picked up. This is the overwhelmingly correct way to use this product and 99.999% of people use vacuums as they were designed to be used; software however is much more flexible. A group of people can sit in a room and debate the logical path to their hearts contents. In reality though, there are going to be many different ways that people can use to navigate the system. At the end of the day, software should be flexible enough to allow people to use the software in the manner that they need to. There is no way around the fact that people will use it in their own way.
7. Innovative Posture
Software is set up to be innovative. With a quickly changing business landscape, no business can sit still. This causes business to be motivated to not get too comfortable and invest in the new and emerging. Software also has the unique ability to utilize an evolutionary philosophy, “survival of the fittest”. With features that are quick and inexpensive to implement, product evolution is an easy game. As software becomes more prolific, the feature set that best meet the needs of the user reside, while the ones that don’t subside. Owners of a software product can deduce multiple different ways for the user to accomplish their task. After implementing all of them, one will likely be predominant. Paths that work best reside, while paths that are not as efficient subside. This allows for continual evolution of feature set through a robust iteration cycle.
8. Open Source
This has got to be the strongest point as to why software is the perfect product. My second point about skillets and personalities speaks a bit to the mindset of a highly passionate industry. Software professionals are so motivated and passionate that it has created an open market for free software. This is software that has been developed by companies and people that is free to use. The notion of the open source movement is based upon contribution. I am free to use open source tools (like drupal or wordpress) and change or modify them to my desire. I can build websites for people using Drupal and make money off of using the platform. The hope is that if I were to develop something custom for Drupal, that I in tern share it with the community. Thousands of contributions, in time and addons, have helped to foster this great free flow of knowledge. I have used Drupal for multiple sites and have contributed modules as my way of thanking the community for creating something I could not have created by myself. Open source lowers the bar for people to jump into creating software by utilizing already pre-built building blocks. I can now put together thousands of different applications with out having to code anything, for free, and make money off of it. When I do I am absolutely inspired to give back to the open source community by way of software contributions.
I am sure there is more that can be added to this list, but I feel that these are absolutely crucial pieces and these make up some of the reasons I feel that software is the perfect product.