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“.

Hey,
<br>
<br>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!
<br>
<br>Another possible title for this post: 101 gnissiK ssA (read backwards!)
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.
<br>
<br>Lots of software developers make the mistake of challenging their boss only to become frustrated and then they leave the company.
<br>
<br>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.
<br>
<br>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.
<br>
<br>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.
<br>
<br>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.
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.
<br>
<br>Since you have some experience as a boss, perhaps you could balance this post it by writing a guide for the bosses, too?
<br>
<br>"How to Get Along in the Software Business, for Bosses."
<br>
<br>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!!"
Translation for the "Independent Software Developer": The Client is always right.
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.
<br>
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.
Well,
<br> 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.
Please read about bosses and their behavior in my site.
how to get the software testing projects for our company for offshore outsourcing