I've seen various posts from a diaspora of "entrepreneurs" that have resulted in nothing more than a cacophony of conflicting advice. Some of that advice was (in my opinion) bad. What better way to fix this than add my own!

I started by first business in 1997 and then proceeded to found three other companies. I've been around a bit and understand the stresses of growing a company from nothing (no funding) as well as from taking rounds of financing and leveraging debt.

So... here's my advice. (hint: nothing to do with finance)

1. Understand how you cope with the stresses in your life.

You, like everyone else, have stresses and have to cope with them. As an entrepreneur of a growing business you are going to be exposed to some very foreign and harsh stresses. Understanding how you cope with stress and having practiced techniques for doing so is pretty much the only thing that will keep you focused, committed, and effective on your journey.

I've cycled through many things: movie nights, boring exercise, rock climbing, martial arts, and CrossFit. Worst: boring exercise (as I could still keep my mind in work). Best: martial arts (if I think about work, I literally get punched in the face).

2. Be prepared to work hard.

There’s a lot of talk about sleep deprivation and not enough talk about 80 hour weeks and 3am calls. The latter does not induce the former. Sleep deprivations is the dominion of those with bad time management skills and poor discipline… oh, and new parents. That said, being a new parent during the high stress parts of building a company puts a phenomenal amount of stress on both partners.

I've pulled my share of all-nighters. I've taken pride in being up over 72 hours straight solving critical production issues for clients. I've had insane and counter-productive sleep schedules. I've also known when to stop and take a break. I always tried to average more than 5 hours of sleep per night. It's important to know that everyone is different and, if you're one of those people who needs 8 hours, that should be your goal. Remember, 8 hours of sleep per night leaves 112 hours in the week, so an 80 hour work week is something that is possible and quite likely. Shout out to my wonderful and strong wife.

3. Be passionate.

There will be some hard times. Other days will leave you feeling like you had three meals of shit sandwiches. If you don’t have a damn good reason to pick yourself up tomorrow and reengage, you won’t. Passion is that reason. For many, passion is just the money and while that may work, I find that it can be demoralizing to have that be the whole picture… because success.

I'm not sure if every entrepreneur has moments of doubt: "Why am I doing this? Why do I care?" But, I sure have and continue to have them even 18 years later. For me, these doubts are usually spawned by a failed deal, a failed goal or a personal argument. I take a break to do something else that forces my mind away then come back.

4. Be able to define success.

It doesn’t need to be articulated painstakingly in a contract, but you need a firm and unshifting idea of what success looks like. There may be times where you need to reevaluate that definition, but the process should be deliberate and from the ground up each time. Shifting definitions allow you to cheat yourself and yield less personal reward.

For me, hitting goals is elation. And, truthfully, I can only handle so much of it. I've found it important to set very few, very hard goals. Every bullshit goal that was an easy target has only devalued future goals for me. I've learned that, on occasion, I'm retrospectively quite proud of some of my accomplishments that didn't hit targets. Some even took five years longer than I'd planned.

4. Take risks and don’t be afraid to fail.

When you do fail, don’t let yourself off the hook. Hold yourself accountable and don’t excuse a future failure of like kind. Be honest with your customers and your staff about your failures and your bad decisions. We're all human (I think) and transparency is a powerful trust builder.

I don't think I've been reckless. But if I was afraid to grow or change and that lead to risk aversion or indecision, I'd always end up with less that I deserve. When I'm betting on myself, I put my fucking chips on the table.

5. Be prepared to be wrong.

Humility is not required, but it sure fucking helps. You’re going to get a lot of shit wrong. In fact, I’d wager you’re going to get most of it wrong. Neither arrogance nor selective memory turns that learning experience into personal improvement. Awareness, introspection, and honesty do that and it’s dramatically easier to leverage those character traits with a big fat dose of humility.

I personally cherish every time someone on my team proves me wrong. It means I hired the right people. If I was wrong a significant amount of the time, I'd fail. This means, I'm almost always right (yes, I just said that). This also means I must surround myself with smart people with backbone that are capable of calling me out on my fuckups before it goes too far.

6. Lead.

A great entrepreneur, like a great leader, should inspire others into their vision. If you surround yourself with people to do your work and lighten your load, you can grow and be good. If you surround yourself with people who are more capable than you, impassion them with your vision and tie successful outcomes to their contributions, you will succeed and be great.

Leading is a hard thing to teach. I attempt to reflect on every action I do and ask myself if it will inspire those around me. Sadly, the answer to that is "no" more often than I'd like. Still, I try hard and those around me see that effort.

