Apps I've been using this year

I think the software we use informs how we think. It's important that you use awesome software that makes it easy to get what you want to do done and get out of your way. Here's what I've been using in 2011 so far:

Web apps

Quietwrite

I like Quietwrite because it is a dead simple web based text editor that leaves off a lot of the chrome. Emmett and I actually wrote something pretty similar we called Scratchtop a couple years ago, but didn't maintain it and let it expire. With Quietwrite, all you see is a field for your title, and one for your post's body -- as soon as you start typing the header disappears, leaving you to type in peace -- this is critical. I find that I write most of my writing in Quietwrite instead of Textmate (which doesn't sync to web, meaning that I can't finish up posts on other computers) or Google Docs (which is too heavy weight for writing which doesn't require a lot of formatting). Also, Quietwrite has a dead simple sign up process that allows you to start writing before even creating an account.

My one wish: right now the header fades when you start typing, only to reappear when you move the mouse. It should only reappear if you move your mouse to the top of the screen, where the header is, so that you aren't pulled out of the zone if you just want to select some text in your post.

 

 

Workflowy

Workflowy is a to do list that lets you get as many levels deep as you want. You can also zoom to different levels, effectively creating multiple to do lists embedded in one big mega list. This is cool - it is incrementally better than Gmail lists, which I was using before, because I can put everything I am thinking about into one big list (personal errands, Justin.tv projects, blog ideas) and easily get between all of those ideas. They even have an awesome export function to allow me to copy and paste those lists into emails (which I do often, to communicate a task list I'd previously brainstormed to a team mate).

My one wish: collaboration on subsections of your list with team mates. I want this because I want to be able to track other people's work if they are responsible for some of the tasks. This doesn't have to be a complicated tracking / ticketing system -- I like the simplicity of just having two states in Workflowy (not done and done).

 

PivotalTracker

We've been using PivotalTracker for about a year inside Justin.tv now. For those who haven't heard about it, PivotalTracker is a project management tool for software projects that let's you easily organize tasks around releases. Previously we had used Trac and later Fogbugz. PivotalTracker is best for my needs for one simple reason -- you can keep an ordered list (this feature is surprisingly absent from other similar software). Added benefits include the ability to easily create tickets from the main project view, and very simple at-a-glance tracking of the project (because there is only one main project view).

My one wish: keyboard shortcuts to create new tickets. It would let me enter things so much faster...

 

Google Docs

Of course, we use Google Docs for most of our documents at JTV. Lighter weight than any desktop software, easy to use from anywhere, and so much easier to search through documents than storing Word docs in a folder. Really needs no introduction from me...

My one wish: Why does Google Docs allow browser zoom if it is going to break the interface? Incredibly irritating as I keep accidentally pinching-to-zoom and as far as I can tell you can't disable this in OSX. That's not really Google's fault, but the effect is horrible as it takes forever to the browser (Chrome) to render the app at the new zoom level, and then you have adjust back and wait again. 

 

iPhone apps

Instagram

Love Instagram, a quirky app for sharing photos with vintage filter effects applied to them. However, I find that the killer feature here is that it allows me to share photos on both Facebook and Twitter faster than any other app. Filters were cool but have basically lost their appeal to me.

My one wish: Sharing to both a Facebook account and a Facebook Page at the same time (currently you can only do one or the other).

 

Beluga

The breakaway app of 2011 in my opinion. Beluga is amazing at organizing group activities, and it is incredibly viral. You can create a group (called a pod) and add people to it who on the app, or whom you just have a phone number for. Those people then will start getting any message sent to the group (by SMS if they don't have the app, push notification if they do). Beluga makes it incredibly simple to create a group with a bunch of friends and just see if anyone is interested in doing something (I use it to organize pretty much everything from company trips to poker nights). Beluga has literally changed how I plan and find out about social activities; I was actually sad that Facebook bought them last month -- I'm afraid that the acquisition will kill the innovation and active development on the Beluga app.

My one wish: when someone quits your pod it sends everyone in the group a message. When an activity is over, you get a ton of people quitting the group. The messages get annoying after a while.

 

Socialcam

Obviously you should take this with a grain of salt, as I work on it, but I really love using our new app Socialcam. Socialcam is great because it has changed the way my friends and I use video -- we take actually use it now. Pre-Socialcam, I only took a few videos, and when I wanted to share them I generally just queued it up on my iPhone and handed it to someone. Now, I find it is easier to just take a video and either put it on Twitter / Facebook or send it out via an email (a good tool for making parents feel loved when you are off in Hawaii I've recently discovered). Consequently, I've been taking a lot more video and am excited to share it with friends now, and also to have all this video in the future.

My one wish: I've actually got a lot of improvements I want to see in Socialcam, the first of which is much easier sharing. Don't worry, we're working on it :).

 

Hootsuite

I was trying to find client to post to both Twitter and Facebook and Emmett recommended Hootsuite to me (having actually never used it himself). I downloaded it and it was awesome: simple, allows posting to both, link shortening, and status scheduling. As I've been using social media a lot more recently, I've found Hootsuite to be critical in my efforts. Unfortunately, I have some sort of mental block in saying the name properly -- I always want to pronounce it "hoot-suit."

My one wish: Something went wrong when I tried to add multiple Twitter accounts. It was too much trouble to figure out what, but eventually I'd like to. 

---

Overall it seems that I generally use web apps for work related writing and organization, and mobile apps for media creation and social activities. I guess that makes sense, as I'm generally behind a computer when working, and on my phone (or at least with my phone) when I'm out and about.

Management Lessons the Hard Way

A lifetime ago in a galaxy far, far away my cofounder Michael came to me and gave me an intervention. We had a problem, he said, employees were unhappy. People were getting burned out and there was an increasing rate of attrition. "What do you want from me?" I replied exasperated, as our conversation became heated. But he didn't have any answer, outside of seeing the symptoms of something deeply wrong.

As our most important conversations typically go, I eventually got over my wounded ego and realized that he had a key insight here. The things he mentioned were serious and indicative of a lack of leadership that was caused as much by the things we weren't doing as were doing. We had created the startup equivalent of Lord of the Flies, complete with new employees getting thrown into a foreign environment they are completely unequipped to survive in and then getting bashed in the head with a rock. We the founders had operated the company with little direct management for years, under the pretense that we were empowering employees by letting them work on things they wanted to do. In reality, we were often stepping back just enough to been seen out of the eye's periphery, often to jump in without warning when things weren't following unsaid directions. Anyone who has experienced this before knows that it is liable to make you a bit twitchy.

In the next month, Kevin, our COO, talked to everyone in the company and gathered feedback that might not have been directly shared with a founder. Here's the typical project workflow, version 1:

  1. Vague problem definition: "Create an automated test suite for the website" 
  2. Employee defines it in some way that we didn't actually have in mind: "Create an extensible, Selenium based framework for performing every action a user can on the site" 
  3.  Employee works on that for a while, sometimes months, without feedback: "I'm making great progress!" 
  4. Manager checks on progress, has a "wtf" moment: "Wait, I just wanted something that pinged five URLs and checked for 500s"
  5.  Massive micromanagement ensues: "OK, clearly you don't understand what we're doing; I'm going to have to take over"
  6.  Massive employee disenchantment: "WTF just happened?"

With a lot of help from our new VP of Engineering, Chintan, we created a plan for addressing our most egregious issues. Many of the lessons we learned could probably have been prevented had we picked up a management or communication book or two. But as always, the lessons you hold dearest to heart are the ones you've learned yourself the hard way.

 

Signs you might have a problem, and that the problem might be you:

  • Employees burn out after months. Team members work increasingly less on average as they spend more time at the company.
  • Lots of people seem to be implementing projects in ways that you didn't want, or that don't meet the goals you had in mind.
  • You feel like people aren't getting anything done, even though you employ lots of people, all of whom are smarter than you and just as hard working.

 

    How to not fuck up:

     

    Empowerment doesn't mean letting everyone do whatever the fuck they want

    If you listen to words and not the meaning, a lot of startup talk seems to say that you should just get a lot of smart people together and let them do whatever they want until something sticks, and that is a recipe for success in everything (product, team happiness). This is wrong. So wrong. Creative comes from constraints and direction. For us, the hard part of this was to actually define the problems / goals we were attacking and then ruthlessly refuse projects that didn't address these. Instead, we found it so much easier to just say yes whenever someone suggested something, but then let it die later through neglect, lack of interest, on purpose, or otherwise. This is a horrible idea, because it not only communicates an utter lack of focus but it is completely and utterly opposite of honest communication, and leads to people feeling betrayed, and rightly so. Instead, you should:

     

    Provide a problem and framework, let employee figure out the solution

    At the end of the day, smart people mostly aren't motivated by money or titles in the long term. Motivators like those are like buying new possessions; after the newness wears off, so does the appeal. Daniel Pink does a great job outlining what motivates people in this video: mastery, self-direction, and purpose. In a product engineering organization, those things fit together if you provide employees with an area they can be an expert and make local decisions in, but that also fits into a larger purpose or problem. Many of the problems that we've experienced stemmed were because we sacrificed one at the expense of others; for example, allowing people to pick projects (self-direction) that didn't fit into our company goals (purpose).

     

    People want to have input. Cheer up, this is a good thing; it means they actually give a shit.

    But how do you reconcile the fact that smart knowledge workers want to have self-direction, but ultimately you have to say no to things that don't fit address the company goals? Bewilderingly enough to the average entrepreneur, it turns out that people are ok with "no." Most smart members of a team want to have input, but don't need to make every decision themselves. For us, having regular brainstorming sessions where everyone could generate ideas for a product in a given area was a good pressure valve for contributions; those ideas were then taken and curated by our product managers into a cohesive product.

     

    Having a hierarchy isn't a bad thing. Having no idea who has the final say is a bad thing.

    Because you need to stay on target and only do projects that address your goals, it is important that there be a limited number of people who are responsible for setting those goals and are responsible for certain decisions. This was a hard thing for us to grasp; in the early days of the company, we made decisions based on consensus (translation: through massive intracompany arguments). Team members didn't know who was responsible for various product decisions, and often times this lead to inconsistency and paralyzed the engineering process. At the end of the day, the egalitarian spirit in us had trouble saying "Person X is in charge of product decisions, Person Y is who you should tell if you need to take time off." But, in the end, it saves a lot of mental processing for everyone once you add these types of rules, and ultimately decisions get made in a much more fair and transparent way.

     

    Don't micromanage. You're probably not nearly as smart as you think.

    If you founded a company that's big enough to have management problems, you probably think you're a full on genius by now. Yes, to the public you might appear humble (I might as well!), but your college buddies are probably pushing paper and ticking off days to retirement while you started something that is surviving based on your sheer effort and wits alone. You've probably also been making most of the decisions yourself up until this point. Thus, while you've heard you shouldn't do it, micromanaging the team is probably tempting.

    But don't do that. In your heart, you know it is wrong. You hired smart, creative people who don't want to just color by numbers. For me, when I objectively looked back at details I had micromanaged months later it was pretty clear I hadn't been making anything better. Instead, get rid of people you don't trust enough not to micromanage. If you look around and that's everyone, then the problem is probably with your control issues.

     

    Instead, provide regular and expected points where others (management, peers, etc) get to have input / oversight, and DON'T SKIP THEM

    At the same time you are stepping back from micromanaging, you can make sure you get an opportunity for oversight by making it part of the process to have check ins where you (or others) get to give input. For Justin.tv, this meant scheduling regular spec / architecture reviews before beginning projects and code reviews at natural milestones. It is critically important that these be consistent: consistency manages employee expectations and makes your process not arbitrary.

     

    Meet regularly not just to talk about code.

    Since I'd never worked at a real job before starting a startup, I didn't understand the purpose of basic management processes. I thought meeting regularly with employees 1-on-1 without a purpose grounded in a decision that must be made was a massive waste of time. It's not. Meeting regularly just to discuss how things are going, what team members feel like they are getting out of the job, feel out potential issues, and gather feedback can give you a chance to discover brewing issues before they become massive problems. Also, it gives people the opportunity to share their ideas and feedback in a consistent environment, and let them know you care about hearing their ideas.

     

    Let the team know your motivations.

    An employee who joined the team two years into the company's history doesn't have the same motivations as the founders. Team members who are implementing one part of a strategic vision don't necessarily see the whole picture (not because they couldn't, but probably because their jobs might not afford them all the information and time needed to consider it). One simple jewel of advice given to me by one of our senior software engineers, Joseph, was that if we shared our motivations as decision makers (e.g. "We're working on this project to generate revenue in the short term, instead of infrastructure improvements because we're trying to hit a short term revenue goal of X") it helped him get understand why he was working a project, and which aspects of a project to spend time thinking about improving. In previous eras, we had asked ourselves why employees weren't coming up with ideas that were in line with things we wanted to do. Turns out it was because we weren't explaining what we wanted to do. When we started doing so, it turns out most of our best ideas started coming from people who weren't the founders.

     

    Communicate assertively.

    A more general version of letting your motivations be known is just generally communicating assertively. When I first started managing people I was not explicit about expectations or deadlines. This was because I was scared about imposing my demands on others. Unfortunately, this leads to you being upset because things you took for granted (product questions, timelines, etc) weren't actually explicitly communicated and thus weren't followed. You can change this pattern by taking the time to communicate effectively. This is one of my favorite books on the subject of communication.

     

    Your job as a manager is to provide leverage for other team members, not do work yourself. 

    For me, there is a massive temptation to program things myself. I like programming. But once you become a manager you must resist this temptation.

    There are people whom I manage who can get programming tasks done 10x as quickly as I can. Efficient allocation of resources dictates that I should not be programming; if I can provide 10% more productivity by boosting said programmers output (say, by removing communication blocking time or better defining a spec) then I have already made back 100% of my time if I were to spend it programming myself. If I do this for everyone on the team we are all better off than had I just been programming. This is the comparative advantage that comes with specialization: management bandwidth is a product, even though it might not feel like it.

    ------

    I am clearly not a management savant. I like to think that I'm good with people, but I know I'm not amazing. I don't particularly love management, except as an instrumental tool to creating a cohesive, productive team that makes great products. Doing many of the things I've listed above, particularly remembering to do them consistently, has been difficult for me to adapt to. Often, I would forget what management tasks I was supposed to do and focus instead on something I shouldn't have been doing. In order to make sure to do things consistently, I found myself following the advice that I should create a checklist of things to do ("Is anyone blocked on anything?", "Do any meetings need to be scheduled?", etc); one for the beginning and one for the end of the day, and follow it religiously. It is still on some days a struggle.

    Writing this essay has been cathartic, because it is the truth. I owe a great debt of thanks to Chintan, who had the unpleasant job of dragging me kicking and screaming through the coals to becoming a decent team leader, which I resisted the entire way; my cofounders, who supported the plans we came up with and had faith I could figure some of these things out; and most importantly the employees who had to put up with our extremely poor management prior to many of the realizations we had as the company's leaders, pretty much all of whom forgave our faults. Without all of these people, I wouldn't have made progress becoming a better team leader. But vastly more importantly, without them I wouldn't have grown into the person I want to be.

    How to build a great mobile development team

    It doesn't take any massive insight to see that the mobile industry is heating up. Mobile gaming companies are getting acquired, mobile media sharing companies are taking down massive funding rounds. With the excitement, there has been a massive demand for talented engineers to write apps for iOS and Android, which are currently extremely under supplied in the market. Scrolling through my list of gtalk contacts, about 1/3 of them have referral links to their startups for "great mobile developers."

    Despite the difficulty hiring great mobile engineers, I feel confident saying that we have an amazing mobile team at JTV. We released our first app for iPhone exactly a year ago. Since then, our mobile apps have collectively been downloaded over 4 million times across Android and iPhone. Recently, we released Socialcam for Android and iPhone which were built on both platforms in just under 2 months from start to finish.

    How did we go from a company with no mobile experience to one with thriving mobile apps in just a year? At first, we gave a half-hearted try at recruiting mobile devs with experience. Unfortunately, we quickly learned that they were few and far between, and all working on their own projects! In the meanwhile, the mobile ecosystem was heating up and we desperately wanted to get into the space and plant a flag in mobile video. What in heaven's name were we to do?!

    We ended up taking the approach we have always taken at JTV to solve every problem: we hired or repurposed smart engineers to work on our mobile apps who didn't necessarily have a ton (read: any) experience. Our philosophy has always been to hire talented engineers with strong programming backgrounds and let them work on areas of the company they are interested in, regardless of domain experience. Subsequently, we grew our mobile teams to 2 iOS engineers, 1 Android engineer, and 1 mobile product designer. 

    Mobile development isn't rocket science. For the most part it isn't even computer science. What we discovered while building a web company is that web development isn't a dark art; talented programmers can figure it out easily. The same is true of mobile platforms. Find some smart hackers and start hacking.

    If you want to work on great mobile apps, we're hiring strong programmers at Socialcam to hack on iOS and Android (whether you have direct experience or not :D). Come be part of a small, talented team that moves extremely fast.

    What will Y Combinator look like in three years?

    On Hacker News today I saw a submission asking the community what Y Combinator will look like in three years. One point that was made in the comments was that there will likely be diminishing returns to founders who go through YC as there are more and more of them, as Paul Graham's time is a finite resource.

    While I think that individual attention from PG is a great, great benefit to startups, I disagree strongly that the YC model won't scale for this reason. YC has an extremely passionate community of alumni dedicated to helping one another and has already tapped some of those alumni to join YC either as a partner (Harj) or in other capacities (Alexis, Garry).

    In fact, when we were raising our first round for Justin.tv it wasn't only PG who helped us, but many of the other alumni at the time (Sam Altman, Trip Adler and others). While YC was extremely valuable and enabled us to get started, I would say that the advice of those alumni probably helped more than the advice from the YC partners around fundraising strategy, because many of them had very specifically applicable experience. Often times when it comes to operational questions from growing companies, the best advice comes from alumni who have just gone through that same problem themselves, and the number of successful alumni is growing at a rapid clip.

    At the same time, the YC brand continues to grow. I believe in the next year or two a YC company will see a $500mm - $1bn exit. In aggregate YC companies have raised over $100mm in capital (probably much more, I just haven't bothered to count). YC companies have created hundreds of jobs in the Bay Area and beyond.

    YC will be an economic force in the next decade specifically because it does scale. Whatever happens to the tech economy at large, whether bubbles burst or capital continues to flow into early stage, YC companies will continue to be founded, survive like cockroaches, become ramen profitable and grow. If the bottom falls out of internet advertising, founders will come with models built to monetize consumers and enterprise directly (as happened with YC companies in 2008). YC can't be stopped, because software and the web are becoming part of every business.

    -------

    If you thought this post was at all worthwhile, pay my ego back by following me on Twitter.

    Congrats to all who got a YC application in yesterday!

    The Drive

    Once, when I was young, I told my mother that when I grew up I wanted a stable, easy 9-to-5 job. Throughout my childhood my parents were always working: showing clients property on nights, fixing up houses we owned to rent on weekends. I was tired of being dragged along to paint houses on Saturday afternoons, and I told her as much. Why couldn't she just have a normal job like I would one day, without the long hours, instability, and constant crush?

    "Oh, Justin," she said, "Life is a struggle, whether you have a normal job or not. The low points make the highs sweeter."

    Over time I've achieved enough of my goals to know that making more money, having a bigger website, or becoming more popular won't make me any happier. Yesterday, I saw an Atlantic article about the "super rich"; respondents to a survey of households with greater than $10m in assets on average said they wouldn't feel secure until they had 25% more wealth. I'm smart enough to know that succeeding more won't make substantial improvements to my day-to-day fulfillment.

    In fact, I am already very happy. I am blessed with amazing lifelong friends and two brothers I would do anything for. I get to work with extremely intelligent and motivated people and run a company founded with my best friends. I love the work I get to do with technology and I feel like I have enough money that I can do almost anything I practically want to do right now (perhaps I have limited spending ambitions, believe me, I am far from rich!). 

    Why isn't that enough? Why continue to press on hard even though I know it is vanishingly unlikely that it will improve my baseline at this point?

    In Heat, the greatest crime movie of all time, my favorite line occurs when the gang is planning their biggest heist yet. The group's leader says that they'll each have to independently agree to do it because the cops have been watching them and it is higher risk than previous jobs. He then advises Michael (played by Tom Sizemore) to be smart and walk away, as he already has a lot of money saved up. Michael replies, "For me, the action is the juice. I'm in."

    I was born to be a starter, and that's what I expect I'll do in the future, whether the past is filled with successes or failures. Startups are marathons, but sometimes they have sprints in them -- I'm not scared of sprints. I love the grind, and the rush of winning. We do work smarter, even though that is not the part of the story I told yesterday. I'll continue to give everything I can to get the room excited whether it is for a video game tournament, live reality show, or a simple mobile video sharing app.

    It might be more of a compulsion than should be glamorized.

    -----

    Thanks, Daniel, for making me write something I've been thinking about for a while.