Classification methodologies, models and standards for managing software development

May 3, 2007 | Category: Articles

Choice of design methodologies, models LC software metrics projects, and other management tools software is a fairly difficult task for software companies and project teams. In practice, they consider their limited range, suited to the problem of choice without regard to the specific company and project. A useful tool for solving the problem of choosing a classification. The article presents a classification of methods, models and standards for managing software development, based on their content and scope.

Why the methodology? Approaches to the choice of methodologies, models and standards depend on the intended use. Typically, the methodology used for different purposes:

  • As a reference (desired state), IT project management and IT company "effective methodology - the silver bullet";
  • To justify the current practice of project management. As a proof (justification) correct decisions
  • As a guide, which contains specific recommendations - "methodology"
  • As a set of requirements for customers, partners, owners, government agencies, professional associations - the "standard"
  • In order to ensure "effective" dialogue between managers, project team members, clients and subcontractors - "glossary"
  • To understand the current practice - 'concept'

The choice of methodologies.

Management and project team members should develop a common understanding on the objectives and management of IT projects and IT company. Solving the problem requires a choice of two types of competencies:

  • First, competence in the methodologies
  • secondly, the competence of the approaches to the selection.

To solve the problem of choosing a classification execute methods, models and standards for IT project management. In the first step we define the possible signs of grouping and select the group on these grounds.

By the nature of study recommendations: conceptual and empirical.

The conceptual model derived rational-logical method, and empirical - sensually experienced. The basis of the conceptual tools are concepts of management theory, such as process management and re-engineering of business processes, project management, quality management. Universal concepts are adapted to the peculiarities of development management software, which is distinguished by the project nature of the activity, technological flexibility of the design, the uncertainty of requirements for the expected result and high risks.

An example of a conceptual model of a maturity model processes SEI (Capability Maturity Model, CMM). PRINCE methodology is conceptual and rational unified process (Rational Unified Process, RUP).

The empirical methodology developed on the basis of theoretical generalization of good practices of IT projects. Examples of empirical models serve as SCRUM, XP, Crystal.

Depending on the purpose of: maturity models and process models, design methodology, and individual and group practices.

Maturity Model CMMI, SPICE model evaluation processes and ISO 9000 are used to manage IT company (division). The design methodology: MSF, SCRUM, XP, used for IT project management software development.
Depending on the purpose of: maturity models and process models, design methodology, and individual and group practices. Maturity Model CMMI, SPICE model evaluation processes and ISO 9000 are used to manage IT company (division). Design methodology: MSF, SCRUM, XP, used for IT project management software development.
Methodology for implementation of information systems used to organize the implementation project. Team and individual practices are used to continuously improve the effectiveness of teams and individual developers.

Depending on the project: a predictable and adaptive.

Projected methodology based on the premise of the possibility and desirability of detailed planning for the future. To formulate an IT project requirements to the system being developed, formed a project plan and determined the need for resources. Changes in the project plan and requirements are considered undesirable. The design methodology used in this class cascade model life cycle.

Adaptive methodology aimed at overcoming the incompleteness of the expected claims and their constant changes. At the heart of the adaptive methodology is an iterative life cycle model. An example of adaptive methodologies are Crystal, Extreme Programming. Adaptive methodologies take into account the psychological characteristics of the software development process. One of the most important success factors for the use of adaptive methodologies is highly qualified specialists in the first place - the developers.

By the nature of knowledge and focus: engineering, management, and integrated. Engineering tools based on technological principles and are aimed at improving end-products, such as program code, test cases, prototypes, documentation. Engineering tools necessary skilled developer. Management tools based on the principles of control theory (management), they are based on concepts such as total quality management, project management, knowledge management. Integrated tools integrate engineering concepts and management concepts.

Design methodologies are at the heart of control theory in software development, so they can offer an expanded set of groups based on various characteristics of the project.

Depending on the project risks (suggested by Alexander Cockburn.) Depending on the nature of the loss in case of unsatisfactory performance of software projects are allocated to different types of risks:

  • "Loss of comfort"
  • "Losing money"
  • "The loss of big money and business"
  • "Loss of life"

Depending on the technology of the project (for project methodologies): universal, structural, object and Metrology for service-oriented architecture (SOA).

There are two groups of design methodologies: methodologies for managing software development and methodology of information systems (IS). Methodologies provide guidance on the use of separate tools: metrics, technical standards, graphical modeling languages. Methodology includes a description of the recommended model development life cycle (introduction) software model of the project team and the roles, as well as the methods used, techniques.

Depending on the underlying methodology of project management software development life cycle models, design methodologies ranging from classical to the cascade of iterative methodologies. Methodologies for implementing information systems are a set of methodologies designed specifically for the implementation of any information system. In some cases, one system may be several alternative methodologies for implementation.

Methodology for managing IT projects are formed on the basis of the theory of project management. Models of IT companies are based on the concept of total quality management and process management. Universal concepts of management (total quality management TQM, process management and reengineering processes beznes BPR and project management PM), as well as management standards such as ISO 9000 and accumulate experience best management practices, which became the basis of methodologies to improve software development companies, such as the Capability Maturity Model (CMM / CMMI), standards for evaluation and process improvement (SPICE), and TickIT. These models and standards govern the organization and management, and technological environment in which the applied design methodology.

