[Navigation Bar]  
 
 

    

[OpenSUSE powered]
[BUSH powered]
[vi powered]
[XML] [RSS]
The Lone Coder
Reflections for the Unsung Linux Saviours
by Ken O. Burtch
 
[Lone Coder]

 Losing Control of Your Linux Startup

Some programming languages manage to absorb change, but withstand progress.
-- Epigrams in Programming, ACM SIGPLAN Sept. 1982

Corollary: This also applies to People as well as Python, Perl and PHP.
-- Ken B., Dec 2005

In "The Need for Speed", I discussed what PostgreSQL developer Chris Browne calls "false economies". This refers to doing things to improve performance such as (1) improving speed when the computer is too fast already, (2) removing "slow" safety features causing increased development and maintenance costs, or (3) optimizing in the planning stage before you know where the final bottlenecks will be and before you know what features can be safely removed from the project. My example was a developer running a Linux startup who was concerned about web site performance.

I spoke with him again a few weeks ago. I'll call him "Bill" although that's not his name. Honest, hard-working, ambitious but also inexperienced, undisciplined and insecure. The kind of guy who buys a fast car on credit and talks too fast because he's afraid of what you will say. The kind of guy trying to prove something to himself today but doesn't care where he will be tomorrow. His need for speed went way beyond web sites.

Bill: I have to fire a guy but I don't want to.

Ken: What happened?

Bill: Well, running a Linux startup means sacrifices. Our "office" is a run-down building in a bad part of town. Our "server" is a 6-year-old computer with a fan duct-taped into the case. The programmers work long hours for low pay. Even when I'm managing the guys back at the office, I'm multitasking on the phone trying to get new business. I'm generous with the guys: I don't have any policies or rules because I don't want to be a tyrant. When someone complained about the lack of air conditioning, I had to fire him for reducing morale and not respecting the sacrifices I've made to make this company work.

Yesterday I walked into the office and there was a major fight. A guy had accidentally saved his unfinished work and broke everyone's code. Some were saying that he was a bad developer. Some were saying that he was putting them behind schedule. Some were saying that it shouldn't take so long to fix. The guy, humiliated and frustrated, packed up his laptop and took off at lunch-time. He worked at home for a while, making the repairs. He was back later in the afternoon to make sure everything was up and running.

Ken: And what kind of guy is he?

Bill: Punctual. Honest. Helpful. Good for morale. Goes beyond what I ask him to do. Finds work to do when I'm busy. He's drumming up new business after hours to help keep the company afloat. In fact, he hasn't even mentioned the incident since it happened.

Ken: So why do you want to fire him?

Bill: He doesn't respect me.

Ken: Respect and 25 cents will buy you a 25 cent donut.

Bill: Respect is very important to me. I have a very firm idea of respect...though I'm not sure I can describe it.

I want to create the kind of company that I would be happy to work for. Not those big corporations where programmers get no recognition or respect. People need to respect each other. This guy had just walked out of the office! And he had the nerve to walk back into the office! All without my permission! My friends say I should fire him. A good manager cleans out the troublemakers and doesn't waste a lot of time doing it.

Ken (scratching his beard): That sounds noble and reasonable, but it's a person's actions, not his words, that tell what kind of person he is. If you want to create "the perfect company" for a developer to work for, why is it that in your company (1) working conditions are bad; (2) pay is low; (3) hours are long; (4) good work is not rewarded; (5) goals are uncertain; (6) punishment is unexpected and random; (7) the only punishment is to have one's career destroyed by a dismissal; (8) And everyone, sooner or later, gets dismissed. Tell me, is this your idea of a place you'd want to work at?

Bill: The way I see it, I'm finally getting the respect I deserve. But look what this guy did. What if someone asked me where one of my employees was and I didn't know? I'd lose respect. By firing troublemakers, I'll be respected by the employees and they will do what I say...out of fear.

Ken: I think you and I use the word "respect" to mean different things. What should that guy have done?

Bill: He should have maintained his productivity, without hurt feelings. He should have been mature so I wouldn't have to deal with it.

