When you have a bad project manager, good software will not save you. This is my personal story of how things can go wrong:
At 2 PM we had a meeting scheduled to go over all of the tasks in PivotalTracker. John had promised Milburn that we would execute our work according to a project-management philosophy that the tech industry called agile. Agile software development, among many other aspects, focuses on the delivery of small, incremental improvements to software. It encourages self-organizing teams, evolving and continuous progress, and rapid response to challenges faced. The Celolot team would work two-week sprints, checking in at the end of each period to see where everyone was at.
Unfortunately, vague definitions of “done” haunted our progress. John read through a long list of tasks that had been assigned to Sital.
“Find all possible variations of ‘Close Date,’” John read from the screen. “Is this done?”
“Yeah,” muttered Sital. “Sure.”
His assurance meant nothing to me. Sital would never lie, indeed I was often surprised by his childlike honesty, but he lacked an appreciation for the many ways that software could break.
“How many variations have been tested?” I asked.
“Two,” replied Sital.
“That’s not enough,” I said.
“That’s enough,” countered John. “‘Close Date’ and ‘Contract.’ That’s all we need.”
“What about ‘Close’?” I asked.
“Oh, yeah,” John thought aloud. “What about ‘Close’?”
“I’ll see,” Sital responded somewhat robotically.
John marked it as done.
“Wait,” I objected. “That is not done.”
John turned back to Sital. “Do you think you can finish today?”
“Absolutely,” Sital assured us.
“Then I’ll mark it as done,” said John, returning to his screen.
“But it’s not done till it’s done,” I argued.
John pondered this for a brief moment. “It’ll be done today,” he shrugged. He marked it as done.
In my view, John’s casual use of the word “done” to refer to items that were nowhere near done meant that this whole effort to track tasks was a useless ceremony. But John felt good about it. He could tell Milburn that we were following a two-week sprint, just like an authentic agile team.
It was true we had the accoutrements of an agile team. We used PivotalTracker. We broke down goals into fine-grained tasks. We reviewed the task list once a week, and we added more tasks every two weeks. But the whole thing was mockery of what the Agile Process was supposed to accomplish. If you have programmers who cannot finish assignments, then there is no point in pretending to be making progress.
related to here:
Sturgeon's Law says that 90% of everything is crud, and that applies to startups. The good ones are rare. If you get a chance to work at one of the good ones, you should go for it. But can you be sure? Sometimes the founders are talented at selling a false image of what the project will entail.
Startups are a chance to build something entirely original with brilliant and ambitious people. But startups are also dangerous. Limited money means there is little room for mistakes. One bad decision can mean bankruptcy. The potential payoff attracts capital, which in turn attracts scam artists. The unscrupulous often lack the skills needed to succeed, but sometimes they are smart enough to trick investors. Even entrepreneurs who start with a strong moral compass can find that the threat of failure unmoors their ethics from their ambition. Emotions matter. We might hope that those in leadership positions possess strength and resilience, but vanity and fragile egos have sabotaged many of the businesses that I’ve worked with. Defeat is always a possibility, and not everyone finds healthy ways to deal with the stress.
As an example of what can go wrong, see here:
Every industry has certain euphemisms for the least savory aspects of its business. In sales, there is the secretly ugly phrase, “goal-oriented.” That sounds pleasant, doesn’t it? If I point at a woman and I say, “That entrepreneur is goal-oriented,” then you probably think I am complimenting her. But if I point at her and say, “That entrepreneur is a lying, manipulative, soulless psychopath who brutally exploits labor from the eleven-year-olds she employs in her sweatshops in Indonesia,” then you probably think I am insulting her, unless you are a libertarian. And yet both statements mean about the same thing: that she is someone who is willing to do whatever is necessary to ensure the success of her business.
When I read about Milburn online, I’d seen testimonials from his colleagues in which he was often described as a goal-oriented salesperson. That probably meant that he was a master of manipulating other people’s emotions. He knew all the tricks: praise, shame, laughter, anger, promises, guilt, threats.
Whether his use of these tools was conscious or unconscious is, of course, unknowable. But it doesn’t matter much. A lifetime as a sales professional left him with an arsenal of psychological ploys that had become second nature to him.
...Milburn truly had a genius for the strategic use of anger. If he sensed the risk of losing control of the conversation, he would indulge in another outburst. If I were to ever switch over to the Dark Side, I would want to study with him. His techniques were fundamentally dishonest and manipulative, but that is probably what made him so good at sales. And his tactics were probably an effective way to drive a sales team, but I sincerely believed that such tactics were the wrong way to run a software development team. Especially when doing something cutting-edge original, like we were doing, I think open and honest communications were extremely important. (I have worked with many companies where the sales team was both friendly and successful. One does not need to use abusive tactics to have success in sales. Indeed, the sales manager who relies on abuse is typically more interested in aggrandizing their own success, rather than the success of the company they work for.)
If a programmer has a habit of sloppy code, or violates the team's standards in some ways, then a good leader will keep track of the fact that one person is responsible for a recurring pattern of mistakes.
I absolutely agree with Rachel By The Bay, that many bugs arise from the complexity of the situation, and it would be wrong to blame the person who just happens to trip over that bug. But a good leader should take action against anyone who repeatedly screws up, and who seems unwilling to improve.
I've written about this before. This is from "How To Destroy A Tech Startup In Three Easy Steps":
Wednesday, July 15th, 2015
I got to work at 11:00 a.m. John announced that our demo had stopped working. Sipping my coffee, I logged into the server to find out what the problem was. I looked at the error log for the API app, but it seemed okay. Then I checked the error log for the NLP app.
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
What the hell was this?
What kind of name is that for a function?
A computer programmer can name their functions anything, but there are some “best practices” regarding names, and this particular function name violated all of them.
I asked Sital why he had given this name to his function. He looked at me straight, shrugged, and stated that the name was from the 1995 song by The Notorious B.I.G., “Get Money.” I replied that rap lyrics were not part of our naming conventions. He promised that he would change it.
Coming from anyone else, I might have interpreted the function name as an act of angry rebellion, but Sital was too forthright for that. Apparently, he thought the name was funny and went with it because he wanted to add some humor to his code. Never did he stop to think it might be unprofessional.
I looked through his code and found several other functions that had inappropriate names. I sent him a list and asked him to change their names to something standard.
A week later the function was still there. FuckBitchesGetMoney. Yet I don’t think that any of this was a deliberate act of rebellion. He was just oddly forgetful and disorganized.
And the book:
How to Destroy a Tech Startup in 3 Easy Steps
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?
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.
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:
"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.
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.
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.
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: