Business Articles

RSS Feed - Tag Business

Negotiating Good Contracts for Startup Companies

Tags: Business | 5 hours, 26 minutes ago

I was writing about my own startup companies, then found Ryan Carson's post on building his web applications.

Here is the part of the post I found particularly interesting, the contract:

Elliott [the developer] will receive 10% of monthly revenues, after the expenses listed above. If he launches the site on time (3pm April 20th), this will increase to 15% (hat tip to Natasha on that idea). When the site hits $25,000 monthly revenue (excluding VAT), his take will increase to 25%.

His monthly cheque will be determined by a snapshot of the revenue on the 1st of every month at 9am.

If the app is sold, Elliott will receive 10% of the cash price, after lawyer and accountancy costs.

I build web applications so I can relate to Elliott here as well as many of you (my readers). The only difference between me and Elliott  is that I own the company who knows all the people to hire and how to get it done. My company is called, "MJG International" and establishes these type of business partnerships.

Carsonified Wins, Elliott Loses (mostly)

Before I rip apart the Carsonified contract, I want to say quick - Ryan Carson, if you are reading this thank you for sharing the information, it serves as a good example to work from. And certainly I am not accusing you of being dishonest - I just don't agree with the contract.

Now here is my opinion on the Carsonified-Elliot contract. I'm not sure why Elliott would build the product for no money and 10-25% of the application under certain performance terms. I think this is a really bad contract completely in the favor of Carsonified. Here is why it sucks for Elliott:

  • Carsonified has no risk. They are covered legally and don't have to pay the labor, all the risk is on Elliott's shoulders.
  • Carsonified can expand and change the contract of the product as much as they want and Elliott is still pressured to get it done by a certain date to keep his larger percentage.
  • Carsonified doesn't even have to pay for support costs after the product is launched, because Elliott has to answer support emails within 24 hours.
  • Carsonified gets at least 75% of the revenue, Elliott is the one taking the risk here and gets just a slice of the revenue.
  • Carsonified owns all code and intellectual property -- Elliott owns nothing when it is all over but a cut after expenses.

Wow, talk about getting kicked in the butt by a contract. Carsonified gets all the cheese for having the idea and negotiating the contract. Good work negotiating, Carsonified!

How To Negotiate a Good Contract

Now I'd like to share with you how I negotiate a contract. When I say, "you" here that means you as the developer. Assuming you want to go on these ventures.

  • Chose a partnership with business who care about you and you care about their product. This is tough in a for-profit world, but I've managed to do it. There is an over-abundance of companies with ideas and a shortage of developers who can actually accomplish it - know that as leverage to negotiate a fair contract.
  • If you build it, you should own everything that doesn't apply specifically to that project. You need to build products with reusable code so you can start other companies. You can even open source engines from it, like Ruby on Rails did.
  • Require money up-front enough to get you by. Creating good web applications is tough, real tough - even the simplest things can become complex when you consider everything it takes to create something that will be really worthwhile. You may not be able to do this until you have a fair amount of success under your belt.
  • Get at minimum 30% of the revenue of the tool if you are working for free. I do 30% plus an initial 2 months of operating capital  depending on the project, but again - that is because of experience.
  • Get a lawyer you trust to review the contract before signing. They will remove language that doesn't protect your rights.
  • Create a startup company for the product that is it's own company, as a subsidiary of the company you are working with and get 30% stock in it. That way if the company is sold, you get 30% of the selling price.

That is all off the top of my head. Because I've been through this I feel it is my duty to protect the on-the-ground workers who can actually finish products. Once I get good at executing and have a lot of successes under my belt, I'll probably take more like 70% of the product instead of 30%, since the only thing the company partnering with you is doing is have the initial idea, which is important - but everybody has ideas! Execution of the idea means a lot, especially in web development.

Let me assure you that I value the business partnerships I make and their ideas. The contracts I've made so far have been fair and everyone has been great to work with! I hope you all reading this can have the same.

Be fair, don't be square. You rock, peace all.

Acheiving Freedoms in 2008