That's it: take a deep breath, calm down, work your ass off, appreciate your loved ones, take risks, be humble, and lead on to greatness.

Open plan offices are bad. Breaking my concentration is wasteful. You hired me to code, so don't interrupt me. I keep reading statements like this and feel compelled to supply a counterpoint. It isn't that these are lies, it is that the are immature perspectives on a complex set of circumstances that clearly only represent a certain type of coder. In fact, I'll claim that "coder" is either junior or selfish or both: immature. While I procede to wax on the subject, keep in mind that this is another perspective. This perspective is, of course, the right perspective...

The mental tear-harness

I've been sitting at this table for about 30 minutes. A puzzle lay before me. It is quite fantastic. It is a picture of little chocolate bars; all kinds. Basically a the ridiculous mashup between episodes of "Children Gone Wild - Halloween" and "Hoarders." This puzzle is 3000 pieces; not so small. It's been sitting here for seven days and we're about half way through. The pace starts picking up around the halfway point.

"Did Zoe finish her homework?" my wife asks me. It just sounds like background noise; I'm in the zone. "Hey, Theo! Did Zoe finish her homework?" I snap back to reality. My concetration broken. I blink twice. "Um... yes. She's upstairs reading now."

I look around the room and realize there are still lights on the long unoccupied playroom adjecent to me. I get up and struggle to walk erect the ten feet that will carry me to the light switch. It kinda sucks getting older. How long had I been sitting in puzzle zone anwyay? I look around the playroom; surprisingly clean given I don't remember any yelling involved prior to their ascension to nocturnal activities. I turn to leave the room flipping the light switch off and extinguishing the picturesqe portrait of childhood jollity without much thought. Ambling back toward the table dominated by the human-created mental tear-harness, I see the puzzle from a new angle. Of course, this is the angle I always first take in, but every time I see the puzzle from this angle it feels new.

"Shit," I think to myself. That piece goes there, and that one there. I'd been looking at this other section wrong and thus been wasting my time searching for pieces in poorly constructed mental image that simply never existed as I had imagined them.

What happened?

I had been sitting at that puzzle making decent progress, but a refresh perspective was simply invaluable. 折伏. Also, you'll note that I didn't tell my wife to go fuck herself. Perhaps I have an odd marriage and that isn't so normal, but I allowed that interruption without fallout because I trust here; she's on my team.

And that, after all, is the point. It's about team. I make money and I could argue that my wife married me to make money... she interrupts my money making to ask me to clean my dishes, or take the kids to school or simply help her out, I could remind her of that... but then I'd be a prick (and likely not be married much longer). My wife married me to start a super team to build super things. Together we've built three daughters. While we've been married I could say I've built four amazing companies. Again, I'd be a prick. The companies in question were built teams; teams I've helped build and ultimately had the privilege of working on.

How does this apply to coding?

Most coding today is actually part of a software engineering effort. An effort that should ultimately result in a product. A product that isn't a masturbatory demonstration of your coding skills, but rather one that delivers on promises around all of quality, budget and time. Additionally, a product that requires far more than your sole efforts: a team effort.

I'll take this fleeting opportunity to remind you that your team isn't just engineers. Your team is everyone responsible for delivering a product to customers: product management, marketing, sales and business development, engineering, operations, customer support, and many others. No matter how awesomely complex or challenging your current puzzle is, it is but a piece in a large puzzle.

Our job as a team is to reinforce each other and make each other more productive. While I attempt to conquer some of the engineering tasks (as well as legal tasks, and human resource tasks) I face, I need concentration and it world certainly help to not be interrupted. I used to think I needed those times of required solitute pretty much all the time. It turns out that I have added far more productivity by enabling my teams than I have personally lost due to interruptions, even when it was inconvenient and frustrating. So much so that I've learned to cherish those interruptions in the hope that, on serendipitous occasion, they turn into a swift, sprititual kick to the head. After all, sometimes all you need for a fresh persective is to turn out the light in the next room; and, of course, to not have avoided the circumstance that brought you to do it.

In the beginning I stated this was the right perspective; it is. The other perspective is not the wrong perspective, it is the left. Find balance.

Let's start off with some basics:

  • I understand open source licensing very well.
  • I write a lot of code and have released code under myriad licenses.
  • I understand the value of licensing software.
  • I respect the authorship of code.
  • I fucking hate talking about licensing and arguing over violations.

Recently, I was harassed over GPLv2 licensing issues. It went entirely wrong, but it had a profoundly good impact on the project. All is well that ends well, I suppose. Scratch that, my time was wasted and I'm still quite irritable about the whole thing.

While I understand open source licensing quite well, I also understand that at the end of the day my opinion matters less than that of a judge. A judge who likely knows very little about how computers or code work. Licensing issues are really just a 10th ring of hell.

What happened.

A rights holder told me that I couldn't release my code under both the BSD and the GPL licenses as they are not compatible. My code, my rules. Your code, your rules. These are, after all, copyright issues. If I have the sole copyright, I can put it under any license or licenses I wish. The copyright holders of today's countless dual (or even tri) licensed software products would agree.

While they insisted that what I was doing wasn't kosher. I asked a simple question: "What clause or clauses of the GPLv2 am I violating and by what action?" With the answer to that question, I promised to fix the problem. Hours of back and forth, still no answer to that question. This is why I call it harassment (wasting my time with empty claims); I'll note there was no hostility on either side... everyone was professional. At some point I decided that the discussion itself was a tax I couldn't afford.

Getting more concrete.

One of Reconnoiter's programs (the IEP system that turns metrics into alerts) is written in Java and is resposible for analyzing data streams and alerting on undesired behavior. The code for this was released under the GPLv2... and the three-clause BSD. The code (at least some of it) leverages a pretty fantastic event processing engine called Esper.

Esper is released under the terms of the GPLv2. So while one can certainly argue, I'm going to simply state that if I ship a program written in Java and I ship Esper with it and Esper's code is called in any way (including via subclassing), the code that powers that program must also be distributed under the terms of the GPLv2. Great, it was.

Now, why would the code also be licensed under the terms of the modified BSD? The answer is simple and all about open source and the Maker's mission. Any open source code I use, I like to be able to use for purposes that may deviate from the licensor's original intentions.

This system's code was also licensed such that I could take that code, and gut the Esper integration (say for performance and scalability reasons) and replace it with something else. By gutting the Esper code, I no longer ship Esper or derive any parts of my program from Esper... freeing me from the terms of the GPLv2 that accompanied it. It should be obivous: by eliminating the software component from the stack, you eliminate any licensing terms that accompany it.

What's next.

I'm here to build systems. I open source almost all the code I write. People use that code to build entire businesses. The GPLv2 simply sucks (don't get me started on the GPLv3 or AGPL). I've wasted so much valuable time "discussing" whether various projects are compliant with the terms of GPLv2. While we at Circonus freed ourselves from that issue long ago in our event processing system (by gutting Esper and using something custom), I just felt like the rest of the Reconnoiter user base are left in the same shitty position we were... no more.

I took two days out of my busy schedule last week to completely gut Esper from Reconnoiter. All the code that leveraged Esper has been (trivially) rewritten to leverage Riemann. All the new code is furthermore available under the three-clause BSD. Reimann has a vibrant community that are trying to solve the same problems as the Reconnoiter community; it's a damn good fit. I hope to have a future blog post to expound upon all the awesome that this effort brought to both communities. Hat tip to Kyle Kingsbury for all the pointers!

Right now, I think I just need to go to the pub.

P.S. anyone know where I can get GPL urinal cakes?

The seemingly endless stream of misinterpretations of what free speech actually affords you as a citizen in the United States just keeps on flowing.

It wasn’t until I asked him if he’d heard of free speech that the tone changed.

I presume this happened in Europe and while laws are different there I still get very tired of a "free speech" claim as carte blanche to ridiculue, defame and denounce entities by which you otherwise expect to be serviced. To be clear, I think the airline took a horrible approach to the problem... herein I'm only addressing the the claim that free speech somehow frees one from consequences.

Flying (at least in the United States) is not a right. These are private companies providing private carriage services. It is true that we have a lot of protections to make sure that people aren't unfairly denied service and I think they are a very good thing. Specifically, a business can't deny you service because you are white or black, from the United Kingdom, or athiest or Catholic or Muslim.

... full and equal enjoyment of the goods, services, facilities, privileges, advantages, and accommodations of any place of public accommodation, without discrimination or segregation on the ground of race, color, religion, or national origin.

Federal Civil Rights Act

Furthermore, we've identified a set of protected classes against which businesses are disallowed to discriminate. All good.

Outside of this, a private business has the right to deny service based on pretty much anything else. For example, if you curse... Cursing isn't a protected class.

Businesses (at least the good ones) want to provide value to customers and take money off the table for doing so. The really good ones want to provide more value to customers than they get in monetary recompense as it builds loyalty and market advantages (and perhaps a better world to live in).