Independent cluster are individual vehicles, among which is its own development process (PSP). The basis of the individual techniques are also the concept of management. Practical implementation methodologies IT project management metrics, and make possible the modeling languages. Metrics are used to obtain actual and planned quantitative estimates for processes, projects and products. The use of metrics is an indirect sign of the concepts of quality management in software development and maturity of an organization development processes.

Graphical modeling languages ​​used to create a clear and consistent requirements and design solutions. Universal Modeling Language (UML) allow one to translate the graphical notation in the project code, and generate graphics based on the description of the code. The development of graphical notations, as part of computer-aided design has an impact on the design methodology.

In project management, software development there is a set of standard (model) problems that can be addressed equally, regardless of the technical and organizational features of the project and select a methodology. The method used for solving a problem, and include a description of the application, the algorithms use a description of the source data. Methods may include the use of certain metrics, modeling languages ​​and standards. Techniques include complete recommendations to address specific design problems, such as risk management, or evaluation of complexity of the project. Examples of techniques are SEI Risk Evaluation Method or COCOMO. There are a group of standards governing various aspects of software development. Standards are developed by international and national standards organizations, industry committees, research institutes, large companies, such as ISO (International Organization for Standardization), SEI (Software Engineering Institute), DoD (Department of Defense USA), IEEE (Institute of Electronic and Electrical Engineering , Institute of Electrical and Electronics Engineers), IEC (International Electrotechnical Commission), as well as IT companies: Bell, Hewlett Packard, Sun Microsystems, IBA, Oracle, Microsoft and other standards governing the requirements for the development processes and outputs, complemented management methodology in software development.

Objects of standardization in the IT sector are:

  • The design documentation (composition, structure, requirements for registration);
  • Coding standards and design of software texts;
  • Terminology and definitions;
  • Process models;
  • Life-cycle model;
  • Safety requirements for storage and transmission of information and means for achieving this;
  • The quality of the software quality characteristics, methods for obtaining data on quality;
  • Graphical notations and tools and formalized description of the requirements and technical solutions;
  • Formats for storing data sharing and data transfer.

Models and standards, regulatory processes and life cycle, are the basis of the quality management system, used in the development of project plans.

The methodology.

As a result of analysis methodologies for managing software development group identified two methodologies, which differ in order to use them, the story of creation and purpose.

The first group is a methodology whose aim is the successful implementation of a separate project. This group includes the majority of project methodologies, and almost all the adaptive methodologies. The logic of the success of the organization looks like the growth of competencies, the creation of technical assets through consistent implementation of successful projects.

The second group includes the methodology to ensure sustainability of the developer's software is aimed at ensuring the development of competencies. This group includes the Capability Maturity Model (CMM, CMMI). The logic of the successful functioning involves the creation, control and continuous improvement of the organization's ability to implement projects, and as a consequence, the successful execution of projects.

Two separate groups differ not only for use, but also the history and development, and practice use. The design methodology is the core of Control Theory in software development.

To the existing classification, depending on the model in her life cycle (waterfall (cascade), and iterative methodology) was added to a general classification of predictable and adaptive methodology. To include all the adaptive methodologies that meet the requirements set forth in the Manifesto of the adaptive design. Projected (predicative) methodology focuses on the detailed planning for the future. Known scheduled tasks and resources for the entire duration of the project. The team could hardly respond to possible changes. The plan is optimized based on the composition and operations of existing requirements. Changing requirements may lead to a substantial change in the plan and project design. Often, a special committee on "Change Management» (change control board) that the draft took into account only the most important requirements (Standard 19, 32).

Adaptive methodology aimed at overcoming the incompleteness of the expected claims and their constant changes. When changing the requirements, the team also changed. Team participating in the development of adaptive, difficult to predict the future of the project. There is a precise plan for the future. More distant in time as plans are only a declaration on the objectives of the project, expected costs and benefits. Among the adaptive methodologies: (Scrum, Crystal, Extreme Programming, Adaptive Software Development, DSDM, Feature Driven Development, Lean software development).

The proposed classification structure to further work to define approaches to the selection of models and methods standards in the following areas:

Determine the effect of management concepts (quality management, project management, risk management and processes) for managing software development methodology;

Structural comparative analysis of methods, models, standards and methodologies.

The analysis should prove or disprove the following hypotheses:

  • There are a group of tools that integrate methodologies that have a similar purpose, a similar story of creation.
  • Methodology of one group will have a similar structure and content.
  • Methodology requires a group of approximately equal level of effort for the introduction of working practices.
  • Depending on the "maturity" of the organization must use one or another group of tools.
  • One group based methodology similar set of management concepts.
  • Methodologies include "building blocks" - separate elements that can be used to create customized methodologies to solve unique problems.
  • At the heart of each methodology is a set of "principles" that may be true or false for the project and (or) organization.

Leave a comment or two

Reyting@Mail.ru