Organizing for Effective Management - Software Implementation and Management - Software Engineering: A Methodical Approach (2014)

Software Engineering: A Methodical Approach (2014)

PART E. Software Implementation and Management

Chapter 19. Organizing for Effective Management

The final topic in this introductory course in software engineering will address the matter of organizing for effective work. The issue was first introduced in chapter 1, and revisited in chapters 2 and 3. This chapter revisits the matter once more, this time focusing on the organizational structurethat must be in place in order to support and facilitate good software engineering.

Let us for the moment concentrate on non-software engineering organizations: Some of these organizations have Information Systems (IS) departments/divisions; others have Information Technology (IT) departments/divisions; others have Software Engineering (SE) departments/divisions. Generally speaking, IT is regarded as the broader term, and when used, often includes IS or SE in its scope. However, in many circumstances, IS/SE is used loosely to include IT functions as well. Whether a division or a department is in place is to a large extent, a function of the size of the organization. Large organizations tend to favor IT, SE, or IS divisions that are in turn made up of two or more departments; each department may consist of two or more units or sections. Smaller organizations tend to have IT, SE, or IS departments that may consist of smaller units or sections. Whether a division or a department is in place, there is usually a top IT/SE/IS professional who is ultimately in charge of all the IT related operations. This individual typically operates under the job title of Director or Chief Information Officer (CIO). It is imperative that the appropriate authority and scope of control be accorded to the CIO. In many cases, this translates to the incumbent reporting to the President or the Chief Executive Officer (CEO). The scenario where the CIO reports to the Chief Financial Officer (CFO), though prevalent in many smaller, more traditional organizations, is hardly tenable.

In software engineering firms, the approach is somewhat different. Not only do these organizations need IT support, they are in business to provide IT/SE services to the public.

This chapter examines both scenarios. The discussion proceeds under the following captions:

· Introduction

· Functional Organization

· Parallel Organization

· Hybrid Organization

· Organization of Software Engineering Firms

· Summary and Concluding Remarks

19.1 Introduction

Chapter 3 alluded to the alternatives to organizing a software engineering team, without much discussion. We shall revisit this issue here, and add more clarity. How the IT, SE, or IS division/department is organized will vary from one organization to the other, depending on the following factors:

· The role that IT plays in the organization

· The size of the organization

· The complexity and scope of the organization’s information infrastructure

· The nature of the business

· The preference of the CIO

Three approaches to organizing the IT, SE, or IS division/department have been observed:

· The functional approach

· The parallel (project-oriented) approach

· The hybrid approach

Since these approaches apply mainly to non-software engineering companies, attention will also be given to how software engineering firms are typically organized.

19.2 Functional Organization

The functional approach is the most stable and widely used approach. Sections (meaning departments of a division or units of a department) are defined to reflect a specialization (division) of labor. Figure 19-1 illustrates this structure.

image

Figure 19-1. Functional Organization

Advantages of this approach are as follows:

· There are well-defined areas of specialization; employees in these areas will be very proficient at their work.

· The reduced span of control promotes effective communication within the functional sections.

· The approach forces good product documentation.

· The software product created is likely to be one of high quality.

· It provides an orderly approach to achievement of long-term goals.

· The approach provides a sense of stability to team members; for instance, people like the idea of having clearly defined job titles, offices, and roles.

Disadvantages of this approach are as follows:

· Inter-group communication may be strained.

· Because a single project is spread over several sections, it might be more difficult to meet targets.

· The approach promotes a lack of overall perspective of a given project, or the broader information infrastructure among employees of any section. Having job rotations can significantly minimize this drawback.

This approach is ideal for a medium/small organization with a limited (manageable) number of projects in a given time horizon. However, it is widely used in small, medium, and large organizations due to its stability.

19.3 Parallel Organization

In the parallel organization (also called project-oriented) approach, the division/department is split based on specific projects. The idea is to preserve the coherence of software engineering projects. Figure 19-2 illustrates this structure.

image

Figure 19-2. Project-oriented Organization

Advantages of this approach are:

· There could be parallel development of several projects.

· There is likely to be good communication among team members.

· This approach could enhance motivation of team members.

· The likelihood of short-term goals being realized is enhanced.

· Members of a section have a broader perspective of their assigned projects.

Disadvantages of this approach are:

· The project leader could be easily overloaded.

· The possibility of non-uniformity of standards between teams is increased. This could be mitigated by first establishing global standards for all projects.

