On Monday we welcomed our first class of interns. I’d like to take a moment to publicly welcome to the team — we’re really excited they’re here with us!
- Beth Findley: Beth is a sophomore at MIT studying computer science.
- Cade Thomasson: Cade is a freshman at LSU studying computer science.
- Jonathan Hooper: Jonathan is a freshman at LSU studying computer science. He’s also the first non-LSMSA alumnus we’ve hired.
Over the course of the next six months, you’ll hear from them time to time as they post insights they’ve learned while under our tutelage.
As always, we’re hiring! If you’re interested in interning with us, email firstname.lastname@example.org.
There’s a post on Quora talking about how long it’d take to build Facebook. The former CTO says 1000 man hours. Holy. Shit.
That seems reasonable and also not bad?
That’s just a lot of man hours.
That’d be ~6.5 weeks for our company, not counting interns.
Assuming we were working full time
He said 200 employees, two years.
Then…he doesn’t know what a man hour is?
The LSU Center for Computation Technology is putting on an iOS development bootcamp August 1-12. It’s open to all LSU undergraduates and costs $300.
We’ve worked with CCT on developing this program and are excited it’s something that they’re going to be offering. It’s a great introduction to developing for iOS, both in programming and ideology.
We’ll presenting on August 8 at 9:30 AM to the group. Our talk is entitled “Being Awesome, One Build at a Time”. It’s a fun and relaxed talk about the development process. We’ll be imparting some knowledge about how we work, what we wish we knew when we first started and more.
To learn more or register, click on to CCT’s website.
We hope to see you there!
I’m getting a lot of on-the-job training regarding entrepreneurship. I’ve started writing about it on this blog so that others can share in my experiences. The first was about failure and the second about focus. Today is the third post in this series and I’m going to talk about glamor in this line of work.
Entrepreneurship, to a lot of people, is pretty glamorous. To be honest, a lot of it really is — it’s all very exciting. There’s certainly a sex factor to building a business and being behind something great. You meet cool people (sometimes famous ones), get to have a fancy title (like CEO), and have a real chance and making a difference (and a lot of money to boot). It’s the kind of glamor a lot of people would kill to have.
But it’s also a job. A regular old job, just like any other. And like every job, whether you hate it or love it, it has it’s more unsavory aspects. It’s not all fun and games. You get faced with really difficult problems you’ve never thought of before. You have to make tough calls. You get stuck in a corner with only one way out, and it sucks. Your money is stretched thin. You have to fire someone.
Sometimes, though, what you’re faced with isn’t even all that gloomy; it’s just not all that fun.
Let me take a recent example from my own experience. We recently attended a conference. Like all vendors at conferences, we had to have something to give away. But: what?
I wanted to have the perfect giveaway — something practical that people would use and would remind them of us every time they used it. I wanted something that’d put our name in front of them — hopefully daily. That way whenever they left the conference and our constant presence they would still remember us — and, hopefully, call us!
I spent weeks thinking about it. I called a lot of different promotional companies. I asked around, getting feedback and suggestions.
In the end, we decided on coffee mugs. Coffee mugs. I just had spent three weeks in painstakingly detailed thought over coffee mugs. Even after we decided on the mugs, there was still color, type of ceramic and copy to consider.
Needless to say, I never thought that this would be a part of my job description or my life. Coffee mugs.
But, it worked! After the time I spent on it, our mugs were a raging success. Everyone took one home — some more. In fact, the conference used them to serve the morning coffee in. It wasn’t glamorous or fun, but — success!
Another example from my recent experiences is dealing with lawyers and accountants. We’re growing and so we need a great professional team backing us as we go about our business. In evaluating which firm I’d like to represent us on both lines, I did a lot of research. There were weeks of evaluations, reference-checking and meetings before we made a final decision and retained a firm. I’m not going to lie: it sucked. It really did. I’d rather be programming or talking to clients, but instead I was stuck driving around town talking to prospective firms — awful!
After we selected a law firm, I then had to work with them on getting our contracts squared away. For a few weeks, I was reading up to 100 pages of legal documents. It’s dense. There was a lot of googling involved (I learned a new word: usufructuary). It wasn’t fun in the slightest — I’d liken it to pure torture.
But we needed. It had to be done. It wasn’t glamorous or fun. In the end, however, I’m glad I did. We now have an awesome team backing our plays. It’s freed me up to think less about our finances and legality and focus on our clients, projects and future. It feels good to know we’ve got competent professionals behind us.
On a more technical front, I’ve recently been evaluating different cloud computing platforms for us to deploy on. There was a lot of testing, talking to support and researching. I read a lot of reviews online about the different providers we were looking at. I’m not a sysadmin by any stretch — I’m an engineer. A lot of that stuff is hard and boring to me. But we need a good platform to deploy our apps on. Our clients count on us to provide a solid service, and for that to happen we need a good cloud platform. It needed to be done, but man is it tough to get through.
This represents a really good lesson for all of us entrepreneurs: sure, it’s what I am, but the thing I need to remember is that it’s also a career — a job. With it comes responsibilities and tasks that might not be all that glamorous or cool. But it doesn’t matter — it still needs to get done.
Last week I talked about failure and how it relates to entrepreneurship. It’s worth a read if you’re new to the whole entrepreneur gig or if you have to work with or are close with one of us (admittedly, we’re a little neurotic).
To summarize, though (because I know we’re all busy): failure is not only a part of life but also a necessary ingredient for success. Additionally, failure can actually be freeing. If you’ve failed, you have nothing to lose — pick yourself up and try, try again.
Today I want to talk about something that’s fatal for a lot of entrepreneurs: a lack of focus.
I’ve seen a lot of talented and competent entrepreneurs burn out or fail because of a lack of focus. They try to do too much and spread themselves too thin. No one wins when this happens.
I’ve been guiltier than anyone else I know when it comes to focus. I have a lot of confidence in my abilities, so I get involved in a lot of different things. What happens is that I eventually burn out completely.
A year ago, I had a full-time job, was working on an engineering degree full-time and was working on three startups. For a while, it was all working well and everything was great. My boss loved me, I was making decent grades, and I was making progress in my startups. Not soon after everything changed. I was routinely late on projects, I was carrying a low GPA and my startups were lacking because I wasn’t carrying my own weight.
It wasn’t just a professional problem, either. I was having trouble giving due attention to the important people in my life and was falling into a very unhealthy lifestyle of fast food, no exercise and little sleep.
There was a problem. A big one, too. People were counting on me and I was failing hard. So I stopped. I wrote out a list of priorities. I focused and cut what I didn’t need.
I realized that my priorities were firstly for those I love and secondly for what I love — entrepreneurship.
Once I prioritized, I had to make difficult decisions. I quit my job and started a new one that paid less but had better hours and was better located. I sacrificed money in order to spend more time with those I love and doing what I love. In the end, what I realized (thankfully at a young age) is that it’s not all about money. You kind of cheapen your success if you burn all those you care about in the process.
I also focused on my startups. I’m down to just one now — NewAperio. By doing so, our company has taken off. We’re faced with more success than I could have imagined at this point. The amazing team I have working with me and our awesome clients are certainly an ingredient to this success, but more so is focus.
I’m really not the only one who has this issue. Two of my former cofounders faced the same problem. They’re now off to other ventures and are immensely successful in those. They picked one and are rocking hardcore on those.
Another friend of mine recently told me that he had been honored with a nomination to a very prestigious position. It’d have him traveling a lot, away from home and his company. It’d give him amazing exposure and he’d be talking with a lot of entrepreneurs from all over — a real passion of his.
After a lot of thought, he told me he decided to turn down the nomination. It was a little shocking — I thought he was a perfect fit for the position. But then he told me why: focus. He wanted to focus building entrepreneurship in our city, he wanted to focus on building his company — he wanted to focus on what’s important right now for him.
No one can know what he’ll be missing out on, but I know he’ll ultimately be happier focusing on the things he wants to do here and now.
In this business, there are a lot of pitfalls. We’re faced with countless problems, setbacks and failures. But of everything we face, the most dangerous is ourselves. Focus is a key ingredient to success — without it, you’ll never get anywhere.
Focus leads to success and, more importantly, happiness.
But focus doesn’t just apply to yourself. It also applies to your business — to your product and service offerings. The only way to understand how to focus your business is to be clear about your mission. What are you trying to do?
“Winning” by Jack Welch has a great chapter on mission statements. It’s not about writing great PR copy — it’s about figuring out exactly what your company is about and communicating that effectively to everyone in the company. You can’t be a successful company if there are people within it that don’t understand the mission. The whole company has to be moving forward in the same direction to truly be an effective company.
At NewAperio, our mission is to help our clients realize their passion. What we mean by that is we want to help our clients turn their startup idea into a real product or help a big company move into mobile and communicate better with their clients. We also want to enrich and edify the community around us. We do that by helping things like Creative Louisiana get off the ground and participating in community education — Evan wrote about his experiences and we have more coming in the next few months.
But we had to focus. We don’t take every client — we only take those we think we can help. We don’t participate in every venture pitched to us — only the ones we think fit in our mission. We don’t hire everyone we interview — only those that can help us move our mission forward.
Don’t fall into the trap that saying “no” is bad. If anything it’s good. But, as with everything, is best in moderation. Start in your mind with a no and let yourself be convinced. “No, Logan, this isn’t a good deal.” But it helps push our mission forward, we have the resources, and we can truly help — “Yes, we’re going to do this.”
It’s all about focus. A focused company is a successful company.
Elegance for the sake of elegance? Only if we feel like looking pretty.
mhm. no one’s gonna see it
Really, fixes like this, I have the same feeling as I do duct tape.
It looks weird, but it works, so screw it.
There are a lot of things no one really tells you about entrepreneurship. It’s a tough road, really, with a lot of ups and downs and unexpected roadblocks. It’s absolutely exhilarating, but there’s really no way anyone can prepare you for what’s ahead.
I’ve learned a lot in the past few years as I’ve embarked on this road and had to encounter the many issues that ensue. Some of them I knew would be ahead from seasoned entrepreneurs, some of them I expected but was never told about, and some of them that even the best of us can’t see.
I’ve got a few in mind, but this is definitely a series of posts. I’m not sure how many are posts are in this series or how long it’ll take me to complete it, but I think this information is valuable and worth sharing.
The first topic I’d like to discuss is failure.
Failure is something no one really wants to talk about. It’s success that everyone seeks and the best stories come from those that have made it.
But the dirty little secret about failure is that it’s absolutely necessary. Without it, success couldn’t exist. It’s as much a part of entrepreneurship, and, indeed, life, as success is.
Take for example Steve Jobs. Had he not been kicked out of Apple, he wouldn’t have started NeXT. NeXT was a pioneer of technology and the company which, through acquisition, ultimately lead to his triumphant return to Apple. In fact, Jobs credits the failure of being fired from Apple to his later success:
“I didn’t see it then, but it turned out that getting fired from Apple was the best thing that could have ever happened to me. The heaviness of being successful was replaced by the lightness of being a beginner again, less sure about everything. It freed me to enter one of the most creative periods of my life.”
One more thing: if he had been at Apple, he never would have changed Pixar into the film company we know and love today. Without it, we wouldn’t have the revolutionary CGI movies that Pixar made, such as “Toy Story”.
Of course, Jobs has had monumental success in his life — both before and after his climactic failure. But he’s not the exception. If you ever have the ear of a seasoned entrepreneur, ask them about their failures. Those stories are far more interesting than their successes and you’ll learn a lot more from them. And do! The best advice I’ve ever received has been from people who have failed, learned from it and told others. In fact, they’re almost always more willing to tell their failure stories than their success stories. Why?—because they’re learning exercises.
Look, the path of entrepreneurship has a lot of failures. It’s almost impossible that you won’t, at some point, fail. Some will be small, some will be large and public and humiliating. But with all of them, you have to take it as an opportunity. Yes, you failed — get back up, look at what happened, and learn. Everything with entrepreneurship is on-the-job, and the best training is failure. Learn from your mistakes so you don’t make them again. The important thing isn’t not failing, it’s learning from those failures.
Now, I’d like to talk about one of my failures.
We were working on a project some time ago. It was our first major contract and although the budget was small, it was a huge step forward for us. We were so excited to begin working on it that we jumped the gun — we started the project before the contract was signed.
In the end, the worst thing that could have happened did: the contract was never signed. The client ran out of money and we were dead in the water. We lost several thousand dollars on development cost and it put us in a tough spot. I had screwed up big time.
But I moved forward. I learned from my mistakes and now I double-check that we have a solid contract before we begin working (extra tip: it’s never too early to get a good lawyer—and get a good one).
Luckily, it wasn’t all a bust. We developed some really cool technology on that project that we’ve been able to reuse on several others.
As a wise man once told me: “The deal is trash until you get the cash.”
In the end, failure is inexorable. And, really, you shouldn’t go about trying to avoid failure at all cost. Instead, focus on doing the best you possibly can and when you make a mistake, learn from it and move forward. Take the time to analyze the situation—though not overly so—and learn. Learn, learn, learn. You’ll be smarter and better equipped for the future.
I have a confession to make. My reputation may get damaged, I might get fired, and my family may disown me, but it’s high time the truth came out.
Programming does not come naturally to me. At all.
Of course, I love doing it. The process of programming is the ultimate brain teaser. It frees you from the normal, arbitrary nature of the universe because it’s rooted in logic, in ones and zeros. If something goes wrong, it’s not because the universe is unfair. It’s because you messed something up, which is awesome because that means it’s fixable. Conversely, if everything goes right, you’ve created a small part of the universe that’s completely in your control. You’re making the rules. You’re god.
But just because I enjoy it does not mean that I’m good at it. It does not come intuitively to me in the slightest. When I learn anything new it’s an agonizingly slow process, and there are a lot of people out there who are much, much quicker at it than me. And in this business, you have to teach yourself everything from the ground up. Once I’ve figured out something new, I can do it pretty well, but there are still a lot of people who could do it better in a heartbeat. I like to think my love/hate relationship with the process is characteristic of anyone who is passionate about anything, but that’s just speculation.
What this translates to is a whole lot of late nights for me. I’m the officially the company’s Senior Developer, but ask Evan or Logan and they’ll tell you I’m the company’s Senior Code Breaker. However, that also means I’m the company’s Senior Code Fixer. While I may particularly versed in breaking things, anyone who has ever written code has had to go through the delightful process of fixing it. The night will come when you’re grappling with a seemingly insurmountable error. When that night comes, take a few tips from me:
1: Don’t Panic
It doesn’t matter how soon your deadline is. Even if you have to have the server running tomorrow morning, demo in an hour, or get your website back up as soon as humanly possible, fear is the mindkiller.
The act of writing code is a creative one. Like painting, theater, or writing poetry, it requires familiarity with your medium, spontaneity, and an artistic touch. However, the act of debugging is a methodical one. You have to be able to immerse yourself in the code, follow each line’s train of thought, and find the penny on the track. You become the art critic, the deconstructionist. You have to watch the dance, but instead of getting swept up in its beat and beauty, catch every misstep of every dancer.
Panic works against you in this setting more than any other. You need your wits about you, so you can’t afford to lose them.
2: Create an Escape Plan
As soon as you realize your code is broken, don’t make fixing it your first priority.
First figure out what you’ll do if you can’t fix it, no matter how small the error may seem at first. Evaluate what you can to do to buy yourself more time: hardcode a quick and dirty fix, create a placeholder on your website, set up a pretty page to display if something goes wrong rather than just output an error message. Something. Anything. Prepare that escape plan before you try and debug. If you fix the error before deadline, just comment that code out and keep it around in case it happens again. If you can’t fix the error quickly, you’ll have a solution to fall back upon when you run out of time.
After you have your escape plan ready, figure out how long it would take to implement. If it takes half an hour to put up your dirty fix and you have to demo at 8am tomorrow, you’ll know you’ll be able to stop stressing out about your null pointer error and call it quits at 7:30. This will help alleviate your panic and focus on the task at hand. Knowing your broken code won’t cost you anything more than time is the best thing you can do for yourself.
3: Bring a Ball of String
Well before you start writing code, prepare to break it. Before you embark into the labyrinth of logic that is the heart of any program, realize that you’re going to have to bring a ball of string with you if you’re going to find your way to the Minotaur. That way if you take a wrong turn somewhere, you know how to get back and take the right one.
If you’ve just broke your code, that means that it was working not long ago. If you’re changing code you obviously are trying to make something work better, but it is far better to have something working poorly than not at all, so keep track of every change you make. If you’re using Github, commit often. If you’re trying to update the server, back up all of your configuration files and write down the version number of every program you’re about to upgrade. If you’re modifying a database, duplicate the schema. If you’re using an IDE, see if you can change the default number of ‘Undo’ actions remembered to a much greater number. One day you’ll need to use each and every ‘Undo’ afforded to you.
Even with all of these tools in place, when I develop I have half a dozen untitled text files open with snippets of code before I changed them, so I can keep precise track of my every motion. Uncertainty is for the Heisenbergs of the world. This came in handy when writing this article: a client who borrowed my computer closed all of the windows I had open, including the blog post page I’ve been composing this on, instead of just the tab he was working in. I had a handy copy of what I’d written, updated every paragraph, saved in TextEdit. I’ve changed the defaults of pretty much every application I have to accommodate: my Paint program keeps track of every pixel I lay down, my Calculator program remembers every calculation I run, and even my video games have every version of autosave enabled. Then it just becomes a matter of leaving these applications open as long as you intend to develop to undo any poor choices you might have made. An ounce of prevention is worth a pound of cure, but if you’re clever you can increase that exchange rate substantially.
4: Call for Air Support Early
The generals who call for air support last minute are forgotten. They die. The generals who call for air support five minutes before that get to go drinking with the ground troops when the war is over. The internet is a powerful playground of information, but it’s way too large to get the answers you need quickly. You have to get help early, long before your deadline.
Open up the first dozen search results on Google before you look at even one. As you read through each one and realize that they have nothing at all to do with the error message you’re getting, take the time to figure out why. Then if the first dozen results don’t give you the answer you need, instead of going to the next page of search results, refine your search to exclude keywords characteristic of the irrelevant results. Consider using advanced search results to include valuable sources of information like .edu or stackoverflow.com, or hide the ones that consistently fail you like forumtopics.com (do this with -site:forumtopics.com in Google). Repeat.
If you’re going to post a forum question about your error, do it as soon as you get the error, even if the problem is a complicated one and you’re just beginning to unravel it. As you start to figure things out, just update the forum post, because waiting until you have a very specific error with an exact line number gains you nothing. You’ll find that people who respond can steer you towards the heart of your error faster than you could find it yourself. This also gives you a lot more time to wade through the irrelevant or unhelpful answers that well-meaning people will inevitably offer well before your deadline hits.
5: Broken Bones Heal Stronger
At the end of the day, it is quite possible that you are still going to have broken code when the time comes to show something. When you get put on the spot, don’t fret, and don’t apologize—too much.
Remember that while your job is to produce a product, it’s in everyone’s best interests to do it right. Both you and your client want a reputation of being responsible for awesome things, and that can never happen if you rush. As frustrating as broken code can be, learn to appreciate the opportunity offered by fixing the code, and communicate that value to the client instead of begging for forgiveness. Unless you’ve committed to a ridiculous deadline, chances are if you haven’t been able to fix things at this point there was something fundamentally wrong in the way you were doing things previously.
Perhaps when you installed nginx on the server you passed a parameter incorrectly, and the first time you try and update something that depends on it, everything goes to hell. It’s a good thing you found that out before you handed the entire project over to your client’s sys admin. Perhaps the basic logic you were using to structure your controllers in Rails breaks when you add a nested resource. Well, your fix will be a much more scalable solution. Even if it’s over the client’s head, assure them that the holdup in the project is necessary for the best possible work you can provide, and sing the praise of the new solution.
Programming is a two-steps-forward, one-step-back kind of a dance. When you get caught taking a step back, don’t undermine what you do by profusely excusing yourself. Just explain that it’s all a part of the dance, and learn to love the back-and-forth, ebb-and-tide, love-and-hate struggle that is the art of programming.
A few weeks ago, I found a link to a talk by Mike Monteiro of Mule Design in San Francisco. It talked about billing and legal issues common with agencies like ours. It’s really brilliant and I highly recommend you check it out.
The talk was a part of a lecture series called Creative Mornings. I watched a few more and it became apparent that this type of event fostered wonderful creativity and an awesome exchange of knowledge.
I wanted this in Baton Rouge!
So, I talked to the awesome Wendy Overton, event organizer extraordinaire, about bringing this event here. After much hard work on her part, it’s going to happen. She’s calling it Creative Louisiana and the first one is happening June 29 — just two weeks away!
Register today (it’s free) — you won’t be disappointed.
Chris and I will be there, so if you do come be sure to say hello!
We’re a web and mobile app development firm, so we build web, iPhone, iPad and Android apps. When we first started, our clients were heavily biased towards web apps. However, over the past few months, that dichotomy has reached parity. The growth of mobile app projects is steadily increasing, and we expect soon that they’ll soon outweigh web apps.
They’re two different worlds, the web and mobile. The ideologies, business, development, and customers are wildly different. Understanding mobile isn’t always congruent to understanding the web, though there is some overlap. Most of our clients, we’ve found, are rather uneducated when it comes to mobile platforms.
A lot of times, clients will come to us knowing that they need an app, but not understanding exactly what they want in an app. Traditional industries, for example, only loosely understand the mobile industry and so can’t quite give us a firm understanding of what they want built.
We employ collaborative education as a part of our process. Our clients help us understand their customer base, what they want, how they think and how they interact with them. We take this information and come up with multiple ideas and then sift through them to create a comprehensive mobile app.
We then educate our clients on the industry. A major part of this education is understanding the motivation behind developing an app. We’ve discovered that there are three reasons one would desire develop an app. Yes, only three. We’ve done a lot of development and in all of that code, only three primary needs arise. We help our clients identify which of these three accurately describes their need and that helps guide us as we come up with ideas.
Here are the three reasons we’ve identified to develop apps:
To build a new product.
Some apps, like Angry Birds or camera+, are created as a new product. These apps are built by software or gaming companies who hope to either build an old product on a new platform, reinvent a category in a mobile fashion or create a new product that’s never existed before. We have a few client apps in development that fit this category. Most of them are ideas that entrepreneurs have had and are looking to bring to the world.
To create a value-add for existing clients.
This category of apps includes things like Twitter and Facebook for iPhone, but also apps like the Starbucks or Amazon app. They exist to create a value-add for existing clients. By having a mobile app, Facebook makes their existing users happier because they can access their profile on the go. Amazon adds value to a customer’s experience by allowing them to shop wherever they are. A lot of our clients fit into this category. They’re usually companies or organizations who have an existing client base and want to extend their existing product offering to the mobile platform (such as Facebook or Twitter) or monetize existing clients by infusing new content, products or services (such as Amazon). They also might want to create a new product that assists their clients in some fashion (such as Starbucks).
To bring new clients in.
Some companies, especially those in traditional industries, can leverage a mobile app to draw new customers in. The Starbucks app is great example for this category: imagine that I hardly go to coffee shops and have never been to Starbucks before, but I like to drink coffee and do so regularly. The Starbucks app, which I saw advertised online, piqued my interest because it allows me to build a drink I like, which is cool because I drink a very non-standard coffee. Boom — Starbucks just brought me, a new customer, in by having, and effectively advertising, an awesome app.
Using the Starbucks app as an example twice also illustrates another point: these categories aren’t exclusive of each other. One app could fit into any of these.
Where do you fit in? How can you best interact with your clients? What would your company’s app look like? We can help answer these questions! Awaken your ideas with NewAperio, say email@example.com to get started.