Rob Garrett - Blogs

Welcome to Rob Garrett - Blogs Sign in | Join | Help
in Search
Google

Software/Technology Discussion

Software and Technology Tid-bits

How to get ahead in the software development business

I've been working in the software development industry for a number of years now, so I decided to post some useful information for others, who maybe new to the scene, and are looking to get ahead.

I've been a developer on many a software project, been a project leader and also provided consulting services. During each of these roles I've had the pleasure of working with some talented individuals, who have taught me a thing or two. I've also worked with some dissimilar individuals who have caused a great deal of frustration in my career, but never less I have learned from them also - how not to do things.

I've listed some tips for getting ahead below. At first glimpse they may appear obvious, but it's surprising how many developers and project managers do exactly the opposite of what I've listed.
  • It's a job not a hobby - It took me a long time to learn this valuable lesson. Like many other software developers, I have a passion for writing software. Over the years, since I started at a young age, my passion has brought me through college and into a career. I'd effectively hand crafted my career from a personal interest - bonus! However, I soon found out that writing software for an employer is radically different to throwing some code together in my spare time for the hell of it. Namely, my employer is spending large amounts of cash on my efforts, which means they have some say in how I write software. It's quite amazing how software deadlines, dictation of technology tools, budgets and unrealistic time lines can really put a crimp on creativity. Before I knew it I was waking up and not liking the very thing that had kept me up enthralled to all hours of the night during college. When I complained of this problem one of my colleagues politely reminded me that this is "work" and why I'm getting paid. He suggested that I save the wild creativity to efforts outside of work.

  • Process brings about order - Get used to process. Unless you're working on a small project with a handful developers and the software is small-scale, it's likely that your employer will want you to adhere to some soft of process. Process can range from simply documenting software design to a large software design methodology, such as CMM or RUP. Either way, you're employer will most likely expect some sort sort of design documentation, work breakdown schedule and user manual. Software development is no longer just about throwing code into the machine and praying it'll work - brush up on different methodologies, learn how to use tools like Microsoft Word and Microsoft Visio and ensure you can articulate thought well in grammar, not just code.

  • The Boss is always right - seems like an obvious statement, right? This didn't stop me becoming very frustrated with the CEO, of one of my employers, because he insisted on micromanaging the project, imposing unrealistic expectations on results and always looking for a cheap way around a problem, which usually ended up costing the company more money in the end. One day I woke up and decided to go along with all his decisions. I still offered my best advice in every situation, but no longer battled for my point when my advice was dismissed. As a result I was respected more, and when the project failed, as I predicted, the CEO took the wrap for the mistake.

  •  Do whatever is asked of you by your superiors - There's a fine line here between getting ahead and brown-nosing. When the Boss is looking for a volunteer to perform an extra task on the project do your best to sign up and complete the request. The aim here is recognition, you want your superior to associate you with reliability and the ability to get anything done. Once you succeed in this lesson your boss will start looking for you when he or she needs someone special they can depend on, this will later help you to gain promotion. Never go asking for extra duties, this would be classed as crossing the fine line I spoke of above.

  • Always go the extra mile - The employees that are always remembered are those that stayed late to fix a problem in a time of crisis. Every job I've found myself in has involved at least one late night, and in some cases a round-the-clock effort. The reason for the crisis and need to stay late is irrelevant, you employer will soon forget the problem, once solved, but remember those that stayed to fix the mess. Even if you cannot assist in providing a solution to the problem, being around to provide moral support for those who can is a sure way to secure a position on the list of heroes.

  • Never forget your peers - Whilst doing a good job of securing your position with your Boss be sure not to forget your peers. Your peers are the people that will stay late with you in a crisis, help share the burden of work, and be working along side you for every day in your career. Never climb the ladder of success at the expense of your peers, this can only lead to animosity and isolation from the group. Some organizations rate individuals based on recommendations from peers members of staff, others simply watch to see how well their employees work in a team. Either way, being a team player is very important, without a team there is no solution.

  • Estimate conservatively - You've gone to the trouble of signing up extra tasks to impress your leader, but you fail to deliver on every task your assigned - not good. For you to get ahead in this field successfully you need to be known as an individual that accomplishes their goals. When asked for an estimate on how long it'll take to complete a software task be sure to take into account: margin for error, testing time, documentation time and deployment time - writing the code is only half the battle. Always over estimate by at least 50% - you'll be liked much more if you meet expectations.
    Some project managers will add extra margin to your estimate, others will assume you've over estimated and expect you to come in ahead of time, try to find out how your project manager leans and set estimates accordingly. On the rare occasion that your project manager sets impossible expectations, stick to your estimate and go on record with your assessment - do you best to meet the demands with what you have to work with.

  • Worry about today, not tomorrow - Unless you're tasked with future project predictions it is likely that the CEO or another individual high up in the food chain is responsible for planning where the project is going next. As a software developer or project manager your only concern is meeting the project objectives of the time. This objective might involve writing requirements for the client, or implementing the software, either way the road ahead has been laid for you, so there is no need to concern yourself with future endeavors.
    My friend and colleague gave me a great analogy for this, it went something like - "we're all passengers on an airplane, we should enjoy the flight and not worry about the destination, the destination is unemployment".
