Abstract
Software development is a predominantly social activity. It is important to view software development groups, departments, and corporations as social bodies. We study software organizations using a novel data-gathering approach that combines several techniques commonly used in social network analysis. Our techniques differ from those of ordinary social anthropology in that we help the organization introspect about itself; the technique is a “mirror” for the subject organization. We catalogued social network diagrams using a variety of visualization techniques. We have found visual patterns that correlate well to subjective measures of a good organization. We built analytical models to capture properties of the social networks, employing techniques similar to those used in established social network science. The emerging design technique based on architectural patterns provides a good vehicle for communicating organizational patterns. We have captured practices from outstanding organizations in a group of patterns that form a “pattern language” for productive software development.
Similar content being viewed by others
References
Alexander, C. (1979),The Timeless Way of Building, Oxford University Press, New York.
Allen, T. (1977),Managing the Flow of Technology, MIT Press, Boston, MA.
Beck, K. (1991), “Think Like an Object,”UNIX Review 9, 10, 39–43.
Booch, G. (1994),Object-Oriented Analysis and Design with Applications, 2nd Edition, Benjamin-Cummings, Redwood City, CA.
Brajkovich, L.F. (1994),Sources of Social Structure in a Start-up Organization: Work Networks, Work Activities, and Job Status, North-Holland Elsevier Press, Netherlands.
Brown, D.W., T.A. Burrows and P.M. Zislis (1986), “GOS: A Tool Providing Support for Graphical Human-Machine Interfaces,” InProc. of the 1986 International Zurich Seminar on Digital Communications, Zurich.
Cain, B.G. and J.O. Coplien (1993), “A Role-Based Process Modeling Environment,” InProc. of the Second International Conference on the Software Process, IEEE Computer Press, Los Alamitos, California, pp. 125–133.
Church, K.W. and J.I. Helfman (1993), “Dotplot: A Program for Exploring Self-Similarity in Millions of Lines of Text and Code,”Journal of Computational and Graphical Statistics 2, 2, 153–174.
Coplien, J.O., S. Hutz and B. Marykuca (1993), “Iterative Development/OO: The Bottom Line,”OOPS Messenger 4, 2, 101–108.
Coplien, J.O. (1994), “Examining the Software Development Process,”Dr. Dobb's Journal 19, 11, 88–95.
Coplien, J. and D. Schmidt, Eds. (1995).Pattern Languages of Program Design, Addison-Wesley, Reading, MA.
Deming, W.E. (1986),Out of the Crisis, MIT Center for Advanced Engineering Study, Cambridge, MA.
Fraser, S., K. Beck, G. Booch, D. Coleman, J. Coplien, R. Helm and K. Rubin (1994), “How Do Teams Shape Objects? — How Do Objects Shape Teams?”OOPSLA 1994 Proceedings 29, 10, 468–473.
Fraser, S.D., K. Beck, G. Booch, D. Coleman, J. Coplien, R. Helm and K. Rubin (1995), “How Do Teams Shape Objects? — How Do Objects Shape Teams?” (Addendum to theProc. of OOPSLA/94)OOPS Messenger 5, 20, 63–67.
Gabriel, R.P. (1994), “Productivity: Is There a Silver Bullet?”Journal of Object-Oriented Programming 7, 1, 89–92.
Gamma, E. (1992),Object-Oriented Software Development Based on ET++:Design Patterns. Class Library, Tools, Springer-Verlag, Berlin.
Gamma, E., R. Helm, R. Johnson and J. Vlissides (1995),Design Patteners: Elements of Re-Usable Object-Oriented Software, Addison-Wesley, Reading, MA.
Hartley, J. (1992),Concurrent Engineering: Shortening Lead Times, Raising Quality, and Lowering Costs, Productivity Press, Cambridge, MA.
Harrison, N. and J.O. Coplien (1996), “Patterns of Productive Software Organizations,”Bell Labs Technical Journal 1, 1, Summer 1996.
Janis, I.L. (1971), “Groupthink,”Psychology Today, November 1971, 43–46, 74–76.
Katz, D. and R.L. Kahn (1978),The Social Psychology of Organizations, 2nd Edition, John Wiley and Sons, New York.
Koenig, A. (1995), “Antipatterns,”Journal of Object-Oriented Programming 8, 1, 46–48.
Krishnamurthy, B. and D.S. Rosenblum (1991), “An Event-Action Model of Computer-Supported Cooperative Work: Design and Implementation,” InProc. of the International Workshop on Computer Supported Cooperative Work, IFIP TC 6/WG C.5, pp. 132–145.
Mackenzie, K.D. (1986), “Organizing High Technology Operations for Success.” InManaging High Technology Decisions for Success, J.R. Callahan and G.H. Haines, Eds.
Moreno, J.L. (1934),Who Shall Survive?:Foundations of Sociometry, Group Psychotherapy, and Sociodrama, Nervous and Mental Disease Publishing Co., Washington, DC.
Ouchi, W.G. (1981),Theory Z: How American Business Can Meet the Japanese Challenge, Addison-Wesley, Reading, MA.
Schneiderman, B. (1980),Software Psychology, Winthrop Publishers, Cambridge, MA.
Sengé, P. (1990),The Fifth Discipline, Doubleday, New York.
Swieringa, J. and A. Wierdsma (1992),Becoming a Learning Organization, Addison-Wesley, Reading, MA.
Wasserman, S. and K. Faust (1994),Social Network Analysis, Cambridge University Press, New York.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Cain, B.G., Coplien, J.O. & Harrison, N.B. Social patterns in productive software development organizations. Ann Software Eng 2, 259–286 (1996). https://doi.org/10.1007/BF02063813
Issue Date:
DOI: https://doi.org/10.1007/BF02063813