|
|
An
MCSD, also known as a lead software or application
developer, software architect, or senior systems analyst, is
an IT professional who overseas the creation of software
products from initial specifications on down to final
rollout and maintenance. These products are often
sophisticated systems that run on the web, proprietary
hardware or a combination of systems.
Duties
of an MCSD typically involve managing the software
development cycle associated with producing a resilient
software application, including: specification, design,
coding, testing and maintenance. With the complexity of
modern systems, as well as with the prevalence of disparate
technical teams, top notch interpersonal skills are
required. A software engineer will generally do less
hands-on programming than a systems analyst or even an
application developer. In many ways, this is a management
role where the software engineer manages both a staff of
developers, as well as performs project management on one or
more software applications. To excel at this role, a
candidate must have strong organizational skills,
troubleshooting skills, and the ability to deal with
customers, staff and upper management with tact,
decisiveness and timeliness. A good candidate for this role
will have the backbone to convince his or her co-workers and
clients that the more time spent on specification and design
will in fact save time in coding and testing. Moreover, a
candidate should be comfortable with writing and using other
design tools associated with the frequent document creation
that occurs in all phases of the software development cycle.
A
person may consider entering this field after attaining a
Computer Science or Computer Engineering university degree
or a one or two year computer or engineering technologies
diploma from a local technical institute. With the emphasis
in engineering principles from a Computer Engineering degree
or diploma, this in some ways is preferable to a Computer
Science degree or diploma. In any event, the ability to
understand a customer’s needs (specifications), and break
that down into a coherent design is key to this job. As
well, attention to detail is important when the project
enters the coding and testing phase. Lastly, perseverance is
necessary to complete a system and move it into maintenance
mode.
An
MCSD, as he or she gains experience, generally receives more
advanced and interesting applications to oversee. Getting
the right mix of training and hands on experience will
accelerate the career growth of a software engineer. As time
passes, the software engineer can continue to specialize in
certain types of application development or move more into a
management role, or become a full time project manager.
|