In chess, amateurs play for tricks, masters play for position.
Amateurs assume competitors will fall for the tricks, but that is dangerous in business. Competitors could be sandbagging, and there's no ELO based on many prior games. You're also threatening their business and livelihood, not just the loss of a 2 hour game.
Masters assume competitors can see all the tricks, so they play for better pawn structures and piece placements. It is grinding out slight long-term advantages and converting it to a win in the end game. Grinding is the only way, because the players are so equally matched in the short-term: their pieces have similar powers, and they are limited to one move per turn.
In software, businesses can build only so many features per month due to the mythical man-month. Businesses are building on top of more or less the same technologies and mathematical techniques. Businesses understand what is important to customers and how customers use the features. Businesses watch each other's product demos and talk with each other's customers, so nothing released is hidden for long. Businesses also poach talent from each other.
Scholar's mate won't work here, there's no silver bullet features, and anything you build can and will be copied. You'll have to grind it out, fighting for better pawn structures, bishops on long diagonals, network effects, brand, and talent. And in the long-term, you come out ahead.
In a perfect information, turn-based game like Chess, there are no secrets. You know where all the pieces are, who moves what when, and the goal each person has. Direct subterfuge is simply not possible.
Chess masters use unpredictability, but in a perfect information, turn based game, unpredictability is indistinguishable from other traits like adaptability or position. Furthermore, their "tricks" are aimed at achieving proximal goals -- capturing a pawn, splitting a bishop pair, a better position. These proximal goals are then leveraged for victory. This speaks more about chess (or other, perfect information, deterministic, turn based, head to head games) than about mastery in general.
In a game where much information is hidden and victory can be sudden and swift, optimal strategies will take absolutely take advantage of deception, aggression, and risk taking.
I'm hating on your analogy, but I agree with your message. In most games, predictable things are predictable because they are among the most beneficial and safest courses of action. Doing something unpredictable carries with it the implicit cost of doing something that is materially worse, and hoping you will come out ahead because of side effects such as your opponent's confusion. You're probably much better off focusing on executing those simple, obvious, and predictable things well while your opposition bleeds to death while attempting a never ending cycle of net-negative cunning deceptions.
The easiest way to build a big business is to solve the hardest and most important technical problems. The market position would be defensible due to hardness, and the market size would be big enough due to importance.
There's many other approaches to build a big business though. While Apple's workers and investors believed in Apple's approach, Nasty Gal's workers and investors believed in Nasty Gal's approach. Capitalism is the judge and redistributes capital to the approach that works.
Apple's workers and investors now have more capital, so they can start more hardware tech companies, while Nasty Gal's workers and investors have less capital, so they can start fewer online clothing store companies. It's inefficient, but it works out in the end.
In hunter-gatherer times, I would hunt so my family could eat. If I hunt from 9 to 5 and didn't catch anything, I would have to keep hunting, or my family would go hungry. Nature is not a fair employer, it does not give meat to me because I worked 8 hours. I only get the meat if I catch it.
Today, society built many layers on top of nature. Big business bureaucracy guarantees food if you work for 8 hours. But at the edges of society, it is still very rough.
My business isn't going to grow just because I worked 8 hours. It only grows if I solve my customers' problems, regardless of how many hours it takes. I think this applies to the common "rich people" positions as well.
Very good comment. Those that choose the regular slice of meat at each 8 hour interval are making a trade for smaller yet (more) predictable rewards. They give up their freedom to sell their time to the highest bidder. It's well explained in the hypothetical universe where pilots are all freelancers [0].
but you chose the highest bidder on a year-to-year basis. Not an day-to-day basis. You're guaranteed a monthly (bi-weekly) salary, but, you can't quit today to do a more lucrative offer and then get your job back the day after.
There's reality, and there's the interpretation of reality. Reality is the location of atoms. It's the hard cold facts that all observers can agree on. The interpretation of reality, on the other hand, is fickle. If I am sad, I can listen to happy music, and I'm happy again.
I try to affect reality, not the interpretation of reality. I write software and sell to customers. This is reality. My software exists, my customer relationships exist, and the software is solving my customers' problems. There's really no good answer on whether my business is mediocre or not, so I try not to think along those lines.
While this this attempt at objectivity seems laudable, I don't think there is such a thing as objective value. All value is subjective and subject to interpretations. If you create a program that prints "Hello World" over and over again in a loop forever, you have made an objectively real piece of software, but it has no value to anyone. I would say that all actions, at a purely objective level, are completely pointless until we apply a value statement to them. For example, if like many people you believe that humans existing in the universe has value, and that we should try to optimize for humans existing as long and/or as prosperously as possible, then creating products that contribute to the survival and prosperity of human beings makes sense. I think it is useful to understand the basic values we are taking for granted whenever we state something has "objective" purpose, because those values don't always hold.
The entrepreneur pits his willpower against the entropy of nature. Nature is huge and moves randomly, while the entrepreneur is small and moves purposefully.
There is definitely luck in nature's random movements. But the entrepreneur small purposeful movements add up over time and overcome nature.
As someone who is awful at Pictionary, I hope so as well. Just today, I defined a class with 4 functions. I had another function that created an instance of the class and called one of the functions. It changed a variable that would show up in the web browser formatted by CSS. And I can't even draw a dog in Pictionary...
Once I figure out the difficult specific and rigid details, I just want the most productive way to communicate these details to the computer. Writing code is the most productive, because it is more exact and I am faster typing than drawing/dragging/clicking. For example, with Vim, I can do a quick "Ack def function_name" to find the definition of a function.
For learning purposes, Project Bloks looks great. But when it comes to real work, I'd happily learn the syntax, as it lets me be more productive.
For professional programmers, many people on this forum, the format that we use (text) is almost certainly the most efficient (yet conceived). It's made better with better tooling, of course, like IDEs that help us refactor, show errors in code as we edit, etc.
The author's point is that many more people will be programming in the future (hopefully) than are today. But not as professional programmers. For them, tools like (but not, of course, the same as) Project Bloks will be better.
Hell, we already do this today for ourselves. How many people get into the code-behind on GUIs regularly? Do you detail in code "button x will be placed to the left of button y, the center point between them will be ...". No, we often use some combination of markup language (XML-based like XAML, or something else) or visual designer (that may be generating a markup language version behind the scenes).
Then we connect the dots, the various objects to various actions or data sources, and off we go.
Just like 80% of my (early career) programming was really just gluing together a bunch of data sources for generating reports, much of what businesses need is in the same vein. Relatively (compared to the scale professional programmers like to think of our own work) trivial applications, that exist at a relatively high level (they're not writing a new DB server), connecting pieces together based off logical rules.
From a first principles perspective, it's me and the computer, and I want the computer to do something. My laptop has the following input devices: keyboard, mouse, webcam, and microphone.
I mostly use the keyboard and mouse. There are some places where the mouse is better than the keyboard. I was playing online chess today, and I like to drag and drop the pieces. It feels more natural and not that much slower than inputting the coordinates.
But when I was coding today, I needed to navigate through my code quickly. The mouse would have been much slower than vim's CTRL-D, CTRL-U, and /search_keyword, so I used the keyboard.
For the non-professional programmers, Project Bloks might be more like chess's drag and drop. It's more natural and not that much slower for simple tasks. I can see why non-professional programmers may like it.
How is Project Blocks different than the multiple (rather unsuccessful) failed attempts at graphical (even drag-and-drop) programming languages of the past?
its much faster to put together a functioning system than it was 10 years ago. For example in ROR, install devise and you already have a login system. I imagine things will keep getting incrementally easier / faster until one day we wont need a 'programmer' to do what we want.
google isn't unaware, I'll try not to put words in his mouth, but a google exec said something along the lines that we aren't very far from needing half of the programmers/ IT people we have today
> google isn't unaware, I'll try not to put words in his mouth, but a google exec said something along the lines that we aren't very far from needing half of the programmers/ IT people we have today
In one way, that's a scary idea (a lot of people will end up looking for work elsewhere). On the other, what programmer wants to do the stuff that can be automated away or done by a non-programmer? Or wants to reinvent the wheel because of NIH syndrome?
Hard to imagine, when I see all the stories about tiny modules in Node.js...but easy to imagine when I see how many JS frameworks are out there.
Still, so much of what we do these days is just tying together other people's libraries, connecting them together and maybe doing a bit of data conversion. My first step when I need to do something is to find out if someone else already wrote the software. Then I can just install+configure+move on to more interesting things.
HIPAA compliance is a good checklist even if you don't need the certification. It covers the administrative and physical safeguards in addition to the technical ones.
You have to maintain the current, while pushing forward on the new. Accounting is important, because the incoming money has to pay for the outgoing money (food, clothing, rent). Calculating everything down to the dollar is pointless, however. Just be within 80% of the right number, build in a buffer, and push forward on the new.
The new is much more exciting than bean counting the current, but you still have to maintain the current. Just like how refactoring, testing, and debugging code are just as important as writing new code.
Society has a limited amount of resources and manpower. Your capital is your share of society's resources and manpower. The capital can either be used on yourself or to build new products and services. Some people are better than others at building products and services people want. The free market attempts to redistribute capital to the people who are better at building products and services people want.
Most people use their money for themselves. They use the money to pay for food, clothing, and cars. If they get a pay raise, they use the additional money to pay for better food, better clothing, and better cars. They don't see the money as capital to build products and services people want.
Amateurs assume competitors will fall for the tricks, but that is dangerous in business. Competitors could be sandbagging, and there's no ELO based on many prior games. You're also threatening their business and livelihood, not just the loss of a 2 hour game.
Masters assume competitors can see all the tricks, so they play for better pawn structures and piece placements. It is grinding out slight long-term advantages and converting it to a win in the end game. Grinding is the only way, because the players are so equally matched in the short-term: their pieces have similar powers, and they are limited to one move per turn.
In software, businesses can build only so many features per month due to the mythical man-month. Businesses are building on top of more or less the same technologies and mathematical techniques. Businesses understand what is important to customers and how customers use the features. Businesses watch each other's product demos and talk with each other's customers, so nothing released is hidden for long. Businesses also poach talent from each other.
Scholar's mate won't work here, there's no silver bullet features, and anything you build can and will be copied. You'll have to grind it out, fighting for better pawn structures, bishops on long diagonals, network effects, brand, and talent. And in the long-term, you come out ahead.