Ken: ...mature like a robot? The Bible has this thing called "The Golden Rule": do unto others as you would have done unto yourself.

Bill: A good manager fires people. I don't have time to waste...I've got a company to run and anyone who doesn't fit in has got to go.

Ken: A good manager is a servant to his team because it's the team that will see him through to his goals. Look, I've got a feeling that I know what the problem is. Tell me, what are your plans for your startup?

Bill: I'm going to make the perfect company for me to work for. And I'm going to be rich in 5 years.

Ken: Those are goals, not plans. Plans are the steps you need in order to make it to your goals. What steps are you taking to make it to your goals?

Bill: I don't have time to plan. I'm looking for new clients.

Ken: And your employees? Do they ever work from home? Do they have any privacy? How do you help them cope with stress?

Bill: They work in a small room next to my office so I know where they are and I can overhear what they say.

Ken: Bill, your problem has nothing to do with lack of respect or punishing bad behaviour. It's personal. You're upset because you're afraid. Your employee inadvertently exposed that you are not in control. And you think by firing this guy you will get control back in the eyes of your staff.

-- ++ --

Stress (a fancy word for "fear") is a defense mechanism used when people feel vulnerable, and people feel vulnerable in a startup company. Some people deal with stress by trying to maintain the illusion of control. If you are overseeing everything, then you cannot be hurt by unexpected events. If you are "in control", then it must be someone else's problem when things go wrong...something outside of your control. For this reason, obsession with control leads to fear, distrust and illogical behaviour.

The fact is that people have little control over what is outside of themselves. A person running a Linux startup no more controls the startup than someone pushing against the Leaning Tower of Pisa keeps the tower from falling. The only Linux startup that has a founder in total control is a company of one employee (or with a staff of robots).

The good news is that employees don't expect the founder of a startup to be in total control. The employees know that they are all contributing to the creation of a successful company, unlike working at a large company where a person is a nameless number. The founder is there to set the atmosphere and keep the team working smoothly until the company becomes financially stable.

The main resource that someone can control is themselves. The employee that walked out of the office dealt with the stress: he blew of steam, worked from home when he couldn't face his coworkers, and returned to the office to do his work. Although he may have overreacted under the stress--I don't know what additional stress was caused by his home life --he dealt with his emotions and focused on keeping the team productive in a stressful work environment.

Bill, in contrast, had no discipline over himself, his emotions or his decisions. His obsession with maintaining total control caused his goals to suffer. I'm sure he was sincere about making a wealthy and happy company. But he had cut-off good workers, severed lines on new business and spread distrust and fear amongst his developers. A not-so-benevolent dictator--he was too busy to exercise self-discipline, trust and listening skills. The company was hostile and unstable, dying from the inside out.

To run a successful Linux startup you need to be real about yourself. The founder is a part of the team. If you want respect, earn it: don't demand it. And don't redouble your efforts while losing sight of your goals or you may create the very kind of company that you don't want. To demand control can leave your startup out of control.

As for Bill, I asked him how he was managing his finances, family and finding new contracts. How had he and his team pulled together to make his business work?

Bill: Everything's falling apart, but I don't need any help. I know I'm responsible for everything and I will get it all under control.

Ken: That's what I was afraid of.

Read more about running a startup in my book The Big Online Book of Making a Linux Startup.

Talk back on the Linux Cafe.

December 16, 2005 

Read More:  OpenSuSE 10: Developer Dream or Crippleware? --> 

  • July - Heores get the Blame
  • June - Visiting VMWare Virtualization 2010
  • May (late) - A Server by Any Other Name
  • May (early) - Innovative Techniques: The Draco Legacy
  • April - The Lone Coder with a Middle-class Dream
  • March - Welcome to Our Meeting
  • February - The Facebook Generation
  • January - Prioritizing Solutions on Difficult Projects
 
     

« Truth Humility Communication Nobility Freedom Purity Excellence Right Support Courage Compassion Quality Honesty Trust Cooperation Challenge Education »
PegaSoft Canada - A Linux Association Since 1994