Wednesday, July 23, 2008

The Main Three IT Professional Environments

Every IT shop I have ever seen is different.

The roles are different, as the purpose of IT in every environment is unique.

When I discuss this topic with people, I am always quick to point out that there are three main categories of environments that every shop falls under:

  • The software development company
  • The IT department in a company or corporate environment.
  • The IT consulting firm

The software development company

The software development company has a set of products that they have develope, packaged, and sell on the market. Their focus is to increase their market share of their niche consumer.

Their new products and enhancements to existing products are driven by the market, and their perception of what their target market want.

Creativity is encouraged in this environment and products are quite often put into the marketplace sooner to be the first to draw attention to their short-lived status of being “unique“.

The IT department in a company or corporate environment

The IT department in a company or corporate environment is more concerned with keeping the systems of the company up and working, and enhancing their systems where advantageous.

Quite often creativity is stifled as the concern is to get a project completed to meet the end user requirements. This environment is often caught with aging legacy systems with complicated hooks into new functions.

The consulting firm

The consulting firm, more often than not, is a hybrid of the software development company and the IT department of a company or corporation. Relationships with customers are most often short lived. But there are usually marketplace products developed and sold. Their approach is usually to sell a product to company or corporation, and leverage the implementation of that product in terms of customization, support, and extending their presence by performing needs analysis for potential projects the company or corporation may feel their own IT department is under-qualified to tackle.

I have worked in all three of these environments. All three have their benefits. All three have their drawbacks.
The roles of the employees in all three of these environments are as different to support the different purposes of each environment.

The ebb and flow of each of these three environments

The software development company environment is most often a pro-active one.

The software development company is usually driven by a marketing team who perform needs analysis .

They meet with a product manager to describe their concepts. The product manager uses those on their team to design a prototype to present to the marketing team and gain feedback and hopefully sign-off or commitment to proceed. From there the development team builds, tests, and continues to present to and get feedback from the marketing team. The finished product is test marketed, and if successful – put to market lead by the marketing team’s campaign.

Once on the market, the product manager in conjunction with the marketing team monitor the success and feedback of the product to determine a long term strategy for enhancements, support, and direction.

The IT department of a company or corporation’s environment is most often a reactive – although the corporate culture of the environment may be a pro-active one.

The IT department usually has two functions – to respond to the requests of company departments – within the constraints of that department’s budgets – for new software tools to perform tasks currently performed manually, or not satisfied by their existing tools.

The hierarchy of responsibilities is much deeper than that of either a development shop or a consulting firm. The CIO (Chief Information Officer) is usually a vice president level position, followed by various levels of managers depending on the size of the company and the breadth of the IT department.

Needs are supplied to the IT department by the business analysts of the requesting departments and supplied to the architects. The architects then blue-print a solution.

Components of the blue-print are then distributed to various teams, lead by a manager, systems engineer, or systems analyst who define the exact scope of their assigned components. Each sub-component is then designed and specked out.

The analysts and architects of these components meet frequently to review their specifications to ensure these components will fit together. The software developer is then let loose to write the code to meet the specifications – and nothing more than the specifications. The finished code is tested by both the developer and usually a person dedicated to the role of testing. Throughout the process, the various components are tested together to ensure cohesion of the overall system. Once testing is complete, the project as a whole is implemented in a staging environment to be tested by the future users of the system. When signoff is achieved by the users, the project is implemented and the system is put into production.

On the other side of the curtain, a team responds to problems the users of a system are experiencing. Problems are recorded, prioritized and fixed by either finding and resolving the bug in the system, or setting the data used by the system to a proper state so the system can resume operation. The cycle for such fixed is much shorter, with less testing. The priorities are based on the criticality of the system and the urgency for correction. This environment can be extremely stressful and wearing on the staff.

The consulting firm is usually a much looser organization than either the software development company or the IT departments of companies and corporations. This environment is very proactive and is geared towards establishing relationships with the customers which they hope they can translate into trust. Once the relationship exists, the consultant will search out flaws in both the customers process and systems, and ensure the customer that their solution will be inexpensive and effective.

But this perceived approach usually contradicts their intention of extending the duration of the relationship, exceeding time lines and budgets. The objective – truly and not facetiously – is to do as little as possible for as much as possible. In most cases there is no long term commitment to support the result.

Your experience with these groups may be different than mine. You may even identify more categories of environments than I have here.

Let us know what you think, what your experiences have been, and even your preferences or your opinions on each.

Let’s start ProjecTalking.

1 comment:

Anonymous said...

Good for people to know.

© 2010 Fred Brill - all rights reserved