Entries Tagged 'Software Development' ↓

Why You Should Re-architect Your Career to Amplify Your Strengths

Each of us has our own set of strengths and weaknesses but we never take the time to figure out what they are. Even if you did would you know what to do with the information?

You’ve probably heard that you need to identify weaknesses so you can fix them. After all, if you’re already strong in an area there’s no need to hone that skill, right? You should focus on your weaknesses so people don’t point and laugh at you when you try to…do whatever it is you’re weak at. Right?

That’s what most people think, but I’ve found this approach to be a recipe for mediocrity.

Continue reading →

Passion as a Competitive Advantage

My roof is leaking. In five places. Whoever thought it was a good idea to build a house with a flat roof should be forced to duplicate Google’s PageRank algorithm in assembler.

So I called a roofer, Fred, to give me a quote to fix this mess. His skin is like leather and his voice sounds like a cheese grater…signs of a good roofer in my book. And damn does this guy knows what he’s talking about.

Continue reading →

Crowdsourcing Your Product Name

Product naming is hard.

Too many factors come into play when looking for a name and it’s almost impossible to decide on the right name once you’ve stared at the same list for a week straight. This is the kind of thing that keeps you up at night, even after you’ve made the decision.

And asking opinions is fine, but more often than not the people you ask are not in your demographic:

“Hi Mom. Things are good, thanks. Hey while I have you on the phone, what do you think I should call my enterprise level encryption engine?”

About two months ago Patrick Thompson, a member of the Micropreneur Academy, was in search of a name for his speed reading eBook reader for the iPhone. We emailed several times about the process he followed to find his optimal name, and given his creative approach I wanted to share it here.

Continue reading →

The Most Challenging Part of Becoming a Freelance Developer

A few weeks ago a Micropreneur Academy member asked about getting started as a freelance developer since freelance development can be more conducive to getting started as a Micropreneur.

My first reaction is that becoming a freelance developer (or starting your own consulting firm) can also be a lot less conducive to launching a product. Instead of being able to justify a somewhat fixed salaried workday, you find yourself working longer and longer hours as client demands increase. In addition, freelance development requires a lot more mental energy than being a salaried employee. Mental energy that can’t be spent launching your product.

The next step after becoming your own boss is to realize that you only get paid when you work. When you take a week off you get squat. So even if you raise your rate dramatically, you discover that you have to be constantly working, in addition to having no leverage. Bah – that isn’t what you signed up for!

Continue reading →

MicroISVs, Software Products and Startups: Software by Rob’s Most Popular Posts of 2008

Consider this the Year in Review for Software by Rob. Here are my seven most popular posts from 2008:

The Software Product Myth
“A certain percentage of developers become unhappy with salaried development over time (typically it’s shortly after they’re asked to manage people, or maintain legacy code), and they dream of breaking out of the cube walls and running their own show. Some choose consulting, but many more inevitably decide to build a software product.

‘After all,’ they think ‘you code it up and sell it a thousand times – it’s like printing your own money! I build apps all the time, how hard could it be to launch a product?'”

Should You Build or Buy Your Micro-ISV?
“None of the products I’ve built or bought required skills beyond that of a mid-level developer. Let’s be honest, building an invoicing system does not involve insanely complex algorithms and coding chops. Most successful Micro-ISV products (and a lot of not-so-Micro-ISV products) could have been built by a few solid mid-level developers.”

Continue reading →

Book Review: Finding a New Career that Values Your IT Knowledge

A few months ago I received a review copy of Debugging Your Information Technology Career: A Compass to New and Rewarding Fields that Value Computer Knowledge. I haven’t written many book reviews on this blog, but this book caught my attention as it relates to some of my past posts on job dissatisfaction and the potential for an IT job crunch.

I’m intrigued by the unique concept of this book: to provide alternatives to IT workers looking to change careers, but who want to leverage their existing technical knowledge.

The book lists 20 positions and includes an overview of each, a job description, an example of the typical workday, advice on where to look for this type of job, and a look at how the job is likely to hold up to outsourcing and a recession.

A few of the job titles include:

  • Product Manager
  • Systems Engineer
  • Technology Due Diligence Analyst
  • Technology Insurance Underwriter
  • Intellectual Property Lawyer

For someone looking to leave software development, this book would serve as a good starting point for additional research. I would not recommend it to the casual reader (the text is a bit dry), but if you are seriously considering leaving programming it’s a good way to get an idea of where you might find refuge.

If you’re in this position drop me an email and I will send you my copy. (sent)

Should You Build or Buy Your Micro-ISV?

Micro-ISVs. I’ve been contemplating the issue of building vs. buying for the past four years.

I’ve been on both sides of the coin: I’ve purchased 10 profit-oriented software products or websites, and built three.

Knowing what it takes to develop the initial version of a non-trivial software product (read: hundreds of hours), I’ve become a fan of buying. This is based on two factors:

  1. I have no spare time and a bit of spare money
  2. Hmm…no, I guess #1 is the only reason

