Face Your Fear of Failure With Technology and Start Building

It’s easy to get into a non-productive, fear-induced rut, especially when it comes to creating something with the infinite amount of technology we have today. We start to think that the tools we have aren’t the right ones to get the job done, the processes we have in place aren’t efficient and “setup correctly”, and the idea we have isn’t quite right.

I have been throwing some ideas around about a new piece of software that I want to create for the web, iOS, and Android for some time now. But, I tell myself I just don’t have enough knowledge to make it happen. What it really comes down to is me not having enough guts to create something and be OK with it if it is a failure (which it probably will be; at first).

Rather than being afraid that you don’t know enough, or that you possibly couldn’t create what you wanted to create, I’ve found some guidelines that have helped me break through the fear of failure and start building.

You know enough to get started

I constantly convince myself that I need one more tutorial for a certain framework or programming language before I can get started on projects. I tell myself I don’t know enough yet to make a good application that people will want to use. The problem is that I always think that I need one more tutorial to make my ideas turn into usable apps. There is nothing further from the truth.

The problem that many developers and creative people have is they think that they don’t have enough information to complete what they want to create. The truth of the matter is that you may not have all the information that you need to complete your creative endeavor, but you sure as hell have enough to get started. So, get started and the pieces will fall into place.

Pick a technology and stick with it

A good technologist knows how to use a toolset to solve problems. The problem with that is picking the toolset. I have been going back and forth on what technology to choose for the application I want to develop. Should I go with Ruby on Rails, something that I’m not extremely familiar with, but familiar enough with, or should I stick with what I know now?

Unless using a different technology is part of the app being successful or you really want to try a new technology with a new project, then stick with what you know. This reduces the barrier to get started.

You will probably fail, so do it now

My biggest fear is that I will make something and no one will use it (except for me of course). But, it’s really the beginning of the last sentence that is the problem.

“My biggest fear is that I will make something…”

Anything after that is just part of the problem. I’m afraid they will hate it, I’m afraid it won’t look right, I’m afraid of everything about it.

The reason that we have this fear of failure is that something in the past is giving us false evidence today that our worst fears will be imagined. I’m here to tell you (and myself) that you will probably fail, at least at first. So, instead of being fearful of failing, at least create what you can, fail, then iterate. You will be better and stronger for it in the long run.

Besides, technology is so awesome now that you can write a book, create a new app or game, or movie with hardly any cost other than your time. You aren’t losing anything when you fail; you are gaining the incite of what will and won’t work.

Everything will fall into place, as long as you let it

So, rather than fear that you don’t know enough, aren’t tech savvy enough, or will fail miserably, simply move forward and figure it out as you go. You don’t need a crazy GANTT chart or in-depth requirements document to start creating something. You don’t need expensive tools and special processes to make things happen. What you need is some standard technologist skills, time, and the lack of fear of failure.

Now, instead of searching for one more article, trying to find out how to lose the fear and create things, just go create things.

Ubiquity is a Feature

Are you a Mac fanboy? A Windows “Power User”? Do you scoff at how “zealots” tote around their iThings and disregard anything and everything else as being a viable option? If so and you are a developer or creator of software, you may want to take a step back and consider including the “ubiquity feature” in your apps.

Cross platform app development is here to stay. So, rather than disregard it, use it as a feature of your software.

Other OSes exist

I have had quite the transition from Windows user, to Linux user, to Windows “power user”, to Mac, to anything under the sun user. What I still find hard to believe is that some developers only offer their software for certain “platforms”, even with the availability and growing power of creating a web and mobile applications. The fact is that there are other OSes in the world.

Many Mac aficionado tend to think that there are only Macs in this world. As Apple has been making a killing lately with iOS and even with OS X, we have to remember that the majority of people on earth run Windows. This of course will probably change as Microsoft has been digging their own grave for well over ten years now because of their stagnation, but the fact remains that there are many OSes and platforms out there to support.

We should plan for them

There may be a number of good reasons why developers create software for a certain platform or another, but if they are creating frontward facing services for end-users, it seems like a real misstep for them to not use web and  HTML 5 technologies to make their apps available to all.

Developers (especially fledgling ones like myself) should plan for this. Rather than develop apps for a certain platform, we should be opening them up to anyone and everyone. We are limiting ourselves because of lack of experience in a platform or just plain “zealotness”. At the very least, developers should offer robust APIs so that other developers that have an interest in a certain platform can interface with their software.

