Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
You are using an unpretentious title which is part of the misunderstanding here. I wouldn't say you're being arrogant about what a programmer should do. I think you're being humble by calling yourself only a programmer.

Gathering user requirements is often the job of a dedicated analyst, or at least a lead programmer. Translating these into a development project is the job of some sort of visionary or logistical person (like an analyst or programming lead). This is similar to a land developer or a really good general contractor in building construction. You might call this position a 'Applications Analyst', or possibly a 'Requirements Specialist' or 'Customer Needs Analyst'.

Deciding what parts need to be made and how they fit together is the job of a software designer or software engineer. This is sort of like an architect, and sometimes the job title is reminiscent of such -- 'Software Architect'.

A linguist, psychologist, or artist (or preferably all three) is best suited to UI concerns. Which is best depends upon how much the interface differs from what the users have already seen, the major goals of the interface design (being more attractive than normal, just being familiar, or actually being easier to use). In any case, some projects which a user sees have a dedicated interface designer. Programs that only talk to other programs are generally okay to have an interface done by a programmer or software designer. Ideally, this person is equivalent to part interior designer, part landscaper, and part Feng Shui master.

A programmer often is someone who simply writes programs. This is especially true of people employed specifically to maintain an already operational project with no budget for redesign or major refactoring. This might include some unit-level design decisions, but often just consists of translating the requirements of a single component at a time into code. These are the carpenters, bricklayers, plumbers, and electricians. The construction jobs of panellers, painters, plasterers, carpeters, etc. fit into this category or the one above, inclusively.

Keeping everyone working together and keeping them on schedule is the job of a project manager, kind of a general contractor of sorts. They make sure the requirements analyst's (land developer) vision reflects the user's needs and is in turn reflected in the software designer's (architect) more detailed design. They make sure the programmers (trades workers) implement what the software designer's design mandates. They make sure the interface makes sense to the user, that the main program and the interface work well together, and that everyone has everything they need in order to make all of this come together. The quality assurance is ultimately the project manager's responsiblity, as is setting reasonable timetables and providing for the needs of the people working on the project. Additional people are often used to help the project manager do all of this, abive and beyond what I've already mentioned. This can include unit testers, system testers, staff assistants, dedicated customer liasons, documentation writers and for extended maintenance programming departments (which any successful project turns out to need, of course) this can include technical support, customer complaints and suggestions staff, etc.

Under certain methodologies, many of these tasks are shared among a group, with each person filling part of every role. Extreme Programming seems to promote this to an extent, for example.

In small IT shops, in constulancy businesses which aren't dedicated to programming, in an IS department at a non IS company, or in some other cases people have to take on more than one job role. simply by neccessity. In fact, in very small businesses, such as a self-employed consutlant or a partnership with two or three people, it's common that every role in a company is upon the shoudlders of one person. Not only does this include requirements, design, initial programming, testing, debugging, maintenance programming, and documentation, but also the mundane business matters of sales, marketing, accounting, facilities management, reception, and public relations.

Just because one person fills more than one role doesn't mean there's not more than one role to be filled. A person employed as a 'Programmer' in title might be expected to do more than write code. There's really more to the job in that case than the title implies. That's where a resume comes into play, showing what a particular title really means at a particular company.

Christopher E. Stith
use coffee;

In reply to Re(2): What is a programmer? by mr_mischief
in thread What is a programmer? by BUU

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (None)
    As of 2024-04-25 00:53 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      No recent polls found