That Internal Project..

In the web development industry, most companies build applications for their clients but deep down inside want to build the “next big application” for themselves. The client work pays the bills now and the internal project will rake in millions — when or if the team can get around to building it.

I hear about these ideas all the time and doing so usually reminds me of an episode of Ze Frank’s “the show” entitled “Brain Crack“:

“I run out of ideas every day. Each day I live in mortal fear that I’ve used up the last idea that will ever come to me. If you don’t want to run out of ideas the best thing to do is not to execute them. You can tell yourself that you don’t have the time or resources to do them right. Then they stay around in your head like brain crack. No matter how bad things get, at least you have those good ideas that you will get to later.

Some people get addicted to that brain crack. And the longer they wait, the more they convince themselves of how perfectly that idea should be executed. And they imagine it on a beautiful platter with glitter and rose petals. And everyone’s clapping for them. But the bummer is most ideas kind of suck when you do them. And no matter how much you plan you still have to do something for the first time. And you are almost guaranteed the first time you do something it will blow. But somebody who does something bad three times still has three times the experience of that other person who is still dreaming of all the applause. When I get an idea, even a bad one, I try to get it out into the world as fast as possible, because I certainly don’t want to be addicted to brain crack.”

It is very common for the exciting, innovative idea to be put on the back burner repeatedly. We all do it. Somehow, you have to be able to say no to the money you could be making with client work today and spend time on your internal project which will pay off in the future.

Nothing is free. Time is money.

Spending time on your internal project will cost real money. Therefore, this expenditure must be viewed as an investment. Any work you turn down to make room in your schedule for development of the project would be considered the cost of this investment.

Do not abandon the process.

Another common pitfall when trying to build an internal project is management. People often think that you can build it on the side — poke at it for a few minutes here and there between other things. If the project is relatively simple, this may be possible. Generally not.

Once people free themselves of clients and work on their internal projects, they generally neglect to use a standard development process. Without a client breathing down their necks, developers often want to forget about deadlines, schedules, meetings, reviews, and setting up milestones.

A development team is a machine that thrives on structure. Making schedules, determining features, and having meetings are pivotal for a smooth development cycle. The normal structure needs to be maintained for internal projects. In order to be productive, you must treat yourself like you would a client because you are your own client. Schedule reviews. Set deadlines and milestones. Allocate time in your schedule as if it was paid client work.

Do not procrastinate. There is no time like the present.

Many people do the client work now and plan for the internal project later.

When? Later.

The part of Ze Frank’s “Brain Crack” video that most people should be able to relate to is the part where he says “You can tell yourself that you don’t have the time or resources to do them right.” Generally, this is just an excuse to procrastinate. You can make the time. You probably have the resources to at least get started. If you do not have the resources, you should be working on that right now.

You can do it. You are just uncomfortable with the sacrifices you will have to make to get your idea off the ground. The only way you can get it off the ground is by making those sacrifices and investing the time.

The President Could Use A Marketing Advisor

I generally do not like talking about politics. This article only includes observations on the President’s poor brand image on the internet.

Businesses use marketing and branding strategies to increase sales. If you think about how sales are increased through successful marketing and branding, you will see that the same strategies can be used in other situations.

Good branding will establish trust. Good marketing will get people listening to your message. No company or person should leave their brand image up to others, especially not the opposition. You do not want your detractors’ messages about you to be heard by more people than your own.

Branding
Look at how the President is represented on the internet. Nobody in the administration has any control of the President’s personal brand. It seems to be in the hands of the mass media, conspiracy theorists, and fanatics that swarm around social news sites. Not good.

Marketing
How does the President’s message get to the people? The Press Secretary reads it in a press conference, where representatives of the media then listens, applies necessary spin, and publishes. The mass media does not work for the government and can say whatever they want. Therefore, they should not be put in responsibility of the President’s message. With this current system, the President’s message is given to the People much like a suppository — obviously not a good marketing strategy.

As a politician, it is important for the President to maintain trust with the People of America. Yet on the internet, all we hear about is what they [may] have done wrong. If people only hear negative things about a someone or something, whether or not the statements are true, they will not be likely to trust the given entity.

I do not trust or support President Bush. How can I? I have heard too much bad and not enough good. It is possible that my assumptions (built on what I have read/heard) are incorrect, but who is telling me otherwise?

Networking: To Add Or Not To Add

While at a party last night in Manhattan, I was involved in an interesting group conversation about social networking. I was thinking on my own thoughts on the subject. We were discussing where to draw the line for adding new “friends” on social networks.

Like most people who actively participate in social networking, I have come across quite a few different philosophies on friend-adding.