As a software consultant I’m booked full-time and I bill a reasonable hourly rate. So to spend 348 hours (2 months) building a product means I’m approaching a mid-five figure investment into a software product. That’s not play money; those are real dollars that don’t wind up in my pocket.

Continue reading →

ASP.NET Developers: Why Not to Use Parentheses in Directory Names

A friend of mine wrote the other day:

If you include parentheses ( ) anywhere in the directory path of a website, the error list in Visual Studio 2005 SP1 will not report the File/Line number/Column number for any compile time errors in the website project.

This has been a known issue since at least last year (I found blog posts dating from back then). One of the developers here [at his current place of employment] reported it to Microsoft months ago when they were on-site and nothing happened. I asked about it again last week after spending a couple of hours tracking down an error, so he opened a support ticket for it. A week later MS gets back to him and says “change the parenthesis to brackets and it will work fine.”

Except that we are on 3.x of the application and it’s all in MS Team Foundation Server (TFS), and TFS doesn’t allow you to rename a project (according to the guy I’m working with).

First of all, ouch.

Secondly, can anyone confirm or deny that you can’t rename a project in TFS?

Third, if you can’t rename a project in TFS…Microsoft, this is lame…fix it!

Response to ‘Two Flaws With “Time Off From Programming”‘

Giles Bowkett published a post titled Two Flaws With “Time Off From Programming” that disputes some of the thoughts in my recent article The Technology Cliff: How Time Off From Programming Affects Your Chops.

The first point he disagrees with is that leaving programming hurts your coding skills. Giles took a similar leave from programming that was similar to my foray into management, except he became a “starving artist”:

…what I lost in technical knowledge I gained in perspective…After that period, the code I wrote upon returning was more compact and more powerful. The things I built were more inventive, more original, and more worth building in the first place.

I can’t dispute first-hand experience, but I have a hard time agreeing that leaving coding for 2-4 years to become an artist is going to leave you in a better place to come back and hit the ground running writing code. Leaving for a short sabbatical is fantastic; want to throw clay pots for 6 months? Awesome…I bet you’ll come back more motivated and energized.

But the premise of my article was that becoming an artist, a manager, or a shoe salesman for several years is going to take its toll on your coding skills; I don’t see any way around it.

Next, Giles comments about my statement that “4 years could include 2 or 3 new releases of your language”:

Consider how different this sentence would be if Rob wasn’t assuming that you use one language, you choose that language, you settle on that language, and four years later, even though you haven’t written any code in it over the past four years, that language is still your language.

4 years could include 2 or 3 new languages you might use.

Suddenly it sounds like fun!

This is true; if I came back to programming after 4 years I would consider switching to a new language. But I don’t see how this changes the conclusion.

Whether you try to learn the past 2-3 revisions of a language you know, or try to learn one from scratch, the learning curve is going to be similar. I would argue that if you are an expert in a language (I don’t mean in the syntax, but the class libraries, architectures, standards, style, etc… a truly deep expertise) and you come back in 4 years, you’re going to have an easier time returning to your expertise in the language that you left, as opposed to something completely new.

Learning a new language is fun? Definitely. Easier to transition into? No chance.

Finally, Giles concludes with:

If you want time off from programming to be good for your programming skill, choose a way to spend that time off which will be good for you in general…Time away from programming is very, very healthy, and you should definitely take it now and again.

I agree with him here. I’m a hearty proponent of sabbaticals, long vacations, and lots of travel. Short times away from programming have always done me good and allowed me to return to work refreshed and with new perspective. But stepping away for multiple years is going to take its toll on your expertise, whether through new technology releases, or simply memory loss.

[tags]programming, sabbaticals, coding[/tags]

The Single Most Important Career Question You Can Ask Yourself

By the time I was 13 I had been selling candy and comic books to my classmates for almost 3 years. Though I did quite well, I was itching to try something bigger, and that meant extending my reach beyond the walls of Math class.

This was the late 80s, so resources were limited for a 13 year old living in the country. I ordered all of the free information available in the work at home section of the Penny Saver (a free newspaper consisting entirely of ads), and started going to the library twice a week to read up on entrepreneurship. I was searching for a business idea that I could pull off at 13, and after literally hundreds of books, booklets, and information packets I decided to publish my own booklet on comic book collecting.

Since I was seven years old I’ve been an avid reader. I consumed 2 or 3 books a week during my childhood, including a large collection of “crazy facts” books and the Guinness Book of World’s Records (every year). By the time I was 13 I’d been reading 2-3 books a week for 6 years, and the breadth of my knowledge was astonishing for someone my age.

I knew how the stock market worked, why Beta had lost to VHS, why Apple was losing market share to the PC, and how double-entry accounting worked (although I couldn’t do double-entry accounting). But I had no idea how to start a business. With all of my book knowledge about the business world, I had no clue how to execute an idea.

Continue reading →