Tags: My Work, Business | 1 week, 5 days ago

2008 was a year of embarking on a journey towards personal freedoms in my career, which although was scary at times, paid off in spades.

Attained Freedoms

The following freedoms are available to me, that I didn't have at the beginning of this year:

  • work from home remotely
  • hire people I trust
  • create my own applications
  • work as much or little as I desire and still get paid for it (as a contractor)
  • take time out to eat, read and pray (during the work day)
  • spend more time doing things outside of normal work like go to conferences, spend time with my girlfriend and go on vacations

Assets VS Liabilities

Attaining these freedoms became incredibly important to me late 2007 when I realized I was building someone else's assets. I realized that if I stayed the course I was headed down, I would end up dependent on that next pay check to pay for the liabilities (things on credit) just like those surrounding me. I needed to break out of the system and forge into new territories.

It would have been a cold day in hell before I launched any major start-up companies while working for someone else - working nights and weekends. Not to mention I became border-line depressed working so much. Instead, I decided to cut my (client) work week down to 24 hours per week to allow the rest of my week to build applications that make my business into an asset-driven company (I'll explain later).

Breaking Into Contracting

In April of 2008, I pinged a few companies to see if they would hire me for 24 hours per week, remotely to cover my living costs. After casting the line, I got a few offers. I ended up turning down a job offer working on the Firefox Addons theming engine (which I was grateful for the offer!) to work for an internet marketing company in Duluth, MN. Why? My #1 reason for turning down a job with Mozilla is, Silicon Valley doesn't need anymore high-level talent. Silicon Valley takes away much of the great talent (poke at Dave Dash of delicious.com) we have here in Minnesota.

Instantly Respected Names VS Local Business

The bottom line is that I want to work for local companies and grow them, without a company name that demands respect attached to my name. It is for the same reason I went to a small college - The College of St. Scholastica, who has heard of that? Strengthening the computer science program was a high priority for me, as it most certainly will be in the future.

If you work for "Google", you have "Google" attached to your name for the rest of your life, and instant respect. Some people want that, I don't. My attitude is to do it the hard way from the ground-up and not bank on others' success. I learn more that way and get only the respect I deserve. Yes I was interviewed by Google, many times over. But it was in the process that I came to some of these realizations.

The Unexpected

Not everything went perfect this year. My first startup company will launch in the first week of January, which I wanted to launch exactly one year prior. It turns out that launching a (good) startup takes thousands of hours or work and investment. You just can't put in that kind of time unless you own your own business and have flexibility (without pulling in investment dollars). So far I've spent 1800+ hours of my time and a pile of my own cash to hire awesome talent to help me with the tough parts. I might argue this isn't a downfall, but it was mostly just unexpected.

I had to give up my seat on the jQuery UI development team. It was just too hard to generate revenue, launch startup companies and program open source at the same time. Datepicker was just consuming way too much of my time and I had to give it up. Though, I did review a book that is coming out soon on jQuery UI, so that was cool.

Reflecting on 2008 Goals

The goals I've made in the past have been fairly lofty, but all-in-all it is good to make them once and a while. As I've found out, it is incredibly hard to hit software development goals because things change and your focus can shift. It is hard to stick out projects to the end in this dynamic profession, but if you do stick it out you may get big rewards.

I've met more amazing people this year, and have continued to grow past work relationships stronger (thanks, Twitter). I know things will continue in the midst of the failing economy because I work with great companies who have strong client-bases. Each company has been chosen wisely.

Looking Forward

2009 will mark the pursuit of creating assets, jobs and reliable tools. Assets are things that have value without you being there. They generate (or hold) value without you having to attend to them. The rich generate assets and the poor and middle class generate liabilities (car, house, tvs, etc) and pay lots of taxes.

But this year isn't all about money. 99% of the time I talk about my career because this is what my website is about, but the "secret sauce" to my success is that I have a deep spiritual life that fuels and inspires me each day to be the best I can possibly be (and beyond).

So Happy Holidays everyone! I'm hoping you have a great 2009.

Getting Projects Done in 2008

Tags: Business, CakePHP | on 2/11/08

I have decided to pour all of my resources and energy into getting four rather demanding projects done before the end of the year. This big end-of-year push has had a lot of thought behind it, which I wanted to share with you and document here on my blog.

Push Forward

The Projects

Of the four projects I am focusing on getting done, two are consulting jobs and two are my own start-up companies.  With the start-ups, I have partnered with businesses to help define the products and they will sell them when the products are released to the public.

The Plan

My focus in November will be on consulting. Consulting is a great way to get temporary cash flow, through which I will be using to hire people to work on my startup companies. I will have a total of 4 contractors working for me in November.

The Logistics

UI skills are the most important for my consulting work, and CakePHP skills are most important for the startups. In case you are wondering who is working with me, here is a list of them and brief description of each:

  1. A developer that is a highly seasoned professional and core developer of CakePHP, he will be working on a startup in CakePHP.
  2. A developer that is a master of databases and does a lot of work with CakePHP, he will be working on a startup in CakePHP and on documentation
  3. A developer that is great at UI and CakePHP, however he will be consulting with me focusing on UI (jQuery/JavaScript/HTML/CSS) with me and has been for quite some time.
  4. A developer/designer who is good at a diverse amount of things, working with UI, straight PHP and some CakePHP. He will be working with me on UI consulting projects.

Though the above isn't 100% finalized, I am confident they will be joining me in these last two important months of the year - all of the projects fun to work on. 

The Goal

It is my goal to have a company with products, partnerships and consulting. So far it has been working out brilliant and I only expect the great work to continue.

This will be a wild two months that I'm hoping to propel those working with me into a great 2009.

Mitigating Unrealistic Expectations

Tags: Business, Communication | on 25/9/08

We all work within the bounds of expectations to perform up to a certain level or hit a deadline.  But, I think more often than not, web development people have unrealistic expectations. Managers, coworkers, and we too put higher expectations on ourselves than we ought to.  Some of this is healthy, but there are certainly pitfalls when dealing with unrealistic expectations. 

The Main Pitfall, Communication

All to often the culprit of unrealistic expectations is poor communication. This happens all the time - the developer knows the work is not going to get done on time but decides to say nothing about it.  Then when it comes time for the final deliverable there is nothing to show.  It can be tough to set emotions aside, but you better communicate with your manager (or client) that you aren't going to make the deadline as soon as you know.

An honest explanation, communicated as soon as possible is usually all that is needed.  Just make sure you set the expectations level to a reasonable level the next time around.

Not Hitting the Deadline, Now What?

Once you've given your manager or client a good reason why the deadline is not going to be met, then the ball is still not out of your court.  You have to work with your client and manager to come to a solution, and each one is different. Let me walk you through a few scenarios that have happened in my career - some good, some bad.

In a larger agency the manager allocated more resources to the project to help out in making the deadline.  This only works if you let them know as soon as possible that things were not going as planned. Otherwise, if it was your fault in not communicating then you are expected to take responsibility and put in the extra hours to still hit the deadline.  In some cases you may have to put in extra hours even if it is not your fault, but this should be recognized and warrant a promotion or pay increase (at the very least, respect).

In a small company my experience was sour when dealing with expectations.  The boss should respect what you say to them.  If the boss does not budge and still holds you responsible for the deadline, and does not pay well for the extra time you are putting in - then it is time to leave the company (if you can) and find another job.  The deadlines should be made with you involved in setting the expectation-level at a realistic height.

In consulting, when I agree to a deadline with the client I make sure to indicate how strong or weak the agreement.  If there are a lot of unknowns then I give them my best estimate and let them know the contingencies.  I make sure to update them on the progress of the project as well as the dependancies all the way through.  When successfully following this model, there are no surprises.  Communication is key - I can't emphasize that enough.

The Main Resolution, Communication

At the end of the day, it all comes down to communication.  You should make sure to communicate as soon as possible if you cannot make a deadline.  As long as you are working hard and have the correct skill-set, your manager (or client) will remain understanding.  Going forward you must adjust and learn how to set realistic expectations.  Then you will be on your way to hitting those deadlines and making those who work with you very pleased.

Consultant Agency Off and Running

Tags: Business | on 16/9/08

I have been operating as a small consulting agency for my clients lately. Here is what has been happening:

  1. Client seeks out my work.
  2. We begin a working relationship.
  3. Client needs more work done, so I find another worker.
  4. I remain point of contact, but bill client for worker's time and my time to get more done.

This is pretty simple, but works out well.  The client only needs to go through one channel of communication does not have to worry about the work getting done, because I can hire up for what the client needs. 

The truth is, most clients are not able to find the right people to work with.  Since I have worked both in corporations and also in open source, I know a strong network of people.  This also saves the client overhead of finding the right people for the job.  They can rely on the work that I will deliver.

This has been a great shift of focus and I am privileged to be providing people jobs through my clients while being able to deliver more work than before.

Four Types of Web Developers, Which are You?

Tags: Development, Business, Communication | on 15/8/08

After years of working with developers and observing motivations - it seems I've generalized people into a few categories.

Please don't balk if they aren't 100% accurate, since everyone is different it is hard to generalize - but this shows the general trends I see of paths people follow when devleoping for the web.

Type A: Developers for Developers

The core of the coding world.  They have philosophical debates about code with each other.  From this group of people came all the programming languages ( C++, PHP, Java, Ruby, etc ). If they have any people skills at all you will see them leading conferences and in the lime-light.  Otherwise you can find them in password protected MIRC channels and in the deep dark caverns of corporations where no business person has ever step foot.

Type B: Developers for Client-Developers

They build plugins, frameworks and tools for themselves and fellow developers.  The focus is on developing bits of reusable code to accomplish client work more efficiently.  In the marketplace some are self-employeed, yet most of these people occupying full-time positions as team leads (or normal developers who exceed employer expectations). Their philisophical debates are found to be mostly around what are the best tools to use, but also on how to write the best code.  Community activity is high - as most have blogs, comment regularly on blogs and attend conferences.

Type C: Client-Developers

These developers use out-of-the-box software packages and slightly modifies them to get client work done. Their focus is on doing what the boss or client tells them for the day. May listen to podcasts, or participate in community lightly via blog comments or in-frequently posted to blog hosted at Blogger.com.  Will only attend a conference if it is local and 100% paid for.  In the marketplace you will find them working 40 hour weeks.  Prime motivating factor is family and job security.

Type D: Developers for Money

These people are hack'n'mash, "developers".  You will find them grabbing dreamweaver or any WYSWYG tool to, "make a million" via affiliate programs and any idea they can get their hands on to make money.  Visit their sites and see all types of ads - link ads, popup ads, pop-under ads (though some are finding smarter methods). Products are being sold because they understand the human condition and feed desire into a sale (conversion).

What type of devleoper are you? I am definitely type B.

Getting jQuery into Big Corporations

Tags: jQuery, JavaScript, Business | on 5/12/07

Corporation Buildings

Big Corporation IT

Big corporations are typically resistant to adopting change - and for good reason. They have to work at keeping stable a large amount of applications in one environment. Internal IT teams will usually only adopt something if it doesn't interfere with their jobs or make them more difficult. You must have a really good reason to bring something new in. I understanding that, so how do you get them to approve you using a relatively new library like jQuery?

The Easy Way

The simplest way I've found to get jQuery into projects is use it for doing something very specialized. Creating tabbed panes, graphing data, or maybe some simple animation effects that are normally created in Flash. Either way, from that point on you can use it in the application. But what if you want to build a project from the get-go, from scratch in jQuery?

Big Corporation Project, Built on jQuery

Currently I am building a Google Maps application for one of the biggest banks in the world, HSBC. It is almost done, and I used jQuery to build the application with my manager's approval. As expected, when we handed the code off to HSBC's internal IT team in India they asked why we used jQuery:

"Is there any advantage of using jquery as google is already providing Ajax api for the same purpose. Also please clarify whether there is any licensing issues with jquery. If it is free, then can we use in commercial projects?"

My response:

jQuery is used is for parsing XML and adding behavior to the page elements in a faster and more compatible way. jQuery eliminates the problems that JavaScript has with inconsistent rendering between browsers and jQuery also improves the rendering speed / performance of the application. The code is arguably easier to maintain because it reduces the overall code size of the application because you do not have to code in different ways depending on the browser.

jQuery is dual licensed under the MIT and GPL licenses (http://docs.jquery.com/License), which means that it is 100% free for commercial use.

Note that jQuery is used by: Google, NBC, MSNBC, Bank of America, Amazon, Intel, BBC, Newsweek, AOL and Intuit - just to name a few. Full list: http://docs.jquery.com/Sites_Using_jQuery

A very vibrant and active community surrounds jQuery and it will continue to be well documented and maintained.

My response was very well received - feel free to use that explanation in your own corporation. I have to say though it has been much easier to get accepted since Google uses jQuery. My feeling is that internally to use jQuery you really only need your manager's approval. Once you sell him and your immediate team around you on the idea, you shouldn't have a problem using jQuery for projects. After all, it makes all of our lives easier. jQuery has saved me countless hours and the client's work is going to be better because of it. Thanks, John and the jQuery team.

Avoid Over Planning

Tags: Business | on 5/5/07

My friend interviewed Paul Boag on his website Focus Minded, a blog about the business of web design. I found that one piece of Paul's response caught my eye.

"If there was one bit of advice would you have for those interested in creating or growing their web design business, what would it be?

Paul Boag responds, "Stop planning and do something. This is a lesson that has been driven home to me personally at the moment. The danger is you have an idea for a web business but you never take the first step in implementing it. You become so obsessed with doing it right and getting all of the elements in place that you never start. You are better off doing something and throwing it away in order to start again than not doing anything at all because the time is not right or you are paralyzed with fear of doing it wrong. Seize the day!"

A lot of people sit with tons of ideas and never do them. Planning should be in proportion with how big of a decision you are making. Big decision, more planning.. small decision, don't plan as much and just go do it. I've given myself the same advice and it really pays off to just get out there and do what you think about.

Developing a Timeless Skill-Set

Tags: Business | on 5/5/07

The place I've been striving for is a place where I can use the proper tool for the job. Each programming language has their strength. Here are your average development languages and their common strength:

  • Animation = Flash/Actionscript
  • Functionality = PHP, ASP.NET, Java, Cold Fusion or Ruby
  • Information = HTML/XHTML
  • Basic Page Behavior = JavaScript
  • Styling Information = CSS

What if you had a web application that needed to do all of these things? You need a team of developers that can communicate very well with each other.

Typically you have someone who is of each individual expertise. You have the flash developer, the back-end developer, the HTML/CSS developer, etc. You have defined roles for each area, but I've always wanted to break that mold and be a developer that sees what is happening in all areas, from the inside-out. Someone who can develop no matter what new technology comes out or no matter what is the best tool for the job.

I want to develop work that takes advantage of the best of each platform. When new technologies change, I want a skill-set that is timeless and able to learn and utilize whatever is best for the job.

I think by learning a diverse amount of technologies you can develop a timeless skill-set. You then don't have to worry that you will be left in the dust by some revolutionary technology. Thats the goal of being a jack of all trades. To be useful in any situation and to possibly create things that no one else will think of.

A List Apart's Web Design Survey

Tags: Business | on 5/5/07

Designers, developers, project managers. Writers and editors. Information architects and usability specialists. People who make websites have been at it for more than a dozen years, yet almost nothing is known, statistically, about our profession. Who are we? Where do we live? What are our titles, our skills, our educational backgrounds? Where and with whom do we work? What do we earn? What do we value?

If you get a moment, take the A List Apart Web Design Survey.

I took it! And so should you. The Web Design Survey.

Working as a Jack of All Trades Developer

Tags: Business | on 5/5/07

When I am asked, what do you do? I usually tell them, "I am a web developer, sort of." People understand that a web developer makes websites, but in general don't have the foggiest clue what I really do. I have a hard time explaining... "I do xhtml, css, javascript, design, flash, actionscript, c#, asp.net 2.0...etc". I guess that is why I created the skills page of my website. It is a step towards giving people a graphical overview of what I do.

My skills page shows that day-to-day my job changes. One day I might be a javascript developer, the next day I might be a Flash developer. That is why it is critical to have project managers that tell me before-hand, "Next week you will be doing _____ project doing _____" - this is great! They know what I am good at and assign me work accordingly. I am lucky to have great management that knows how to use a jack-of-all-trades - which leads me to my next point...

How Does Management Work With a Jack of All Trades?

The manager needs to understand the jack-of-all-trades mindset. I admit that it can be hard because one week they might want to work with Flash and the next week they might want to work with Ajax. The key is, keep them on one type of project before moving onto the next. My manager has been great at this - for a month I did ASP.NET 2.0, then for three weeks I did a Yahoo Widget and now I am working with Flash/Actionscript.

A Lot of People

The nature of the company certainly affects how well a jack-of-all-trades will work within it too. The company needs to have a diverse set of people with a diverse set of projects to stay engaged. Given these conditions the jack-of-all-trades developer will be happy and yield great results.

Do You Want to Specialize?

No, not right now anyway. The web changes so fast and I have about 100 news articles to read via RSS each day. Things are changing daily, everyone has an opinion on the next greatest thing, and businesses are affected by this industry's change. I want to go where the business needs are. So I need to keep up on a diverse amount of opinions, both in technology and business.

Do business needs stay the same? Nope. More and more business owners want to take advantage of the new methods of communication online. Blogs, RSS, Viral Marketing, Widgets, Social News and Social Networks all have growing audiences and it is critical to know what they are and why they are important. I want to be that person that can execute in the widest range of these areas that I can. Can I learn it all? No, I only learn the things I care about because if I care about them, then someone else cares to.

Increase Your Productivity with Multiple Monitors

Tags: Productivity, Business | on 5/5/07

Stefan Didak's Home Office

Photo is Stefan Didak's Home Office

This office is amazing. Although it looks like overkill, adding more monitor real estate can drastically increase productivity.

  • More information up at one time.
  • Lower the amount of times that you minimize and expand windows.
  • Multitasking is much easier.

Apple didn't think it was a good idea to be minimizing and expanding windows all day either. This is why they developed expose.

Mac OSX Expose

Expose allows you to see all of your windows laid in front of you so you can choose the appropriate one. This is so much better than searching through your taskbar to find the right window.

Overall, it solved some inefficiencies and frustrations when I switch to duel monitors in 2001. It is a great investment I will never go back to one monitor. Unless, of course I have a Mac laptop.

Communicate Your Inner Geek to Business People

Tags: Business, Terms | on 5/5/07

As geeks we want to learn all of the latest shiny technologies. I find myself sometimes thinking, "Wow I know how to use Ajax, RSS, Dom Scripting, etc and now anyone would want to hire me". Well, thats true if the target audience knows what you are talking about and is looking specifically for those skills. But frankly, business people don't care and they only care if they understand that these technologies add value to their business. And honestly most business owners have no idea what I am talking about unless I put it in terms they can understand.

I put together this list of ways to describe my inner geek to business people.

Geek-to-business translation

  • RSS - An orange button people can click on so they know when your website is updated with fresh content.
  • Ajax - Faster because the page doesn't flicker when you click on things.
  • SEO - The website is written in a clean way that people searching for your site can find you.
  • Link Building - Get more people to link to you that have a similar topic to your site.
  • Server Side Coding - You need this to create logins, store customer information and anything that invo.
  • CSS - Makes your page look pretty. It speeds up making design changes.
  • Blog - You can write your own articles without needing my help.

Presenting your inner geek in a simple, almost child-like way makes people much happier with you. They think better of you and appreciate your work more. You become worth more to employers because they understand you.

If you can communicate your inner geek clearly, your chances of success are much higher. After all, why should they care that you know these things? You have to explain to them that you are excited about using your inner geek to add value to their company.