· Members of a particular project team could be totally oblivious to other projects and by extension, the global information infrastructure. Having project rotations, where employees get the chance to work on different projects, could minimize this.

This approach is ideal for a large or medium-sized organization with a large number of projects within a given time horizon.

19.4 Hybrid (Matrix) Organization

The hybrid approach seeks to maximize the advantage of the other two approaches, while avoiding the disadvantages. This idea is to have people with default job descriptions, who can be pulled and assigned to various projects. Figure 19-3 illustrates this structure.

image

Figure 19-3. Hybrid Approach

This approach provides the following advantages:

· It facilitates assignment of teams depending on the need.

· It promotes lateral and vertical communication.

· It can be both long term and short term.

The following disadvantages may result from the approach:

· The approach could result in conflict of project priority among team members.

· There could also be conflict on reporting authority.

· Conflict on resolving project progress versus personal performance could arise.

This approach is ideal for the very large, competitive, sophisticated organization, where project teams are dynamically formed. It is ideal for companies that will specialize in several large projects within a limited time horizon. It is not as widely used as the functional approach or the project-oriented approach.

19.5 Organization of Software Engineering Firms

Software engineering firms are in the business of software construction and marketing. As you can now attest, software engineering is a very wide field with opportunities in various areas of focus. Typically, a software engineering firm focuses its attention on a finite number of product lines that are consistent with its areas of focus. This products-set will expand as the company grows and widens its scope of interest. Figure 19-4 provides a summary of the software product lines for three of the leading software engineering firms in the industry. For more information on these companies, visit their respective websites as provided in section 19.8.

image

Figure 19-4. Software Product Lines of Leading Software Engineering Firms

Due to the wide range of interests that these leading companies have, software engineers are necessarily placed into various teams as required. For these companies, the parallel organization and the hybrid organizations (particularly the latter) are therefore the more suited organizational approaches. Note also that in addition to writing software as one of its primary functions, these companies also need IT/IS/SE divisions/departments for their internal operations. Figure 19-5 provides an illustrative organization chart that could serve a small or medium sized software engineering firm. In the figure, the Software & Systems Division could use the structure shown as the base from which individuals are drawn for various projects.

image

image

image

Figure 19-5. Sample Organization Chart for a Software Engineering Firm

19.6 Summary and Concluding Remarks

Let us summarize what has been covered in this chapter:

· An IT, SE, or IS division/department may be organized using the functional approach, the project-oriented approach, or the hybrid approach.

· The functional approach is ideal for a medium/small organization with a limited (manageable) number of projects in a given time horizon. However, it is widely used in small, medium, and large organizations due to its stability.

· The parallel approach is ideal for a large or medium sized organization with a large number of projects within a given time horizon.

· The hybrid approach is ideal for the very large, competitive, sophisticated organization as project teams are dynamically formed. It is ideal for companies that will specialize in several large projects within a limited time horizon. It is not as widely used as the functional approach or the project-oriented approach.

· Large software engineering companies tend to organize themselves based on product lines and geographic locations.

· Small software engineering firms tend to be functional in their organization.

This completes the course. This text has provided a methodical approach to software engineering, which if employed, will set you firmly on a path of designing and developing software systems of a high quality. Feel free to review previous chapters as needed, or to check the appendices for additional explanations and illustrations. The next chapter provides you with some sample examination questions and exercises. It has been a pleasure being your tour guide.

19.7 Review Questions

1. Describe the functional approach to organizing an IT/IS/SE Division/Department. Identify the advantages and disadvantages of the approach. State a scenario that would warrant the use of this approach.

2. Describe the project-oriented approach to organizing an IT/IS/SE Division/Department. Identify the advantages and disadvantages of the approach. State a scenario that would warrant the use of this approach.

3. Describe the hybrid approach to organizing an IT/IS/SE Division/Department. Identify the advantages and disadvantages of the approach. State a scenario that would warrant the use of this approach.

4. Which organizational structure is more suited for a medium sized or large software engineering firm? Defend your answer.

19.8 References and/or Recommended Readings

[IBM, 2010] IBM. http://www.ibm.com (accessed October 2010).

[Microsoft, 2010]. Microsoft. http://www.Microsoft.com (accessed October 2010).

[Oracle, 2010]. Oracle. http://www.oracle.com (accessed October 2010).

[Sprague, 1993] Sprague, Ralph H. and Barbara C. McNurlin. Information Systems Management in Practice. 3rd ed Eaglewood Cliffs, NJ: Pretence Hall, 1993. See chapter 1.