Business & Management Articles

RSS Feed - Business & Management

Making Web Products is Tough

Tags: My Work, Business | Written on Jan 14, 2010

Despite putting the last two years into building products and clientele, I am still living in a cold basement of a house that I don't own. I am not giving up, though. Here, I will document the main struggles I've had in each step of building products on the web.

Planning

Nothing goes as planned. You can have a well thought-out and orchestrated plan, but it won't happen that way unless you are copy-catting other people or have built something really similar in the past. All of the products I am building are breaking new ground, so I can never estimate the time I'm going to need. We all have ideas, but I am convinced that the people who are successful are the ones that are able to build and get their products and ideas out the door. I am constantly working on my process and performance to be stronger and turn ideas into real, tangible products more efficiently.

Technology

You have to choose the framework and language you are going to build on. While building, what if you want to try something new, or different? Well, each change along the way takes more time. The software engineer part of me wants to rebuild everything in fifteen technologies and ways, but the businessman says to never change anything. So, I'm left in a weird position where sometimes I follow the software engineer inside me and improve myself, but then it take a lot longer and am happier with things. Sometimes I plow through it business-style and am unhappy with the underlying technology.

Partners

One of my companies has a board of five people and it gets to be political, where the others don't have any politics to deal with. Politics can be fine sometimes because it is good to discuss and approve things, but I prefer the latter. Keeping the amount of partners minimal is a good idea to make sure the communication and direction is clear and focused.

Resources

You need finances to buy time. Because I run my consulting company to pay the bills, I don't always have free time to build the products I want to build. When I do make enough money to buy my time to build products, I often need help to pay people the rest of my money. I am pretty much always, "broke", even though I make a good amount of money consulting. This has been a far better environment for building products than being a full time employee ever was because I got burnt out, but it still will continue to be a major challenge until one of these products becomes successful.

Moving On

I am continuing to change and become far better at building products, but this journey is proving to be long and arduous.

To be a good employee or consultant (something I'm good at) is a completely different skill than being able to pull product ideas from thin air and turn them into working reality. I tip my hat to Shaun Inman and the others who have been successful at doing this.

Pivotal Tracker is Amazing, Period.

Tags: Free Tools, Productivity, Management | Written on Jul 15, 2009

It is not very often that I am blown away by software to an (tech)emotional level. Today I was blown away. I honestly believe Pivotal Tracker could change the way I view product development from now on.

It is like someone reached inside my dreams and then made a tracking system based on it. I have even pitched this same type of idea to a business partners before: ticket items based on value-added to the business. Finally, a tracking system that works how I think.

10 Reasons I am Blown Away By Pivotal Tracker

  1. Creates charts of time line / deadline against amount of work yet to accomplish.



    Look at how huge this is.. if your manager wants to hit the deadline, he/she has to remove "points", or feature requests and slide them to a new release. There is only so much you can get done in a given time period, and Pivotal Tracker makes that clear.
  2. Centered around value-added to the business. Amount of value added in a iteration (week) is the velocity.
    • Each new feature is assigned a point value depending on how difficult it is to implement.
    • Project's velocity is based on how many points you accomplish in an iteration (week).
    • Chores and bugs are viewed as necessary overhead, but do not add value to the business so they do not contribute to a project's velocity.
  3. There is only so much you can get done in a week, realistically. Pivotal Tracker knows this and pushes new items to the backlog, showing management a good idea of what is realistic.
  4. Team strength adjusts the amount of points able to accomplish in a given week.

    Here the client was able to accomplish 9 points in a given week typically. Upon adding me, they adjusted team strength to 175%, allowing for 16 points worth of features to be shown in the weekly cycle. All features above 16 are scheduled for following weeks.
  5. The server is polled periodically, allowing you to see changes your team makes without reloading the page.
  6. Sortable, drag and drop prioritization of tickets.
  7. Clicking, "start" shows that you are working on a particular bug, avoiding team overlap.
  8. Make your project private or public.
  9. Customizable view-panes and clone existing view panes.
  10. Comment and attach files to tickets (stories).

I've always wanted a tracking system that demonstrates the value that I am adding to the business when adding features. Pivotal Tracker does this for me. its feature set is just enough to add to your experience with the tool and not over-complicate things.

Go use it now.

 

5 Tips for Managing Your Employees (and Contractors)

Tags: Business, Management | Written on Mar 15, 2009

Corporate Freedom

A freelancer on a mailing list I'm part of has to make the leap to hiring his first employee. This is obviously a good time for him, but it also can be challenging because he now has another person to consider while doing his work:

"For anybody who has had an employee, any advice? Any things I should be concerned about? I'm a little nervous about it but all in all feeling more relief than anything."

My response was received well on the mailing list, so I figure I'd share it with you as well.

#1. Make sure your expectations are clearly laid out before you start a project.

If your expectations of them are clear up-front, then there will be very little miscommunications through the project.

#2. Incorporate their input into making deadlines.

Never enforce a deadline without negotiating with them up-front. They will own up to the deadline if they had say in making it.

#3. Setup payment terms ahead of time.

Be clear and concise when they will get paid.

#4. Do some of the work yourself (if possible)

This way you will know exactly what is behind the scenes of the project and will be able to better communicate to your client what they've done.

#5. Give them benefits.

I just sent one of my contractors to SXSW and paid some of his room & board. He was thrilled, and as a result did very great work directly after I gave him that bonus.

Lessons Learned from the Worst 6 Months of My Professional Life

Tags: Business | Written on Feb 25, 2009

What I am about to share with you comes at a price. In the last few years I have shared many triumphs and positive things, but now I am going to pull from a chapter in my life that was dark to pull out lessons learned and expose the story about this company I worked for.

Early-mid 2006 was the worst 6 months of my professional life, but it didn't start that way.

How It All Started

The owner was excited, seemingly honest and downright cheerful and optimistic to work with me. He landed his first website job building an e-commerce store and needed someone to develop it. Sure, I wasn't entirely equipped for the job but I took it on. He took the risk for a very tiny sum of money and we worked on it together day and night for about 400 hours to get it done.

During this time, he yelled and swore at me for losing a few hours of data entry. I should have heeded that warning and not continued working with him, knowing that it would happen again in the future. But none-the-less, I liked the work I was doing so I continued onward.

How I Got Stuck in the Job

I really liked the guy, trusted him and we continued to take on more website jobs. I definitely saw an anger issue in him through this time, but hey - who doesn't have problems? I enjoyed the work, but figured I could not get another job doing website design in the area because it is a small area and I didn't have any kind of name for myself. I continued to work and try to get better at my job. Meanwhile, I was not making enough to pay rent and going into debt ($10/hour job, even though I had finished 4-years of schooling at $28k/year).

The Tyrannical Man Shows his Colors

I was happy with the location, but became more and more unhappy with my job as the outbursts of anger and rage moved from me, to the other workers (also hired for dirt cheap) who were yelled at (including profanities) until forced to quit. One of the workers shared with me how he became so depressed that it spread to the relationship with his wife. He finally got a job elsewhere, took it and got the heck out of there. I didn't blame him, but for the time I was stuck for the aforementioned reasons.

Learning to Listen to Grievances and Anger

After my co-workers quit from the job because of the owner's raging outbursts, I was the only one left. Why was I still there? Because I thought that by staying there it would making me stronger. It did. By hearing a list of grievances against me each day for a few months, I learned to tell truth from a lie and not get upset. This was a great skill to learn. It isn't that I wasn't listening to him, it was just that I didn't agree with what he was doing to me or how he ran his business. Even so, I sincerely checked myself to see if I really was a screw up, because his shredding comments got through to the deep parts of me. This guy once wrote out an 8 page summary of grievances against me, at one point even mentioning that I was "poisoning the well".

"Crazy", I thought. "I couldn't be such a horrible person as this man describes me to be". After a few months of realizing that I was truly well-intended (hard to do when words are so harsh) and knowing full-well that I was trying hard as I could (given the circumstances) - I knew it was time to leave.

How I Got Out

I put my resume on Monster.com and within a week was hired at in agency in Minneapolis, MN. The new job was a great move, a wonderfully refreshing experience filled with positive reinforcements and triumphs. Really, you can't get much more of a "high", after such a low. People always wondered why I was so happy and working so hard. I have testimonials to prove it.

Positive Outcome In the Midst of Working for a Nagging and Angry Boss

Through the hard times you have the potential to grow in the midst of it, and this experience was no exception.

For all those caught in a destructive working relationship with your employer I just want to give a few words of advice:

  1. Try to honestly seek out if the bad things they are saying about you are true.
  2. Sort out truth from a lie, and use it as leverage to be a better person. No one will be more honest about your weaknesses than someone who is violently angry at you, even though any grievances will be amplified beyond truth.
  3. Keep your head up, learn to deal with it and then get a new job. It will be a great one.

Final Note

Regardless of how difficult this was for me to write about such a deeply negative experience. It is hopefully worth it for you, my readers to learn from and certainly my personal health to finally get this out there.

Keep it real, yall.

Negotiating Good Contracts for Startup Companies

Tags: Business | Written on Jan 06, 2009

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.

Mitigating Unrealistic Expectations

Tags: Business, Communication | Written on Sep 25, 2008

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.

Staying Away from Blanket Statements

Tags: Communication | Written before Dec, 2007

Public Speaking

Even as a web developer we need to be aware of how we communicate. You don't have to be politically correct all the time, but at least be aware of how you phrase things.

Consider the following statements:

All ____ are ____.
____ blows away all other ____.

These types of blanket statements are almost always offensive because they put something above everything else.

Instead try the following:

This ____ suits me best.
I'm very impressed with ____ ability to ____.

This way you are putting your words into a positive statement that separates what you are talking about from others without bashing anything. Being respectful and caring enough to phrase your statements like this will help you in your personal life and career. Now, excuse me I'm off to follow my own advice!

Avoid Over Planning

Tags: Business | Written before Dec, 2007

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 | Written before Dec, 2007

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.

Working as a Jack of All Trades Developer

Tags: Business | Written before Dec, 2007

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.

Other Categories