Knowing your career goals early on is key to achieving them,
especially in the corporate IT sector. When it comes to software development we
can generally (and sometimes unfairly) place developers into one of three
brackets. Those who want to rise to the top of their game technically
(Specialists, Architects), those who want to end up in management (Team Leads,
Development Managers) and those who just want to stay entertained with
interesting challenges (Engineers). Let’s take a look at these three
personality types and what it is they could do to maximise their career
potential in each respect.
The platform debate rages on between developers across all
personality types, but less so in those who only seek broaden their exposure to
problem domains. Typically these individuals are passionate about problem
solving and programming, technology doesn't readily factor into their career
decisions. For these individuals the market can be tough. The nature of human
resources procurement in the IT industry at the moment is that it is very
skills focussed. A number of systems departments are understandably seeking
only individuals with demonstrated experience in a particularly relevant
technology stack. This allows them to employ productive staff with little
training and a gentle ramp-up curve. The downside is that HR tends to miss a
lot of talent in the market because of this approach and the organization
suffers as a result in the long term. Software development houses that have
mature incubation and training programmes have the ability to take on
individuals in this category and keep them challenged and entertained across a
number of domains and technologies. The “jack of all trades” developers are
valuable to an organization and make well-rounded problem solvers. So here’s
some pointers on how to streamline your career path as a software engineer:
·
Don’t let yourself get left behind. Being
unfamiliar with a platform can lead to misinformed career decisions. Do you
know what type of development work you are committing to when accepting a job
offer from a potential employer? Will you be acquiring transferable skills?
Will you be challenging yourself or will it be maintenance work?
·
Being a jack means that you need to put in extra
effort to meet the productivity of more specialized developers. Do your
research, apply common patterns and invest in understanding the technology
before diving in.
·
Focus on your core strengths: solid OO design,
patterns and software architecture. Practice applying these principles and let
them shine for you in interviews and in your work.
For the specialized individual, the market can be your
playground. Whether it be Java, .NET, iOS or Android, being a specialist comes
with a number of benefits. Firstly it increases your perceived value in the
market place. An individual with 5 years of experience in a particular
technology may appear more valuable than an individual with little experience
in a particular technology but who has a higher aptitude for software
development. This is a common oversight of a number of the larger organizations
playing the short-game but works to the advantage of specialized individuals.
The downside of course is that limiting your platform can also limit your
domain and your list of potential employers. Highly specialized individuals
tend to have greater earning capacity as their level of skill is a scarce
resource in an already small pool. If your goal is to seek out a highly
specialized skill-set there are a number of ways that you can achieve this.
·
Firstly decide on a platform (this may already
be obvious from the sum of your experience to date).
·
Do contract work. This allows you to see a large
number of problems on the platform of your choice. The wider variety problems
you solve, the more proficient you will be in all areas of your chosen
platform.
·
Participate in training and deliver training to
your colleagues. Formal certifications can carry large or little weight
depending on the person on the other side of the interview table, so it’s good
to cover bases here. Teaching colleagues is a great way to teach yourself and
being a specialist is all about having knowledge.
·
Read educational literature and stay up to date
with conversations about your technology and platform. This gives you the edge
in interviews and with your colleagues and lifts your authority as a an expert.
Then there are the developers who are passionate about
software development, but have a plan to move into a management position in the future. Whether it be technical management or people management the key
trait that organizations look for here is the ability to earn the respect of
your colleagues and make tough decisions. Being a leader is an integral part of
being a manager and you’d do well to develop a vision for yourself and your
company before having this dialogue with your organisation. Ensuring that you
have a solid track record of delivery, client satisfaction, tenacity,
diligence, integrity and honesty will go a long way in winning the confidence
of your superiors. Always be willing to go the extra mile and focus on building
meaningful relationships with your colleagues and peers.