“This Network Is Too Small.”
Starting on one end, there is the type that only adds close friends to their networks. They have a valid point about the definition of the word “friend” and keeping that definition consistent both online and off. However, the main problem I have with this is that it prevents many benefits of social networking. One of the most important aspects of social networking is creating potential business connections with people you otherwise would not have met.

“This Network Is Too Big.”
On the other end of the spectrum, there is the type of networker who seems to be out for nothing more than being popular. This means adding anyone and everyone, with no intention of ever communicating with them. With this perspective, social contacts are treated much like a currency that cannot be spent. They fight to get to the top for no other reason than to be so wealthy with this currency that they can swim in it. This strategy, much like the previous one, renders social networking nearly useless.

It is important for one to find a sweet spot in the middle, to harness the power of social networks. Within the last year, I have made very visible changes to my social networking strategy. A lot of people will disagree and have disagreed with my approach as of late, but I think my current position is well-justified.

I have found that two key principles of social networking can open the door for a lot of (mutually) beneficial business relationships. As you should notice, these are derived from the two extremes above, and must be implemented together.

Principle 1: Think Outside The Circle
You must reach out beyond your circle of friends when using social networking tools. If you constraint yourself to only connecting with people you know well, you will not be able to use this platform for meeting new people. If you are not meeting new people, you might as well stay off social network sites. Email, instant message, and the phone are much more efficient tools for communicating with your circle of trusted friends.

Principle 2: The Law Of Probability
If you connect with more people on social networks, you improve your chances of making very valuable contacts. This could come in the form of a skilled professional that you can work with, the CEO of a large company in your industry, or a Connector that knows those types of people and can match you up. If you do not put yourself out there, you are stifling the chances of meeting these people.

Based on these principles, I have taken a fairly unmoderated approach of connecting with people on social networks. At least 95% of my Twitter network consists of people I have never met or directly communicated with. Thanks to that large pool of individuals, I have been able to connect with quite a few relevant people in my industry, both online and in person.

“This Network Is Just Right.”
The vast majority of my social network contacts will never benefit me in any way. But for the few, highly beneficial connections I have gained because of the large, open-invitation network, it is well worth it. What makes my approach different from the popularity-seeking networker described earlier? I am not building a network to be popular. I am trying to start conversations, connect with new people, and build relationships — albeit with a shotgun approach.

My strategy might not work for everyone, but for me, it has been more successful than I expected.

Processing, The Language

I have been wanting to jump into several programming languages, recently. Unfortunately, I’m very limited on time. As a full-time Flash developer, it is bad enough that I am lagging behind on adopting AS3, Flex, AIR, and Papervision. I would love to pick up Ruby, Python, and Silverlight, too.

However, the data visualizationist in me has been captivated this year by a language called Processing. Flash is a great tool for visualizing sets of data, and has served me fairly well in the past. While Flash is mostly tied to the web (and with AIR, it takes a step out of the browser), Processing is designed to be put in many more places. More on that in a second.

Let’s start with a summary of the platform. Here is an excerpt from Processing.org:

Processing is an open source programming language and environment for people who want to program images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists for learning, prototyping, and production. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook and professional production tool. Processing is developed by artists and designers as an alternative to proprietary software tools in the same domain. Processing is free to download and available for GNU/Linux, Mac OS X, and Windows.

Processing is built on Java, which means you can create applications for the web, desktop, and mobile devices. Even more fascinating, there is a project related to Processing, called Wiring, that allows your Processing application to communicate with homemade hardware (circuit boards, solder, and microprocessors, oh my!). This means that no matter what input or output medium you want to use, Processing should be able to do it.

Before I get motivated enough to try out any new technology, I need to see it in action. The more impressive the examples, the more motivated I will be to try it out.

I found out about Jonathan Harris thanks to his TED Talk in 2006. The project that I found particularly fascinating was “We Feel Fine“. It features many colorful objects floating in space that represent feelings the application discovered while scraping blogs.

As a Flash developer, I could not miss Audi’s “Rhythm of Lines” micro-site built using Papervision3D that features moving lines in 3D space, shaping the outline of an Audi A5. I was surprised to learn weeks later that the accompanying TV spot for the “Rhythm of Lines” campaign was created using Processing. Upon doing more research on the subject, I came across this detailed AIGA article about Processing.

Another feature that Processing boasts over Flash (something I have been wishing to see added to Flash years) is OpenGL-powered hardware acceleration. Papervision3D is filling the gap a little bit, but it still requires a lot of work from the CPU, instead of throwing it onto the GPU where it should be. OpenGL support means that you can add more complexity, some shading, and other fancy effects without taking much of a performance hit.

Even though I am very short on time, if I get inspired to do a particular data visualization, I might invest some of my sleep hours into a micro-project.