Collecting the best books mentioned on hacker news, reddit and other places
This was talked about on Hacker News yesterday:
And the book:
How to Destroy a Tech Startup in 3 Easy Steps
I get that any kind of writing can provoke strong reactions, as some people have strong preferences. And they have a right to those preferences. But I hope we can agree that being vocal about one's preferences is a different kind of activity? Everyday on Hacker News there are dozens of articles that don't interest me, but can you imagine what people would think about me if, in every one of those articles, I posted a note saying that I didn't like the article?
Most of us simply skip over the stuff that doesn't interest us. That is clearly the default behavior. Therefore it is interesting why, on certain articles, people do feel the need to comment on the style.
Personally, I've been lucky, because the most vocal people have been the people who like my writing. But not always. I wrote a book about startups, and some people loved that it had a lot of humor, whereas others really hated it. At least so far, the one's who hate it write to me privately, whereas the ones who love it have written the reviews on Amazon:
I'm lucky, but I'm also curious why this is. As a purely sociological question, why is that sometimes people feel the need to be very vocal with their disapproval, whereas most of the time they keep such disapproval private?
Strongly agree. I would like to spend more time teaching junior developers what I know. But anything that slows down a small, agile startup can mean the death of the startup, so this tends to undercut my ability to do any kind of mentoring.
Excerpt from a real life situation I was in:
June of 2015:
Sital was a beginner. In general, there is nothing wrong with being a beginner. All of us are beginners at some point. And for the most part, I think corporations in the USA can do more facilitate apprenticeships to help people start their careers. However, we were a startup that needed to move fast. Could we succeed when we had a beginner in a critical role? I had doubts.
July of 2015:
I felt no sympathy for John. Hiring Sital had been his call, as was failing to hire Arthur. These last few weeks had offered plenty of evidence that Sital was a liability to the team. If John wanted to stick with Sital, he would have to live with the consequences.
I would feel very differently if Celolot had a formal commitment to an apprenticeship program, and if I had clearly been given the responsibility of running that program. And I do think corporations in the USA can do more to help people start their careers. But it was ridiculous to both want to run an aggressive schedule and also train a beginner. The one contradicts the other.
When I am not a founder at a startup, the only times I am invited to talk to the Board is when something has gone wrong. Then the founders are trying to shift the blame on to me, rather than take the blame for their own decisions. And even though I want to talk to the Board, I avoid these meetings, because I don't want my first meeting with the Board to be dominated by the question "Why is your software behind schedule?"
This has been discussed on Hacker News before, but again, here are a few brief excerpts about how this relationship fell apart at a startup where I was at in 2015:
July of 2015
...All the same, a wave euphoria swept over John, which he communicated to the Board Of Directors. Much later, I learned that at this time they began to schedule their plans around the assumption that we'd be making significant money by September. Again, though I can admire a sales team that aims to hit aggressive targets, making such plans around a product that doesn’t yet exist, and which seems to be running behind schedule, is delusional.
August of 2015
...But Twilio would be a very dangerous step for us. If John and the Celolot Board of Directors really wanted us to ditch our iPhone app, this meant that we would be 100% committing ourselves to English as our only interface — and building a flawless NLP engine would be indispensable. There would be no buttons, no forms, nothing to click on. Just words and phrases written in English, submitted by innumerable users. And if we failed to build an NLP engine that could understand all of it, then we were doomed. I thought NLP was a fantastic supplement to traditional interfaces, but as a complete replacement, it was a huge gamble. It was like jumping out of an airplane without a spare parachute. Furthermore, if we had Hwan build us an app, then we could customize it in some really cool ways. Special messages, special ways of allowing data to be edited – things that are not possible with the standard iPhone Message app.
September of 2015
..."I am asking a hypothetical question." I thought this was obvious, but I was willing to emphasize the fictional nature of the scenario if it would calm him down.
"But why would you ask that?" The intensity of his reaction was as if I’d just asked him something obscene.
"Because I think hypothetical questions are important."
"I don't! I think working is important! Let's work hard and get this software running!"
"I’m sure we’ll get it working at some point, but we have already seen many unexpected delays." I pointed this out as calmly as I possibly could. "What if we encounter another?"
"If we miss this deadline, I'm going to ask you to talk to Milburn [of the Board]."
He threatened this as if it were the worst punishment he could imagine inflicting on me. Like, if the prisoner does not break during waterboarding, then we have them talk to Milburn.
"You don’t want to talk to him?" I treaded carefully. "You talk to him every day."
"No, you can talk to him about this."
I was wary. It sounded a lot like I was being set up to take the fall for John's bad decisions. A part of me very much wanted to talk to the board, just to be sure they understood the real situation. I wanted to warn them about Sital. I wanted to impress upon them the absolute urgency of the Conversation FSM. But I didn't want my first real conversation with Milburn to be dominated by the question, "Why are you running late?"
excerpted from here:
This is a very odd quote:
"It was easy for M’s leaders to win internal support and resources for the project in 2015, when chatbots felt novel and full of possibility."
Chatbots were new in 2015? I think it might be more accurate to say they were new in the early 1990s, but they had a revival of interest around 2015, driven by the possibility that advances in AI and NLP would allow them to do more.
One place where chatbots still have a large opportunity in front of them is in automobiles. The driver is not suppose to hold their cell phone while driving. But they can talk to the phone, and voice-to-text allows them to interact with chatbots. Someone in the industry told me that Toyota has inked a deal with Pandorabots:
Likewise, during and after my time at Celelot , I talked to a lot of salespeople, and they told me that was the #1 thing they'd like to see, as an interface for SalesForce. They wanted to be able to meet a client, make a sale, and then drive home, and while they were driving, they could talk to their cell phone and the Celelot service would put all the data into SalesForce for them.
The article says that the Alexa economy is increasingly important to Amazon, yet if you go on the developer boards, most of the complaints from last year are still there. The flaws in the system keep serious developers away. Those on Hacker News might remember this conversation:
It's also disappointing how much of this system remains vaporware:
It's also disappointing that Amazon continues to resist the changes necessary to make the Alexa a good Enterprise eco-system:
On this last point, it is frustrating that we have not seen more competition. Most startups lack the resources to build their own voice system, so they want to build on the back of service being offered by Amazon or Apple or ...
Apple promised to open Siri, but so far you can't build Enterprise apps with Siri.
There is interest among managers. Among the ideas that business leaders have asked me about:
1. An Amazon Alexa in every hotel room, ready to answer guests questions
2. A salesperson leaves a meeting where they made a sale. They get in their car and drive home. They talk to their ______ device and all of the data is sent to Salesforce, the app creating a new Opportunity or new Tasks.
3. An Amazon Alexa skill that can reach into the companies Salesforce account and generate a report for high level executives
Of this last one, we had a working demo in early 2016, but we need some extra tools for specifying the phonetic sound of a company name, as Alexa mangles the names of companies such as IBM and CNET.
As to #2, we worked on a text interface for Salesforce in 2015. I wrote about that extensively here:
We then investigated how to do this with voice. At the moment, it seems the best option is to use voice-to-text on an iPhone or Android. It's an open question whether it is best to use IBM Watson's NLP tools or build a specialized tool just for dealing with Salesforce.
* Your attitude is the exact opposite. *
You setting your theory against my lived experience. If you want to understand the situation more fully, you can read How To Destroy A Tech Startup In Three Easy Steps:
I did my best to re-create the extent to which decisions were driven by panic and the pressure of time.
Please note, every company in the world has a finite amount of time, and a finite amount of money. You can argue that a company should hire people with more experience, but people with more experience will be more expensive, so you will end up with less people. Or you can argue that a company should hire more people, of less experience, and then train them. Training takes time, so in this case you are trading time for money.
All of these strategies work, but in different circumstances. In the circumstances that I faced in 2015, described in the book, I advocated for the strategy of less people, of a higher skill level. I was, however, outvoted, which is a reality of corporate life.
It is relatively rare that a company follows an ideal strategy. What I see instead is constant course correction, often with a bit of a lag, so that the company ends up having the ideal strategy for dealing with the situation that it faced 6 months ago, which is not necessarily the ideal strategy for what it is facing now.
Business tends to be chaotic. The Platonic Ideal of computer programming needs to be adjust to the real realities that businesses face.
To be clear, Sital's attitude was a major problem, and myself and co-workers advocated that he be fired. But management kept him on, and I was given the responsibility of covering for the gaps in his knowledge. I was not happy about this, but this is a reality of business: we often have to accept that a decision has been made that we strongly disagree with, and then we need to somehow make the best of it.
I've a similar story.
May of 2015: hired at startup that wants to use Natural Language Processing so salespeople can send text messages directly to their CRM (Salesforce, PipeDrive, etc). Very excited about the project. The app's initial UI design is a traditional one, with NLP helping to smooth the basic task. The full app would take about a year to build but we all agreed we could have an MVP by August.
August of 2015: without consulting anyone on the tech team, the Board Of Directors decides the app should get rid of all standard UI elements: no forms, no buttons, no links, no drop down menus. Instead, the interface should be a pure chat app. This makes the project much more ambitious, which I was very excited about, but which I felt would delay the project 2 or 3 months. Nobody was happy with my estimate.
September of 2015: the CEO was able to show a demo to the Board Of Directors. The demo was an illusion, as we had no error handling, and it only worked for some carefully planned examples, but I thought it was a good sign that we could show the Board that we were making progress. Unknown to me, the Board then asked the CEO for real feedback from real customers at the next meeting, a month later, in October. There was no possible way for us to finish the product, and find customers, and get feedback, all in a month, but the CEO was a bit of a coward, so he promised the Board we would do this.
October of 2015: obviously we did not have customer feedback by the next meeting of the Board. At this point the Board decides we have missed our schedule and they begin to panic. We are slowed by the fact that our "NLP expert" is inexperienced. Myself and our iPhone programmer tell management that we need to fire the current NLP guy and hire someone with real experience. Management initially agrees but then later changes its mind, for reasons unstated.
November of 2015: we get a basic demo working, and it has enough error checking that we can show it to potential customers, and not be entirely embarrassed. But the stress of the previous month has wrecked relationships inside the company, people are shouting at each other constantly. At this point I step away from the project, but I remain on friendly terms with the guy who is doing the iPhone programming.
January of 2016: company gets two trial customers, but these customers won't pay for the product. The NLP engine is improving, but at glacial speed, as the "NLP expert" is at the beginning of his career. He was a nice person, and I can believe he will eventually become a good programmer, but it didn't make sense that a company that wanted to move fast also remained so loyal to a guy who could not do what was needed. An established company could/should afford to have an apprenticeship program, but a fast moving startup can not offer an apprenticeship to someone working on a core technology.
April of 2016: the iPhone guy again asks management to find a new NLP expert, someone who can move the company forward. Management reacts by listing every bug ever discovered in the iPhone app, as a way of telling the iPhone guy to shut up.
May of 2016: the iPhone programmer quits and gets a job elsewhere.
June of 2016: the company is almost out of money, so it cuts back on spending, reduces the team.
summer and autumn of 2016: without much staff, the company crawls along at a glacial pace
Early 2017: the company gets more funding, begins moving forward again.
Summer of 2017: the company now has a few trial customers, but they are paying trial rates, which is to say, almost nothing. The company is not anywhere close to the breakeven point.
The company continues to burn money without making much progress. There are clearly some fundamental leadership issues that should be addressed, and one of those are the ways that estimates and budgets are created. Also, the company would be in much better shape if the leadership listened to feedback from the tech team.
I wrote about all of this in detail here: