00:28:52 video length
Bio Rod is SVP, Middleware and GM of the SpringSource division at VMware. Spring was based on the code published with Rod's best-selling "Expert One-on-One J2EE Design and Development"(2002). Rod is a member of the Java Community Process (JCP) Executive Committee (EC) and holds a BA with Honors in Computer Science, Mathematics and Musicology as well as a Phd from the University of Sydney.
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community.QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.
I think that to succeed in a startup you really have to have a great deal of tolerance and forbearance and I think you really need to have that tolerance and forbearance extended to your family because, for example, you are probably going to spend less time with your husband or wife, you are going to spend less time with your kids, you are going to spend less time with your friends. So one thing that is important and quite honest, I think, to be aware of upfront is this pain is going to be extended far beyond you. So it’s not merely a question of how much pain you can personally cope with, it’s how much pain you are willing to inflict on those nearest and dearest. I think looking back at, for us the hardest things, most painful things were there was a period that I remember for about 5 weeks working literally, not exaggerating literally, 7 days a week, 17 hours a day and that is pretty intense.
I mean that basically leaves no room for anything except work, eat and sleep. Also I think some of the things that were painful were realistically having to go backwards in our mortgage, because you are going through a period of months without taking anything out of the business.
How do we keep going? I think the biggest thing that keeps you going is conviction, the fact that you believe that what you are doing is not only eventually going to hopefully be profitable, but is actually worth doing, that it’s something that is really going in some little way to make the world a better place. I think that is pretty important. At least it was for me.
I think you need to have a core mission that is clear and everyone understands. I mean in our case basically from the beginning it has been simplifying enterprise Java. That is as true today as it was back when we founded the company in 2004.
I am not a great believer in designing the kind of paragraphs of mission statements by committee that you see in many organizations, but I think there has to be something that is very simple at a high level that everyone agrees. This is what we do and hopefully this is a good thing to do, I mean it benefits people if you do that.
I think one thing to bear in mind is that there are more fish in the sea. So the first thing to bear in mind is that if you are any good as an entrepreneur as you said, you will have lots of ideas. So you have to be prepared to ask tough questions about your ideas because if you spot a flaw, move on, there are other fish in the sea.
I think how to decide whether or not a particular idea is worthwhile, really to certainly have a disruptive and highly successful business, you have to have seen something that other people don’t see. Broadly speaking, if you think you see things that other people don’t see, you are not in my providence, you are in the providence of my wife who is a psychiatrist. You are seeing a radically different perception of reality from other people, broadly speaking is not a good or a healthy thing.
But nevertheless it may well be, for example, within the case of a business area, the incumbent, such as maybe large companies, have screwed up. I mean a great example of this which brought us to success with Spring and SpringSource, was the fact that Sun and the other companies in the J2EE specifications made an absolute dogs breakfast of it and it was absurdly complex. So essentially because that was so messed up it created a real opportunity to come in and simplify it. So you have to validate whether or not you are actually are seeing something that other people don’t see and possibly one of the most likely scenarios is that the incumbents are making things very complex and you can come along with a fresh, clean approach and not really have all the same baggage to carry with you that they are carrying with them.
Do be very skeptical, because there is a high probability that your first idea, maybe there is a reason no one thinks you can solve it that way.
I think that you have to apply exactly the same techniques as modern programmers apply.
Typically, when we write software these days we adopt test driven development and we write test cases that try to break our code ideally before we’ve even written it. In the case of the business IDE you can’t really test it before you’ve had the ideas, so you can’t go quite as radically, but what you really need to do is before you’ve made too much investment, emotionally or in any other way, ask the tough questions. Because you should really don’t want to find out that there is some basic flaw when you’ve brought on employees, when you’ve sacrificed income, you want to find that upfront. So really make an effort to try to find the flaws in your ideas as soon as possible. I think there is, certainly for me and for many other entrepreneurs I know, a natural tendency to not ask searching questions, like this idea seems really attractive and you don’t kind of want to really face up to the harsh realities and facts and you want to spot them as early as possible.
One thing I think that you really need to be careful of as well, if particularly if you, like me, are a programmer, is don’t get carried away writing code. Typically in my experience anyone who is a good programmer is pretty passionate about it, love writing code, get addicted to the process of writing code, fell pretty good about their code basis. As soon as you get down that path you are not thinking straight anymore and now you are increasing your emotional investment, you are having lots of fun writing interesting code and you are no longer in a place mentally where you are going to be trying to find some reason that you shouldn’t write that code. That has been a BIG lesson for me that the quicker I get to coding, the longer it takes me to ask the kind of questions I should ask upfront.
I think you really need to travel through the valley of skepticism and disbelief and really get to a firm conviction and passion and deep belief. If you’ve really asked the questions that you feel need to be asked and it came out, now is no time for skepticism, now is the time when you have to be all in and you’ve really got to double down your passion and commitment so that you can execute. And you need to have that degree of passion and belief in the team. I mean you will not succeed, if you’ve got any key members who really have doubts about your mission because coming back to the pain point you can’t cope with the pain unless you’ve got that passion and belief behind you.
So I think that once you’ve really decided that what you are doing is viable you’ve got to make a really strong commitment. One thing that is important to me is something that I referred to in my talk as the moral dimension.
Something that made it easier for me to get through the challenging times is that I firmly believe that what we were doing was good. Sure, the primary motivation for what we were doing was to advance our technology that we cared about and potentially make money, but there was something deeper than that as well and that was that we genuinely believe that our technology made people more successful. And of course we kept getting data points to support that from the users and costumers. That actually is a very helpful thing because it means that it’s not like just showing up at the office every day, hoping you’d make a bit of money, it’s like there is a reason that is really good that somebody is making this effort.
Firstly, hopefully at this point you are right. You’ve got something that is working for you in that you haven’t been able to find flaws in your idea, so it’s presumably somewhat compelling.
You’ve got to be persuasive and I don’t think anyone is going to succeed as a founder if they are unable to influence people because you have got to be able to influence your team, you’ve got to be able to influence costumers. You really need to have communication skills and you need to be able to persuade and influence people.
If you don’t have those personality qualities, go find somebody is going to have those personality qualities and complement you. Maybe you are technically brilliant and you can solve these hard problems but you are impatient of explaining them; go find someone who is great at the explanation and they would go on and inspire people as to why they should follow your technical vision.
I think you also frankly need to put a lot of effort into distilling the message, like when I look for example at some of the entrepreneurs and founders that I respect. Some of the ones that impress me are the people who have the ability to explain a story at pretty much any level. A good example of that is actually Mik Kirsten of Tasktop. Mik is great at taking the story and explaining it to either a very technical audience or potentially to a business audience and I think that ability to slice and dice your message for a particular audience is very important.
Actually let me first start by talking about the things that I got to give up that I sucked at and that actually helped make us more successful. I am not the best person on doing financial planning or operational management of sales teams or anything like that and it was better for the company that I was able to get people to take on those responsibilities and those people were actually able to do a good job.
As we went on the increasing specialization was a good thing. Although the first years of starting your company are like when your kids are babies, they are very satisfying, they are also kind of intense and overwhelming and as time went on and there was more specialization I actually probably did often spend a higher percentage of the time doing things that I found were fun.
I really enjoy negotiation, I really like that part, I enjoy talking to the costumers. I was quite happy talking to investors and the board and I also am very happy when I am spending a lot of time thinking about strategic issues. So essentially I got to spend more time thinking about strategy as time went on than I did at the beginning when I am still mired in dealing with, for example in the UK, putting in the monthly or quarterly tax returns which I used to be the person to do that along with our accountant. I think the specialization definitely helps over time. There were some things that I ceased to get to do that I enjoyed, probably the biggest thing was at the beginning I would spend much of my time writing code, either for clients whom we were consulting for or in terms of Spring itself. These days I can go periods of months without coding and then I will typically have a binge of coding.
It was not for nothing that I mentioned that addiction analogy before, it’s like when I start coding I can’t easily stop so typically I will have a week long binge of coding. I really do miss the fact that realistically my day is heavily spent reviewing stuff and talking to people. For the most part I enjoy that, but I would like to have more undistracted time for coding and as time went on that clearly was not the right thing for the business.
It’s fair to say that over time I ended up spending more of my time doing the things that I was best at. For example the impact of me not writing code daily on Spring, in reality isn’t that great, because Juergen [Hoeller] is a better coder than I am. Anyway, we have some other fantastically talented people. We were able to transition that level of responsibility whereas where I add more value is kind of the high level direction and I am still involved in that, and also the communication stuff that people like. I think there are many things that I do that I do that Juergen just wouldn’t like doing.
That is a really interesting question. Firstly I think it’s very important to be ambitious, so one of the things I think most successful entrepreneurs have, is whenever they succeed in one thing they are looking at the next thing. So we started off thinking of it first, Spring was basically a layer on top of an EE [Java Enterprise Edition] server and then over time it was: "Why don’t we just go and simplify the server as well?" Now of course it’s: "Really, what about let’s look at a PaaS solution and make platform as a service well integrated without tooling". So constantly that vision has expanded to the next thing and I think that is a really important thing to do.
It is REALLY, REALLY hard to decide not to do things. One of the biggest killers of companies is trying to do too much. If you try to take on too many things you will assuredly fail, even if every one of those things is a good thing to do. It is incredibly hard to realize that a particular thing is a good idea, but you are not going to do it. We look at a couple of things that we historically haven’t done that could have been sensible things to do. Spring Security - we have probably made a small amount of money like a few hundred thousand dollars directly out of Spring Security in all of history so it’s been insignificant in terms of our revenue. Yet, you could pretty clearly take Spring Security, have consulting, software products around that and create a business around that.
Another example is Spring Batch. Particularly now with GemFire we could do a batch server that could be very compelling and it’s possible we may still do those things, but they are examples of things that we’ve looked at over the time and thought: "We probably don’t want to take this on in addition to the other things."
I think the biggest way to decide frankly if you are trading off business priorities is do the boring stuff like, look at the total addressable market, go and talk to costumers, figure out what they will pay for. You really need to be guided by what the revenue is like likely to be, and make sure you don’t just do something just because it’s cool.
It’s very easy to choose to do technology things because they are cool. I mean the example for us with that was DM Server. If we’d dug deeper from the get-go we would have realized that it wasn’t a great technology for the mainstream, it was a technology that offered a lot of value to a particular niche. But if we’d actually sat down and really looked harder at the total addressable market for that product we wouldn’t have spent nearly as much on developing it as we did.
I guess that was motivated by a couple of things, one is I told a couple of really sad stories and the keynote from other people of how they really made significant financial losses through lack of knowledge, lack of planning around what really seemed like pretty boring, mundane company structure stuff. One thing to bear in mind is that as soon as you have a business, restructuring that business is immensely complex and the primary reason for that is tax. If you’ve got a business that is worth something, any kind of restructuring or cleanup you do is going to be really hard and really expensive. In our case we had a pretty messy structure that span multiple countries and we are already had significant revenue. So when we finally cleaned all of that up it was probably the best part of $200,000 in legal and tax planning phase to make sure we did that in a completely correct manner.
We could have headed that off from the get-go. If I had my time over again, I would have set up a Delaware company from the beginning and we simply would not have had those issues. I think the international element is really complex and I think it’s going to become more and more common with open-source and distributed teams and that adds a lot of complexity in terms of setting up companies. I think also having a high level of trust amongst the founders is important. I mean one of the reasons that we could get through that restructuring is we had a very high level of trust as a group and no one in that group was trying to take advantage of anyone else. I have seen pretty nasty stories where you need one bad apple and suddenly it becomes terribly acrimonious. So partly that is making sure that you have the right kind of people in your team to start off with.
Team building is fundamentally about building a complementary skillset. At the very beginning we had people like Juergen [Hoeller] who was the other Spring guy from pretty much the very beginning. Then some of the next group of people were people that I reached out to, people like Colin Sampleanu who I approached to become the Spring committer after he was getting involved in the forums and also Adrian Collier whom we headhunted somewhat later from IBM. It really started the transition after a while in terms of looking at people who had complementary skills and of course as we built out the business we brought on first Neelan Choksi as COO and later as COO Rob Bearden. That was very much about getting people with a skillset that was complementary to what we already had, and enriched the company as a whole. Everyone has strengths and weaknesses, I’ve yet to meetanybody who has the perfect overall package.
One of the best things you can do in the startup is as a founder know what you are good and bad at, have confidence in what you are good at and do more of it and at things you are bad at make sure you complement yourself because otherwise you will mess up sooner or later.
Another thing, to be honest, that I think I learned on the job over the last few years (and this really only matters when you start to hit those inflection points like 25 and 150 people), organizational structure REALLY matters. It is astonishing the difference in quality of output you can get you if you have the same people in the right roles. If you have someone in the right role versus in the wrong role they will perform better, they will be happier, you will get a far better result. I have to say at the beginning I didn’t think a great deal about organizational structure, now I think quite a lot about that and I think that it is really a key element in getting more out of people and making them more satisfied.
There are different philosophies of management. I think that my personal preference is to give people fairly clear people responsibility and give them a lot of autonomy in terms of how they deliver that. I think it’s also pretty important to be upfront about your organizational strategy. For example, if your philosophy is empowering people make sure they understand it, otherwise you might have people who have been used to being more micromanaged to a standing back not being as proactive.
We haven’t got to the end yet. I have to say I spent surprisingly perhaps little time on retrospectives because I am still pretty busy taking Spring and SpringSource forward. When I do look back I feel pretty happy about it, I feel really privileged to have built the team that we have and that is probably one of the most satisfying things and I also feel proud around the technology. Certainly when you look back you tend to blot out the more traumatic things. I spend a lot of time remembering: those 5 weeks of 17 hours a day really wasn’t a lot of fun. So maybe memory becomes more selective over time.
VMware is rapidly growing successful company, so there is still economic incentive. I am not going to say that it’s not about money anymore.
The biggest thing really I think has driven me all along is realizing the vision. If you look at how much simpler we can make it, now for me that involves linking up the developer desktop with SpringSource tools suite, Spring Roo, Grails through to code-to-cloud for managing developer artifacts in the cloud, through to cloud deployment.
I think a lot of the things you will see coming out from VM Ware over the next 2 or3 months will really show some of the things we’ve been looking on and it’s trying to make it simpler, trying to make people more productive and hopefully enable developers to spend less time doing tedious distracting stuff and more time delivering business value. As I said, it’s the core mission, we are still trying to further that core mission.
14. Final thoughts?
I think that regardless of whether people want to do a startup, I think there are a lot of lessons of startups that are relevant to people’s careers. Everyone, as I said in my talk, is in business. It doesn’t matter if you are a permanent employee, your business is you and there is no such thing as a job for life anymore. Fundamentally, if your business is you, you should be thinking in terms just as a business would: "Where do I invest to make me more valuable?" or alternatively "How do I capitalize on the investments that I’ve made in me?" There are a lot of similar opportunities. I mean starting a business is a very risky thing, it’s a very intense thing, it is simply not right for a lot of people. You can enjoy many of the similar benefits in terms of having interesting stuff to do even if you don’t take that level of risk, but you need to think in terms of that long term strategy, I mean you have to have a strategy for managing your career.