Cases and points

One good example of a software company that is doing this right (other than the whole not charging anything part) is 6Wunderkinder. They used Appcelerator’s Titanium products to make Wunderlist available online, for Mac, Windows, Android, and iOS in record time. And for the most part, everything works without a hitch. We can argue whether Wunderlist has the features that one needs for tracking their todos, but what we can all agree on is that in this case Wunderkinder has made ubiquity a feature.

Twitter is a great example of an app and service that made a great API for developers. This can be argued to be one of the main reasons that popularity for Twitter grew so quickly.

Another good example of this is the webapp Toodledo. It may not be the most grand, exciting, or pretty app, but Jake at Toodledo has done a hell of a job of making his app ubiquitous as well as created a great API so third party developers can create applications that work with it. Yet another is the new app Asana (one that a good friend has adopted over an app that can’t be used cross platform) which has a very responsive web interface. The mobile app is sort of lacking, but new additions are made consistently.

Other apps like OmniFocus (or anything from the OmniGroup), Microsoft Office (although it’s getting better) and others are limiting themselves by not giving users the ubiquity feature or decent APIs for third party developers. These developers may scoff and say things like, “well, you can’t get real work done on a Mac anyways (yeah, that’s you M$),” or “we want to only cater to the Mac platform,” but the fact is that the OS is becoming less and less important with the availability of the web and the growth in the power of web and mobile technologies.

Conclusion

I can’t say that apps that are only for iOS or Mac or Windows won’t do well (because apps that are only for those platforms continue to do well). What I can say is that ubiquity is a feature, that cross platform app development is important, and should be added to any new application that is being released. Whether the apps are ported to a specific platforms, available on the web, or have an API that other developers can access, developers need to pay attention and make their apps accessible from anywhere at anytime.

Become a Technologist, Not a Specialist

My first job out of college last year was a Programmer Analyst position for Erie Insurance. I loved going into work, programming most of the day, and solving problems. What I came to find out though was that I didn’t want to be pigeonholed as “programmer” or a “developer” my entire life.

I wanted to be able to do more, learn more, and be more versatile in the IT field. Instead of being a specialist, I wanted to become a technologist.

What is a technologist?

According to the dictionary definition, a technologist is:

a person who specializes in technology.

That’s a little too vague for us. For us, a technologist is someone who specializes in the IT field, works on a computer most of the day, and wants to create businesses, software, and services with their IT talents.

Don’t limit yourself

Some people may think that if you are a generalist rather than a specialist then you aren’t good at anything; just kind of good at everything. This is a terrible way to look at it.

Why can’t someone be good at programming, design, understanding networks, and administrating servers all at once? People can be, and they are doing it all the time.

Sure, you can concentrate on one or two things and get really good at those things, but without the basis in everything else tech, then you are limiting yourself. So, don’t do that. Rather than being a specialist you should try to become a technologist.

It keeps you sharp

Being a technologist pushes you to learn new things all of the time. If you aren’t continually learning and improving your skills, then you are back pedaling and becoming antiquated. In the tech field, there is nothing worse than feeling and being antiquated, that is, unless you don’t really give a shit about your job or are just collecting money to pay the bills (which wouldn’t be in the technologist’s spirit).

Striving to have a general backbone of technology knowledge is a hard thing to do, but doing so will keep you sharp and wanted by companies, as well as give you the freedom to start your own business ideas because you can do a lot of the stuff by yourself.

It keeps you interested

Sure, if you specialize in something you can get really very good at it, possibly be the best at it, and die doing it. But, what about all the other fun and exciting things you can do when it comes to the IT field?

If I’m a straight DB Admin for a large company, I can’t just say, “hey, I think that I want to design the interface for our new customer-facing web app.” Even if I wanted to do this sort of thing, most companies would require that I have several years experience in front-end development and blah, blah, blah.

Generalizing your base tech skills will help you stay interested in the field. Sick and tired of learning about networking? No problem. Take a look at some jQuery and use it to build a more dynamic site.

How to do it

Rather than concentrating on one aspect of IT you should get a solid, base understanding of the following 7 things to become a technologist:

  1. Programming
  2. Computer hardware, software, and networks
  3. Design
  4. Usability and user interaction
  5. Business
  6. Communication
  7. Creativity

