This blog is about the use of a new software engineering approach that will facilitate the strategic change that will revitalize the economy. Strategic change is the response by government and business to the strategic factors inherent in the modern business world. The strategic factors include competition, business mergers and acquisitions, trade blocs, globalization, and market and economic conditions. It also includes advances in computers such as hand-held, portable, desktop, cluster or cloud computing. The new software engineering approaches such as organic software engineering that supports social requirements, computer-supported collaboration, and social computing are also included. Finally, new telecommunications such as optical fiber, high frequency, and associated switches and routers are included.
Turbulent, dynamic, uncertain and constantly changing economic environments require business organizations to constantly monitor their environment, reassess their objectives and goals, and then to adapt to the situational context. Strategic change includes the scanning the business environment, analyzing the specific environmental contexts, and establishing organizational purpose. It also includes the realignment the subsystems (job engineering, human resource planning, organizational design, and management) in order to achieve purpose, mission, and vision. Strategic change is needed because many companies have not adapted to global realities. In order to remain competitive, business has to examine these old ways of doing things, identify the conceptual framework that underlie these systems, and ascertain the effectiveness and efficiency of these systems in the new global reality. The world has become asymmetrical and the new global reality often no longer fit the current causal, linear, operational realities. The global winner will be the business that uses information technology to support the redesign, reinvention, and reengineer of their business units. Although American companies cannot compete from low labor costs but can compete on the basis of better quality, time to market, localization, flexibility, adaptability, innovation, agility, and quality.
Reorganization is very important because the strategic factors are forcing often disparate internal and external organizations to realign their business structures in order to work more closely together. The current stovepipe traditional formal organizations generally lack the capacity for strategic change because these structures present serious barriers to the collaboration, cooperation, communication, and coordination required by integrated systems. The closed system, vertically designed business structures where information is controlled from the top-down does not function well in horizontally, integrated systems that must cross organizational boundaries. A more open system organizational design is needed because the interactions, relationships and exchanges between business units are changing and growing even more dynamic, uncertain, and complex. Businesses must act more like biological living systems rather than machines bureaucracies because organic organizations are more adaptive, flexible, and less bureaucratic.
Software technology is the means by which organizations can become organic. As software has increased the value of physical products from cars to cameras, it can also help business unit organize and better compete. New and emerging organizational designs, technologies, and a software engineering approach can help get high quality products, services, information, and knowledge to the customers in a timely manner. It can also integrate and align their financial, managerial, job engineering, human resource planning and organizational subsystems with the situational contexts and business purpose. Examples of key design attributes of innovative organizational designs include:
• Deliberative participative planning through implementation
• Centralized planning but distributed execution and accountability
• Shared responsibility and authority among all members
• System continuous innovations – all subsystems involved
• Flexible, porous, adaptive, response, fleet of foot designs
• Self-directed, self-managed, automated work teams
• Creative, innovative, entrepreneurial, empowered teams and members
• Knowledge sharing, continuous, generative, appreciative learning
• Focused high-performance commitment thinking “outside the box”
• Continuous communication with front line people cross functional, distributed, centralized hierarchical
• Crossing, functional boundaries, “boundarylessness”, “stretch”
• Resistance of stagnation and decline through change, challenge, growth, and opportunity
For example, consider a centralized planning but distributed execution and accountability
design attribute. This is much like the Organic Software Engineering Approach (OSEA). In this form of project design, strategic planning and tactical planning are centralized and the operation planning and software development are distributed. Large projects operate as an ecosystem with three basic communities, the business, the technical, and the external partner. The business community consists of user management teams, customer teams, and user teams. The technical community consists of project management, software engineers and support, and developer teams. The partners are the vendors, prime contractors, consultants, and other organizations that are outside the company. The ecosystem also consists of cross functional teams from various communities and neighborhoods.
The user management team develops the business strategies. The customer teams define the tactical software requirements in terms of the high-level software functional elements such as the systems, subsystem, software functions and capabilities. The project management team identifies the development strategy while the software engineering team develops the tactical development plans that include the technologies, processes, and artifacts (methods, tools, techniques, procedures, models) that will be used to develop the software system. The project shifts from being centralized to distributed when the user/developer teams are assigned their respective subsystems to develop. The integrated user/developer teams will have autonomy at the point of action and control. These teams will identify, prioritize, and schedule the features for each release. At this point the feature requirements are detailed, estimated, planed, assigned, scheduled, tracked, controlled and the software created.
Compare this approach with the traditional software development approach where a project starts with the developers rushing pell mell into the requirements phase. Once the requirement specification document is completed, the SDLC phases, activities, and tasks are defined, estimated, planed, assigned, scheduled, tracked, and controlled in a monolithic manner. The sole obsession is to keep the project on schedules. While the ecosystem concept puts people and the business units in the forefront of the software development process, the SDLC puts activities and schedules in the forefront. In the SDLC developers are like machines whose purpose is use the detailed processes, methodologies, and procedures much like on an assembly line to develop the software.
Information Technology and Strategic Change
Information technology is required to support the innovative designs attributes that will facilitate strategic change. Enterprises are using advances in information technology to help business units respond to the strategic factors in an organic manner. The differences between the machine systems and organic systems represent a fundamental redefinition of the software ideology. An organic ideology calls for open system projects that maximize the relationship with its environment. Organic projects are designed to achieve what the business customers want, high quality software systems that support strategic change, competition, business purpose, customer value, quality, productivity, innovation, and user satisfaction. Organic systems rely on people and the principles and practices of concurrent engineering, systems engineering, and quality engineering. Organic design structures projects and systems like biological organisms. Generally, biological systems contain vertical, multi-level relationships in a system hierarchy. Think in terms of cardiovascular, endocrine, digestive, lymphatic and respiratory systems. Biological systems are self-organized systems where each system supports a body functions. For example, the respiratory system is the system of organs in the body responsible for the intake of oxygen and the expiration of carbon dioxide. In mammals, it consists of the lungs, bronchi, bronchioles, trachea, diaphragm, and nerve supply.
IT helps business units to realign their business structures for greater integration between the various interlocking business groups. Different business units can be organized in different ways according to their situational context and business objectives. A strong convergence of various technologies enables business organizations to engage in diverse, complex, internal and external activities. It allows the business units to keep pace with the changes in technology, demographics, and economic conditions in a turbulent competitive environment. Without information technology, obtaining the necessary structural support among disparate customer organizational units is challenging. Consider the difference in an organization that supports with centralized strategic and tactical planning with flexible, adaptive, and distributed with creative, innovative, and empowered user/developer teams with centralized, hierarchical workers performing manual, operational work.
Software Total Factor Productivity
Software Total Factor Productivity (STFP) represents the productivity gains that business customers derive from creating more outputs with the same or fewer capital and labor costs. Systems that allow the customer to reduce inputs in terms of labor hours and business costs while increasing customer outputs increase productivity. Business growth creates more jobs as the increases in efficiency and effectiveness enables the company to expand its operations. As the success of a business generally depends on its ability to deliver more real value for consumers without using more labor, capital or other inputs, the measure of success of software system is the ability to help the business users increase output value without having to use more labor, capital or other inputs.
The success of software project includes the ability to deliver customer value. Customer value is the advantages that business accrues from a software system. It is the reason why companies initiate software projects. According to Robert Sessions, the loss of business value due to project and system failure is 6 trillion dollars worldwide and 1.22 trillion dollars USA. Sessions gave as an example the new electronic fraud detection system that the IRS spent $185 million to develop. The project was abandoned in 2006. According to a 2008 report by the Treasury Inspector General for Tax Administration, the Federal Government lost approximately $894 million in fraudulent refunds during 2006 because the system was not operational. That was just for 2006 alone, there is always the following years.
Realized systems often provide marginal or insufficient business value. This happens when system objectives, purpose, designs, and requirements are misaligned with the needs of the business. When the system is delivered much of the feature set goes unused because the features are not required, the users are overwhelmed with too much functionality, or the quality of the system is so poor that the users are afraid to explore beyond absolutely what is needed. A poor defect prone system that is hard to use along with inadequate software support systems could increase user dissatisfaction and decrease customer productivity. Finally, business organizations often require more than just a software solution. Many projects require the ability to integrate complimentary business solutions including organizational design, business process improvements, and reengineering under the same project umbrella.
Software Engineering Approach
A new software engineering approach based upon systems thinking must replace the mechanistic, linear, reductionism attributes of the traditional software development approach. A machine thinking ideology like the current SDLC calls for closed system projects that focus on internal needs and minimize relationships with the business environment. Closed systems projects can’t support the achievement of business value, productivity, customer satisfaction and strategic change because that is not their underlying purpose. In closed systems, software engineers are trained, encouraged, and rewarded to deliver requirements specifications on time and within budget. The results are, at best, “technically correct” systems that provide limited business or productivity value.
The SDLC is the software incarnation of the Taylorism. Even the Agile methodologies are based upon software production technique that borrows from lean manufacturing and emphasizes closed systems, efficiency, technology and process. The SDLC supports centralized, hierarchic organizations that rely on the use of detailed standard process, detailed methodologies, and detailed procedures. It ignores the importance of human behaviors and relies solely on technology and process in order to maximize efficiency. Frederick Taylor wrote that manual workers are considered to be like machines and solely motivated by money. He specifically exempted mental workers although mental workers like teachers and software engineers are treated like manual laborers. Software engineers should not be treated like machines because people, how they are managed, their skills, experiences, and knowledge, and their cultures are essential to software success. Large projects require very high levels of coordination, communication, cooperation and collaboration, the 4Cs. People their interactions and relationships are required in order to identify the right objectives, invent the right requirements, and design, develop, and support the right system. They are needed to adapt to various situational contexts, develop the strategies to achieve objectives, develop the tactical plans needed to the concurrently engineer the project, and create and execute the operational plans needed to realize the system.
Organic System Requirements
Joe Goguen, late computer science professor at UCSD identified the requirements gap. He once stated, “It is not quite accurate to say that requirements are in the minds of clients; it would be more accurate to say that they are in the social system of the client organization. They have to be invented, not captured or elicited, and that invention has to be a cooperative venture involving the client, the users, and the developers. The difficulties are mainly social, political, and cultural and not technical.”
Organic systems include the business organization’s social requirements while SDLC, ignores social requirements. SDLC requirements are the raw materials to a deterministic, manufacturing-like software engineering approach that creates poor quality functional tools. Organic software requirements consist of the functional, non-functional, and social requirements that are inputs to an evolutionary, biological oriented approach that create purposeful systems that are aligned with the business units. Purposeful systems are adaptive systems that select the most effective strategies, tactics, and operations based upon the situational context and objectives. Purposeful systems not only include the organizations work tasks and activities, it also includes the managerial, organizational, technical support, human resources and cultural elements. In inventing the organic requirements and system designs, the requirements engineer must conceptually understand the customer organization’s underlying mental model, philosophy, concepts, theories, and principles. They must understand the management constructs, cultural construct, and the organizational construct. The organizational construct includes information about the design structures and team structures, human resources and reward system, job engineering and design, and information and decision making. The cultural construct include cultural behaviors, attitudes, beliefs, norms, and values.
Purposeful systems require the definition of the purpose object as the design principle and unifying element that glue the systems objects and business units together. The purpose objects consist of the business unit’s mission, vision, and values. System definition modeling define “things” like organizations, projects, activities and many other as systems that consists of four subsystems each with eight objects. The objects are purpose, environment, boundary, inputs, processes, outputs, restrictions and feedback control. Mission is the reason why the organization exists. A mission defines something to be accomplished in terms of desired results, objectives, and goals. Values define the preferred behaviors and what is most important to the business organization in terms of thinking, feeling, saying, and doing. Values are defined, developed, and achieved through commitment, communications, and discipline. The vision is the selected outcomes that produce the desired results. Establishing what's in the vision dictates knowledge of the desired outcomes, the current outcomes, and the gap between the two. Consider a current outcome as an organization with centralized planning and control, hierarchic bureaucracy, and process control. Consider the desired outcome as the vision of a distributed, flexible, adaptive organization with creative, innovative, and empowered teams. Define the gap between the two as the social requirements for an innovative design attribute.
Supporting the new and innovative design attributes is not simply a matter of reorganizing an organization. Software systems that support innovative project design attributes require the social requirements that include different communication channels, cross-functional processes, human resources roles, and the data flows. Social system requirements must support and encourage good relationships through improvements in the quality of the interactions between the various cultures, groups, and roles that interact. As technical and process functionality are important to the work context, the ability to communicate, coordinate, collaborate, and cooperates is just as important. As such, there are need for social requirements that support collaboration, communication, cooperation, and coordination. Feedback is also a prerequisite for purposeful systems. In this case the social requirements might align the visual representation of the user interface with the desired behaviors. Studies show that the presentation of performance feedback designed in the user interface can radically alter a decision-maker’s responses and behaviors.
Consider the difference in project management. SDLC project management stresses efficiency through the planning and control of the resources needed to ensure that a project is finished on time and within budget. Project management is essentially task management that includes the creation of complex task networks that use sophisticated planning and tracking software with Pert Charts, critical paths, and earned values. Under the OSEA, however, project management has a more social orientation. With distributed project teams managing their tasks and creating the features, project managers can devote attention to boundary management. Boundary management includes open systems planning, leading the project ecosystem, and maintaining business managers, customer, and users relationships. It also includes clarifying purpose, developing strategies, and maintaining negative and positive feedback channels. Finally it means coordinating technical management, business management and external partner management, leading the development community, and responding to a changing environmental needs and wants.
Organic projects require new software requirements and system design skills, knowledge, and experiences. In addition to the technical specialists, organic projects need client facing generalists that perform activities like social network analysis, cognitive task analysis, software ethnography, organizational assessment and design, and reengineering. While there are some software engineers that require STEM knowledge the vast majority of IT software developers do not. The new roles and skill sets will combine technical knowledge with a background in the organizational, managerial, and behavioral sciences. People will need knowledge and skills in organizational design, quality and productivity, human resources, software ethnographers, organizational psychologists, cognitive software engineers, business and domain specialists, and systems theorists. This will result in the creation of more software jobs because the decrease in development costs will increase new projects and thus create a demand for both technical specialists and generalists.
Summary
“An important question that has been debated for almost a decade is whether computers contribute to productivity growth. Productivity isn't everything. However, as noted by the economist Paul Krugman, in the long run it is almost everything. Productivity growth determines our living standards and the wealth of nations. This is because the amount a nation can consume is ultimately closely tied to what it produces. By the same token, the success of a business generally depends on its ability to deliver more real value for consumers without using more labor, capital or other inputs.” Erik Brynjolfsson of the MIT Sloan School of Management
The question rather computers contribute in ongoing only because of the SDLC. If the SDLC adds value and subsequently increases productivity that that is an unintended consequence. According to Wikipedia adding value requires coordination and collaboration; changes in organizational processes, committed leadership; flexible jobs and adaptable, capable employees, supportive organizational culture and attitudes, and investment in information technology. However, the benefits from investments in information technology have been marginal and create concerns about computer productivity. The article proves that the OSEA will address these issues.