Share this post: Email it! | bookmark it! | digg it! | reddit!
Published Saturday, February 12, 2005 11:02 PM by Rob Garrett

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

Seun Osewa said:

Hey,

This post should be titled "How to get ahead _as _an _employee in the software development business. The "high and exalted boss" you want programmers to worship (:P) is in the software business too!

Another possible title for this post: 101 gnissiK ssA (read backwards!)
March 4, 2005 3:04 AM
 

Rob Garrett said:

I think you misunderstood my post, I'm not about brown nosing the boss, just giving them what they want (within reason). In fact I believe that my boss does read this blog.

Lots of software developers make the mistake of challenging their boss only to become frustrated and then they leave the company.

Your boss is in the position he or she is in because of experience and expertise (and occasionally because he or she has more money than God). So it's important to realize that they have authority over you and they control the bread-line. So, why put that in jeopardy by fighting with their decisions.

Of course, there are many circumstances where your boss will ask the impossible of you. In situations such as this never promise what you cannot deliver and politely explain that they are asking too much of you, which in turn will affect your performance on the project. If they constantly ignore you, then it's probably a job not worth keeping.

BTW, all of the content of in my post is based on past experience. I've been in the industry about 12 years and have been both employee and boss in that time.

Just to reiterate my point - the boss is not a "high exalted" individual, he or she is another person earning a crust the same as you and me, and in most cases they have a boss that they report to too. It's all about making life easier for everyone involved.
March 4, 2005 10:13 AM
 

Seun Osewa said:

I guess one of the reasons I felt so somfortable after reading your post is that you were linked by the MicroISV blog, which is meant to be to be "a community for -independent- software developers". I won't deny that the contents of this post be useful for the average programmer/employee.

Since you have some experience as a boss, perhaps you could balance this post it by writing a guide for the bosses, too?

"How to Get Along in the Software Business, for Bosses."

However, judging from the content of this post, you can't fault me for thinking that one of the points would be "hey Boss, you're always right!!"
March 4, 2005 1:49 PM
 

TrackBack said:

March 5, 2005 10:01 PM
 

TrackBack said:

March 5, 2005 10:02 PM
 

Rob Garrett said:

Translation for the "Independent Software Developer": The Client is always right.
March 5, 2005 10:40 PM
 

John Link said:

Very accurate info presented. If you don't think this is accurate you obviously need to start doing the above topics and see how far you get in your career vs just saying it is brown nosing.
March 15, 2005 7:25 PM
 

Rob Garrett said:

I've been reading about Microsoft Visual Team System 2005. It's supposed to help with managing process (2nd point on my list). I intend to review the CTP and put up a post about it.
March 15, 2005 8:31 PM
 

raams said:

Well,
Your suggestions were quite right. People working as developers imagine that they are very creative and have a right to do the way they do it, having the slightest respect for someone who gave them the oppurtunity to work. They become irritated when a suggestion(orrection) is given. They forget that the suggestions are mostly to help them be focussed. With due respects to creativity, it is very essential that programmers and developers listen to their bosses and always remember that they are doing a job.
January 16, 2006 3:20 AM
 

marineengineers said:

Please read about bosses and their behavior in my site.
January 16, 2006 3:23 AM
 

Anantharaman said:

how to get the software testing projects for our company for offshore outsourcing
February 4, 2006 5:44 AM

Leave a Comment

(required) 
(optional)
(required) 
Submit

Blurb


Head Shot
Rob Garrett is a British Expat living in Maryland USA. Rob is a trained software engineer and experienced in Windows .NET development.

Rob enjoys listening to Rock music, posting to blogs, driving in the country with the sunroof open, beer (not in conjunction with country driving) and spending time with his family.

This Blog

Syndication

Powered by Community Server, by Telligent Systems