With these you are well on your way.

When it comes to any of these disciplines you don’t have to become the next great software developer or a Steve Jobs type of businessman (although you may). What you will do is become very familiar and comfortable with the above disciplines and then start to concentrate on one or more of them going forward. You will also make sure to keep up with new trends and developments with the 7 aspects in the years to come.

You can’t just learn these things once and call it good. You have to keep up with them to consider yourself a technologist.

Conclusion

Being a specialist isn’t all it’s cracked up to be. By being a specialist you run the risk of not challenging yourself enough, not keeping up with the times, and becoming antiquated.

By becoming a technologist, you will become well-rounded and give yourself a basis of technical and business knowledge to further your skills in the IT field. As I’m making the journey to become a technologist myself, we will revisit these 7 aspects.

Edited on Saturday 18, 2012 – I realized that one thing was missing from the 7 Aspects of Being a Technologist. Creativity. Instead of going to 8, I decided to put networking in with computer hardware and software.

Making Mission Control and Spaces Work for You

The MacBook Air is all the rage these days and with its small form factor awesomeness comes its small screen. This can be a blessing and a curse, especially for someone that uses a bunch of apps and may be used to using them side-by-side on larger screens. Luckily, with the new advancements of OS X Lion’s virtual type of desktops (which Apple calls Spaces and has integrated into Mission Control), you can create a pretty standard way to view and use your apps. Not to mention organize them so they aren’t all over the place (I’m looking at you, Safari).

1. Create some spaces

There is a couple of ways to do this. If you haven’t turned off Lion’s gestures, simply swipe up on your trackpad with three or four fingers. If you don’t have a trackpad or have gestures turned off, then simply click Mission Control in your dock or Applications folder.

Once there, put your mouse all the way up to the right and you will see a ‘plus’ sign appear. Click on it to add a space. You can add up to 16.

2. Assign apps

Now that you have some spaces created you can start assigning apps to each space. Say you want to assign Safari to space (desktop) 4. Go to a Safari window, click and drag the window’s title bar to the left or right edge of your screen to move it to another Space. Or, get into Mission Control mode (swipe up with 3 or 4 fingers or click on the app) and drag the window to whichever space you want it in.

Once you have the app in the space that you want to assign it to, go to your Dock, control-click on the app, choose “Options”. Under “Assign To” choose “This desktop.” Now, anytime you open another windows or instance of the app, it will open it on the desktop that you selected. Talk about being a high-strung Mac, dude.

This can be pretty darn handy when you want to group some apps. Case-in-point is when I want to use BBEdit and Marked in the same window. I just assign them to the same desktop and I’m done.

What about full screen mode?

I personally love full screen mode in Lion and use it like crazy on three main apps: OmniFocus, iCal, and Sparrow. But, anything else where I am comfortable with more than one app in the window, I assign to a desktop (like BBEdit and Marked, or Safari, Tweetdeck, and Reeder).

Caveats

You are going to set this up and be so happy that you can swipe left and right between all of your apps as well as be comforted with the fact that all of your apps’ windows will be in one place. That is until you start to see the quirkiness of Mission Control.

You will notice that if you make some apps a full screen mode app it will “dislodge” it from its space and create a totally separate space with the name of the app, even if you assigned it to a space. This will then leave you with the Space that it was assigned to in front of it in Mission Control view.

Another weird one. When you pull up your dock and click on an app that is assigned to a Space, rather than just moving you all the way to that Space, Mission Control will move that Space directly to the right or the left of the Space that you are in and then move you to it. This basically screws up the order of your Spaces (meaning that you nice, Desktop 1, 2, 3, 4 order can easily turn into Desktop 1, 4, 2, 3). This sort of behavior also happens to Spaces that are full screen apps.

Sounds confusing, huh? Yeah, it is. But you can turn this type of behavior off by going to Settings, Mission Control, and unchecking “Automatically rearrange spaces on most recent use”. This will allow you to arrange your space anyway you want and then they will be “locked” in that order.

In conclusion

It’s easy to assign apps to Spaces (desktops) in Lion which will make your small 13“ or 11” screen not seem too limiting. Also, the ability to keep track of those pesky Safari windows is always an added bonus.