If I know I can't service a customer and they are going to be unhappy, I would prefer to not take their money off the table and simply leave it at that. I have no desire to provide a service and take money from a customer that will not realize the value of the service. I have limited supply and I'd like to "lose" that customer and replace them with one to which I stand to provide more value.

So, how do you determine if a customer finds you services or product to be of poor value? The easiest way is to hear them say it... perhaps on Twitter. In this great country you have the right (within some reasonable limits) to say whatever you like, but let's all stop pretending that your actions don't have consequences. If you're on private property or being serviced by a private entity, that entity has a lot of rights as well; one of which is (within some reasonable limits) telling you to fuck off. After all, being a "Twitter Bitch" isn't a protected class.

All that said, this guy already had a ticket. That ticket comes with a contract. One's right to free speech isn't really relevant here. The question is who stands to be in breach of contract at the end of this interlude. If the contract says you can't complain on Twitter, then not letting you board the plane seems perfectly reasonable. On the other hand, (which I'm sure is the case) the airline should get its act together. Regardless, it should be well within the rights of the airline refuse future service.

I have run several successful businesses and I've elected to not do business with certain people on numerous occasions. As a business owner/operator you should strive to find the right customer and love them until it hurts by putting more on the table than you take off. That said, never confuse a company choosing to love you as an obligation to love you.

As civil liberties began a steady state of erosion since the Patriot Act, many other countries have followed suit sacrificing the liberties of their people for an unquantifiable increase in level of safety. It makes me ill to think about.

One of the common claims I recurrently hear is: "Law abiding citizens should have nothing to fear." This argument is so sad and short-sighted.

I am a law abiding citizen... today. Our governments can make new laws and there is certainly no reason for us to believe they would necessarily match our respective moral compasses. When they do not align, we have decisions to make. Those decisions should not result in the erosion of civil liberties. Namely, a protest by the people is not (nor ever will be) terrorism. We should never grant our government the ability to change the process by which it resolves disagreements with its people. It should always remain a process of the people. Statements like the above cross the line between building a society that protects its liberties and building a cage from which its people cannot escape.

I very rarely consider the "founding fathers" of the United States as they lived in a different time, in a different world with different risks and threats. There should be no reasonable expectation that their perspectives would remain unaltered given the influence of subsequent American history. However, there is on basic sentiment that haunts me... the one that resonates with me is regarding the value of liberty. It was more valuable than life.

"Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety. - Benjamin Franklin

Business is king. Customers rule. Service is everything. Yet every organization I go into has an engineering group that can't see outside their bubble. Perhaps they can, but they certainly choose not to.

I'm an engineer, I write code. I've written approaching 100k lines of C code in my life time, I've administered tens of thousands of systems in my career and I've help plan some of the largest customer-facing infrastructure ever built. I've learned a tremendous amount about technology and the hubristic nature of engineering teams. The most important take away from all of this? The technology doesn't mean anything unless it enables business by providing better service to customers.

Now, I realize that when I rant about this to technology folk, they emphatically agree. But, I'm tired of the lip service. People today in architecture, engineering and operations say again and again that their focus on enabling better customer experience. It's a nice sentiment, but every time I dive into someone's instrumentation and monitoring, I see an absolute vacuum when it comes to non-IT data.

The obvious things like financial and customer service metrics are missing, but so are all the more subtle things. Hiring is hard; finding and retaining talent is challenging; providing good benefits that add value and increase job appeal is a competitive task. All of these things are critically important to the organization as a whole (and specifically engineering and IT) and yet they are completely absent from the "monitoring" within the organization.

The truth is that there is absolutely critical telemetry coming from every facet of your organization. All of this telemetry is either directly related to providing better service to customers or directly related to providing better service to your organization itself which, in turn, stabilizes the platform on which you deliver products and services. Of this, I shouldn't have to convince you and I find that no convincing of the general population is required. Yet, here we are with almost every organization I see standing blind to this vital information.

Don't get me wrong, I don't think technology isn't a first-class component of today's (and tomorrow's) organizations. In fact, I think the technology group has been applying radically advanced techniques to telemetry data for years. It's high time that these techniques and tools were applied to the organization unabridged.

There is a profound shift in data transparency and accountability coming to the organization to tomorrow. If you don't buy in, you'll simply fail to achieve the agility and efficiencies of your competition. I'm here, with Circonus, to make that happen.

Business is king, not engineering. The difficult (but exceptionally simple) shift of engineering's focus from serving itself to serving the business as a whole will remake IT as the engine of the organization. As soon as you embrace this shift, technology will be the most powerful tool your organization has at its disposal.

Copyright © 2013 - Theo Schlossnagle - Powered by Hexo
- Ported theme GreyShade -