1 |
Transitioning to Agile: A Framework for Pre-adoption Analysis using Empirical Knowledge and Strategic ModelingChiniforooshan Esfahani, Hesam 11 December 2012 (has links)
Transitioning to the Agile style of software development has become an increasing phenomenon among software companies. The commonly perceived advantages of Agile, such as shortened time to market, improved efficiency, and reduced development waste are among key driving motivations of organizations to Agile. Each year a considerable number of empirical studies are being published, reporting on successful or unfavorable outcomes of enacting Agile in various organizations. Reusing this body of knowledge, and turning it into a concise and reachable source of information on Agile practices, can help many software organizations which are at the edge of transition to Agile, dealing with the uncertainties of such a decision.
One of the early steps of transitioning to Agile (or any other process model) is to confirm the adaptability of new process with the current organization. Various Agile adoption frameworks have proposed different checklists to test the readiness of an organization for becoming Agile, or to identify the required adaptation criteria. Transitioning to Agile, as a significant organizational initiative, is a strategic decision, which should be made with respect to key objectives of the target organization. Having a reliable anticipation of how a new process model will impact the strategic objectives helps organizational managers to choose a process model, which brings optimum advantage to the organization.
This thesis introduces a framework for evaluating new Agile practices (compartments of Agile methods) prior to their adoption in an organization. The framework has two distinguishing characteristics: first, it acts strategically, as it puts the strategic model of organization at the center of many decision makings that should be performed during Agile adoption; and second, it is based on a repository of Agile practices that allows the framework to benefit from the empirical knowledge of Agile methods, in order to improve the reliability of its outcomes. This repository has been populated through an extensive literature review of empirical studies on Agile methods.
The framework was put in practice in an industrial case, at one of the R&D units of Ericsson Company in Italy. The target R&D unit was proposed with a number of Agile practices. The application of framework helped R&D unit managers to strategically decide on the new process proposal, by having a better understanding of its strategic shortcomings and strengths. A key portion of framework’s analysis results were evaluated one year after the R&D unit made the transition to Agile, showing that over 75% of pre-adoption analysis results came to reality after the enactment of new process into the organization.
|
2 |
Impact of Meetings in Software Process ImprovementNaeem, Qaiser January 2012 (has links)
In this thesis we have described the role of meetings in software development and their impact on process improvement. We have investigated some factors; which could be used to improve organization process e.g. strategic management, understanding of business and its processes, learning and evaluation of resources. A survey has been conducted with the help of a questionnaire to analyze the meeting practices in the small and medium scale software companies. A process model and a simulation have been designed to measure the impacts of meetings on the productivity of organizations which claim the utilization of agile process. The designed model is an extension of Hamid & Madnick’s process model and the simulation is a newly developed web based application that performs meeting scheduling. The application is developed with the concept of Software As A Service (SAAS) by using the Framework Symfony and programming languages PHP and MySQL.
|
3 |
Transitioning to Agile: A Framework for Pre-adoption Analysis using Empirical Knowledge and Strategic ModelingChiniforooshan Esfahani, Hesam 11 December 2012 (has links)
Transitioning to the Agile style of software development has become an increasing phenomenon among software companies. The commonly perceived advantages of Agile, such as shortened time to market, improved efficiency, and reduced development waste are among key driving motivations of organizations to Agile. Each year a considerable number of empirical studies are being published, reporting on successful or unfavorable outcomes of enacting Agile in various organizations. Reusing this body of knowledge, and turning it into a concise and reachable source of information on Agile practices, can help many software organizations which are at the edge of transition to Agile, dealing with the uncertainties of such a decision.
One of the early steps of transitioning to Agile (or any other process model) is to confirm the adaptability of new process with the current organization. Various Agile adoption frameworks have proposed different checklists to test the readiness of an organization for becoming Agile, or to identify the required adaptation criteria. Transitioning to Agile, as a significant organizational initiative, is a strategic decision, which should be made with respect to key objectives of the target organization. Having a reliable anticipation of how a new process model will impact the strategic objectives helps organizational managers to choose a process model, which brings optimum advantage to the organization.
This thesis introduces a framework for evaluating new Agile practices (compartments of Agile methods) prior to their adoption in an organization. The framework has two distinguishing characteristics: first, it acts strategically, as it puts the strategic model of organization at the center of many decision makings that should be performed during Agile adoption; and second, it is based on a repository of Agile practices that allows the framework to benefit from the empirical knowledge of Agile methods, in order to improve the reliability of its outcomes. This repository has been populated through an extensive literature review of empirical studies on Agile methods.
The framework was put in practice in an industrial case, at one of the R&D units of Ericsson Company in Italy. The target R&D unit was proposed with a number of Agile practices. The application of framework helped R&D unit managers to strategically decide on the new process proposal, by having a better understanding of its strategic shortcomings and strengths. A key portion of framework’s analysis results were evaluated one year after the R&D unit made the transition to Agile, showing that over 75% of pre-adoption analysis results came to reality after the enactment of new process into the organization.
|
4 |
Process modelling for requirements captureCrouch, Stephen January 2000 (has links)
As software complexity increases, well defined managerial methods of organising software production become increasingly crucial to the success of software projects. As the investigation into the field of software process methodology continues, two approaches to process modelling have emerged as tools with which to model such processes. Graphical notations provide a clear, intuitive method of describing processes, whilst process modelling languages offer the ability to execute those processes. However, many existing process modelling languages are derived from programming languages, and, as such, inherit the low-level, syntactically complex attributes of these languages. The main goal of this thesis is to provide a process modelling language based on a well-known and practised graphical approach to modelling processes, the Role Activity Diagram (RAD). To ensure a high level of applicability, we emphasise the importance of ensuring that the language is readily accessible to those without a technical background. To this end, as well as being a linguistic approach with origins firmly in the process modelling field, models defined in this language are intended to exhibit a high level of abstraction and intuitiveness. This thesis proposes the Romula process modelling language as a complementary approach to Role Activity Diagrams, and describes a tool developed for animating processes modelled in this language. A discussion is presented which highlights the problems of animating Romula models derived from RADs which had to be overcome when developing Romula. Evaluation of the Romula language was achieved by validation and specification. For validation, the Romula approach was used to represent and execute two complex example process models. The first of these, named ProcMod, is a process model of a hypothetical software development process, itself validated by enacting it on a simple software development scenario. The second example process model is an implementation in Romula of a requirements-oriented process framework, presented as a method for representing the organisation of large software projects across multiple contributing entities. Examples of how this framework can be utilised are implemented in Romula. A method of translating Romula models into the formal specification notation CSP is also provided, demonstrated by example translations. This method enables Romula-derived CSP models to be checked for formal properties such as deadlock, livelock, and reachability, as well as providing a formal specification of the core semantics of the language.
|
5 |
A systematic framework of recovering process patterns from project enactment data as inputs to software process improvementHuo, Ming, Computer Science & Engineering, Faculty of Engineering, UNSW January 2009 (has links)
The study of the software development process is a relatively new research area but it is growing rapidly. This development process, also called 'the software life cycle' or 'the software process', is the methodology used throughout the industry for the planning, design, implementation, testing and maintenance that takes place during the creation of a software product. Over the years a variety of different process models have been developed. From the numerous process models now available, project managers need validation of the choice he/she has made for a software development model that he/she believes will provide the best results. Yet the quality software so sought after by software project managers can be enhanced by improving the development process through which it is delivered. Well tested, reliable evidence is needed to assist these project managers in choosing and planning a superior software process as well as for improving the adopted software process. While some guidelines for software process validation and improvement have been provided, such as CMMI, quantitative evidence is, in fact, scarce. The quantitative evidence sometimes may not be able to be obtained from high level processes that refer to a planned process model, such as a waterfall model. Furthermore, there has been little analysis of low level processes. These low level processes refer to the actions of how a development team follow a high level software process model to develop a software product. We describe these low level processes as project enactment. Normally there is a gap between the high level software process and the project enactment. In order to improve this software development process, this gap needs to be identified, measured and analyzed. In this dissertation, we propose an approach that examines the deviation between a planned process model and the project enactment of that plan. We measure the discrepancy from two aspects: consistency and inconsistency. The analytical results of the proposed approach, which include both qualitative and quantitative data, provide powerful and precise evidence for tailoring, planning and selecting any software process model. The entire approach is composed of four major phases: 1) re-presentation of the planned process model, 2) pre-processing the low level process data, 3) process mining, and 4) analysis and comparison of the recovered process model and planned process model. We evaluate the proposed approach in three case studies: a small, a medium, and a large-sized project obtained from an industrial software development organization. The appropriate data on low level processes is collected and our approach is then applied to these projects individually. From each case study we then performed a detailed analysis of the inconsistencies that had surfaced as well as the consistencies between the plan and the enactment models. An analysis of the inconsistencies revealed that several 'agile' practices were introduced during the project's development even though the planned process model was initially based on 'ISO-12207' instead of the 'agile' method. In addition, our analysis identifies the patterns in the process that are frequently repeated. The outcome of the case studies shows that our approach is applicable to a range of software projects. The conclusions derived from these case studies confirmed that our approach could be used to enhance the entire software development process, including tailoring and assessment.
|
6 |
SOFTWARE QUALITY AND PRODUCTIVITY: ARE THEY COMPATIBLE?Long, Rick, Crump, Peter 10 1900 (has links)
International Telemetering Conference Proceedings / October 25-28, 1999 / Riviera Hotel and Convention Center, Las Vegas, Nevada / Many view quality and productivity as competing concepts. After all, doesn’t high software quality come at a high cost? Doesn’t it mean that a large amount of "extra stuff" needs to be done during the software development cycle? And, doesn’t that mean that software productivity takes a back seat to (and a major hit from) quality efforts? This paper will explore these issues. This paper provides some preliminary data that supports how a disciplined software engineering process can (and has) resulted in high quality software while actually increasing productivity. Data has been gathered on organizations that have a disciplined, quality-oriented software engineering process in place. That data shows that quality and productivity can (and do) coexist. The data will be discussed along with an explanation of how these results can be achieved.
|
7 |
Uma abordagem flexível para execução de processos de software evolutivos / A flexible approach to evolvable software process enactmentReis, Carla Alessandra Lima January 2003 (has links)
Buscando aumentar a qualidade de software, a área de Engenharia de Software tem produzido ferramentas para auxílio ao desenvolvimento de software assim como tem estudado e produzido formas de controlar o processo de desenvolvimento. A tecnologia existente para coordenação de atividades humanas - incluindo sistemas de Workflow e PSEE (Process-Centered Software Engineering Environments) - possui algumas limitações. Uma das principais é a falta de flexibilidade. Algumas características importantes de processos de software não têm sido levadas em consideração pela tecnologia disponível, como por exemplo: o aspecto humano envolvido, a dificuldade em definir todo o processo antes de executá-lo, o tratamento de mudanças durante a execução, dentre outras. Além disso, quando se considera a construção de PSEEs, notase a necessidade de uma abordagem formal adequada, que permita um melhor entendimento, análise e comparação com outros modelos. Este trabalho apresenta e discute um modelo conceitual e mecanismos para contribuir para o aumento da flexibilidade e do nível de automação fornecidos para execução de processos. Para atingir os objetivos do trabalho, foi proposta uma arquitetura, denominada APSEE, construída a partir de um meta-modelo unificado que integra informações organizacionais, gerenciais, sobre artefatos do processo, e sobre ferramentas do ambiente. O modelo proposto define de forma rigorosa seus componentes. Assim, as propriedades de recursos e pessoas são descritas visando melhorar o controle de sua alocação, permitindo a construção de um mecanismo de apoio à instanciação de recursos e pessoas em processos. Além disso, uma linguagem de modelagem visual de processos de software é proposta. Por fim, é fornecido o mecanismo de execução de processos que permite modificações dinâmicas, verifica a consistência dessas modificações, e permite acompanhamento da execução de processos pelo gerente. Os diferentes componentes envolvidos na definição do modelo APSEE proposto foram especificados formalmente através de método algébrico e também através da abordagem de gramáticas de grafos, constituindo uma base semântica de alto nível de abstração que deu origem a um conjunto de protótipos implementados como ferramentas do ambiente PROSOFT-Java. A implementação também serviu para constatar a viabilidade do uso do APSEE como plataforma de integração para vários serviços de gerência de processos desenvolvidos como atividades de pesquisa no contexto do grupo PROSOFT. Finalmente, são apresentadas considerações acerca dos trabalhos relacionados, os elementos críticos que influenciam a aplicabilidade do modelo e as atividades adicionais vislumbradas a partir do trabalho proposto. / Software Engineering evolved to increase software quality through the definition of tools to support both development and management processes. However, the existing technology to provide automated support for human activity coordination - mainly represented by Workflow Management Systems and Process-Centered Software Engineering Environments (PSEEs) - has some limitations. One of the most important limitations is related to the low level of flexibility provided by current tools. Existing technologies provide limited support for some important software process characteristics, which includes, for example, the humanistic aspect of software processes, the difficult to completely prescribe the process model in advance, and the lack of adequate support for dynamic changes on enacting processes. Besides, the construction of a PSEE demand an adequate formal approach for its specification, which can improve its understandability and analysis, while constitutes a basis for comparison with similar proposals. This work presents and discusses a conceptual model and mechanisms which jointly aim to increase the level of flexibility and automation provided for software processes enactment. In order to reach this goal, a software-based architecture is proposed, named APSEE, which provides a unified meta-model that integrates organizational and management information, along with software artifact and tool support. The proposed meta-model rigorously defines its components. Therefore, resource and people properties are formally described in order to allow better allocation through an automated process instantiation mechanism. In addition, a visual software process modeling language is provided which is, in turn, related to the underlying meta-model. Finally, a flexible process enactment mechanism was specified to support dynamic changes on process models that work together with consistency check and monitoring mechanisms. The required software components for the proposed meta-model were specified using algebraic specification and graph grammar-based techniques which, in turn, were used to build prototypes for the Java-PROSOFT environment. This implementation was also useful to evaluate the feasibility of using APSEE as an integration platform for a number of process management services developed by PROSOFT research group. Finally, it is discussed how this proposal relates to the current technological state-ofthe- art, the critical elements that can influence its applicability and effectiveness, and the expected future activities.
|
8 |
Uma abordagem flexível para execução de processos de software evolutivos / A flexible approach to evolvable software process enactmentReis, Carla Alessandra Lima January 2003 (has links)
Buscando aumentar a qualidade de software, a área de Engenharia de Software tem produzido ferramentas para auxílio ao desenvolvimento de software assim como tem estudado e produzido formas de controlar o processo de desenvolvimento. A tecnologia existente para coordenação de atividades humanas - incluindo sistemas de Workflow e PSEE (Process-Centered Software Engineering Environments) - possui algumas limitações. Uma das principais é a falta de flexibilidade. Algumas características importantes de processos de software não têm sido levadas em consideração pela tecnologia disponível, como por exemplo: o aspecto humano envolvido, a dificuldade em definir todo o processo antes de executá-lo, o tratamento de mudanças durante a execução, dentre outras. Além disso, quando se considera a construção de PSEEs, notase a necessidade de uma abordagem formal adequada, que permita um melhor entendimento, análise e comparação com outros modelos. Este trabalho apresenta e discute um modelo conceitual e mecanismos para contribuir para o aumento da flexibilidade e do nível de automação fornecidos para execução de processos. Para atingir os objetivos do trabalho, foi proposta uma arquitetura, denominada APSEE, construída a partir de um meta-modelo unificado que integra informações organizacionais, gerenciais, sobre artefatos do processo, e sobre ferramentas do ambiente. O modelo proposto define de forma rigorosa seus componentes. Assim, as propriedades de recursos e pessoas são descritas visando melhorar o controle de sua alocação, permitindo a construção de um mecanismo de apoio à instanciação de recursos e pessoas em processos. Além disso, uma linguagem de modelagem visual de processos de software é proposta. Por fim, é fornecido o mecanismo de execução de processos que permite modificações dinâmicas, verifica a consistência dessas modificações, e permite acompanhamento da execução de processos pelo gerente. Os diferentes componentes envolvidos na definição do modelo APSEE proposto foram especificados formalmente através de método algébrico e também através da abordagem de gramáticas de grafos, constituindo uma base semântica de alto nível de abstração que deu origem a um conjunto de protótipos implementados como ferramentas do ambiente PROSOFT-Java. A implementação também serviu para constatar a viabilidade do uso do APSEE como plataforma de integração para vários serviços de gerência de processos desenvolvidos como atividades de pesquisa no contexto do grupo PROSOFT. Finalmente, são apresentadas considerações acerca dos trabalhos relacionados, os elementos críticos que influenciam a aplicabilidade do modelo e as atividades adicionais vislumbradas a partir do trabalho proposto. / Software Engineering evolved to increase software quality through the definition of tools to support both development and management processes. However, the existing technology to provide automated support for human activity coordination - mainly represented by Workflow Management Systems and Process-Centered Software Engineering Environments (PSEEs) - has some limitations. One of the most important limitations is related to the low level of flexibility provided by current tools. Existing technologies provide limited support for some important software process characteristics, which includes, for example, the humanistic aspect of software processes, the difficult to completely prescribe the process model in advance, and the lack of adequate support for dynamic changes on enacting processes. Besides, the construction of a PSEE demand an adequate formal approach for its specification, which can improve its understandability and analysis, while constitutes a basis for comparison with similar proposals. This work presents and discusses a conceptual model and mechanisms which jointly aim to increase the level of flexibility and automation provided for software processes enactment. In order to reach this goal, a software-based architecture is proposed, named APSEE, which provides a unified meta-model that integrates organizational and management information, along with software artifact and tool support. The proposed meta-model rigorously defines its components. Therefore, resource and people properties are formally described in order to allow better allocation through an automated process instantiation mechanism. In addition, a visual software process modeling language is provided which is, in turn, related to the underlying meta-model. Finally, a flexible process enactment mechanism was specified to support dynamic changes on process models that work together with consistency check and monitoring mechanisms. The required software components for the proposed meta-model were specified using algebraic specification and graph grammar-based techniques which, in turn, were used to build prototypes for the Java-PROSOFT environment. This implementation was also useful to evaluate the feasibility of using APSEE as an integration platform for a number of process management services developed by PROSOFT research group. Finally, it is discussed how this proposal relates to the current technological state-ofthe- art, the critical elements that can influence its applicability and effectiveness, and the expected future activities.
|
9 |
Uma abordagem flexível para execução de processos de software evolutivos / A flexible approach to evolvable software process enactmentReis, Carla Alessandra Lima January 2003 (has links)
Buscando aumentar a qualidade de software, a área de Engenharia de Software tem produzido ferramentas para auxílio ao desenvolvimento de software assim como tem estudado e produzido formas de controlar o processo de desenvolvimento. A tecnologia existente para coordenação de atividades humanas - incluindo sistemas de Workflow e PSEE (Process-Centered Software Engineering Environments) - possui algumas limitações. Uma das principais é a falta de flexibilidade. Algumas características importantes de processos de software não têm sido levadas em consideração pela tecnologia disponível, como por exemplo: o aspecto humano envolvido, a dificuldade em definir todo o processo antes de executá-lo, o tratamento de mudanças durante a execução, dentre outras. Além disso, quando se considera a construção de PSEEs, notase a necessidade de uma abordagem formal adequada, que permita um melhor entendimento, análise e comparação com outros modelos. Este trabalho apresenta e discute um modelo conceitual e mecanismos para contribuir para o aumento da flexibilidade e do nível de automação fornecidos para execução de processos. Para atingir os objetivos do trabalho, foi proposta uma arquitetura, denominada APSEE, construída a partir de um meta-modelo unificado que integra informações organizacionais, gerenciais, sobre artefatos do processo, e sobre ferramentas do ambiente. O modelo proposto define de forma rigorosa seus componentes. Assim, as propriedades de recursos e pessoas são descritas visando melhorar o controle de sua alocação, permitindo a construção de um mecanismo de apoio à instanciação de recursos e pessoas em processos. Além disso, uma linguagem de modelagem visual de processos de software é proposta. Por fim, é fornecido o mecanismo de execução de processos que permite modificações dinâmicas, verifica a consistência dessas modificações, e permite acompanhamento da execução de processos pelo gerente. Os diferentes componentes envolvidos na definição do modelo APSEE proposto foram especificados formalmente através de método algébrico e também através da abordagem de gramáticas de grafos, constituindo uma base semântica de alto nível de abstração que deu origem a um conjunto de protótipos implementados como ferramentas do ambiente PROSOFT-Java. A implementação também serviu para constatar a viabilidade do uso do APSEE como plataforma de integração para vários serviços de gerência de processos desenvolvidos como atividades de pesquisa no contexto do grupo PROSOFT. Finalmente, são apresentadas considerações acerca dos trabalhos relacionados, os elementos críticos que influenciam a aplicabilidade do modelo e as atividades adicionais vislumbradas a partir do trabalho proposto. / Software Engineering evolved to increase software quality through the definition of tools to support both development and management processes. However, the existing technology to provide automated support for human activity coordination - mainly represented by Workflow Management Systems and Process-Centered Software Engineering Environments (PSEEs) - has some limitations. One of the most important limitations is related to the low level of flexibility provided by current tools. Existing technologies provide limited support for some important software process characteristics, which includes, for example, the humanistic aspect of software processes, the difficult to completely prescribe the process model in advance, and the lack of adequate support for dynamic changes on enacting processes. Besides, the construction of a PSEE demand an adequate formal approach for its specification, which can improve its understandability and analysis, while constitutes a basis for comparison with similar proposals. This work presents and discusses a conceptual model and mechanisms which jointly aim to increase the level of flexibility and automation provided for software processes enactment. In order to reach this goal, a software-based architecture is proposed, named APSEE, which provides a unified meta-model that integrates organizational and management information, along with software artifact and tool support. The proposed meta-model rigorously defines its components. Therefore, resource and people properties are formally described in order to allow better allocation through an automated process instantiation mechanism. In addition, a visual software process modeling language is provided which is, in turn, related to the underlying meta-model. Finally, a flexible process enactment mechanism was specified to support dynamic changes on process models that work together with consistency check and monitoring mechanisms. The required software components for the proposed meta-model were specified using algebraic specification and graph grammar-based techniques which, in turn, were used to build prototypes for the Java-PROSOFT environment. This implementation was also useful to evaluate the feasibility of using APSEE as an integration platform for a number of process management services developed by PROSOFT research group. Finally, it is discussed how this proposal relates to the current technological state-ofthe- art, the critical elements that can influence its applicability and effectiveness, and the expected future activities.
|
10 |
Software Process Improvement Measurement and Evaluation Framework (SPI-MEF)Islam, A.K.M. Moinul, Unterkalmsteiner, Michael January 2009 (has links)
During the last decades, the dependency on software has increased. Many of today’s modern devices embed software to control their functions. The increasing dependency has also taken part in shaping the software development process to produce better quality software. Many researchers and practitioners have spent large investments to improve the software development process. A research area within software engineering that addresses the assessment and improvement issues in development processes is called Software Process Improvement (SPI). One of the essential aspects in software process improvement is measuring the outcome of the implemented changes. The measurement and evaluation of software process improvement provides the means for the organization to articulate the achievement level of their goals. Although the importance of measuring and evaluating the outcome of software process improvement is paramount, there exist no common guidelines or systematic methods of measuring and evaluating the improvement. This condition evokes difficulties for practitioners to implement software process improvement measurement programs. This issue has raised the challenge to develop and implement an effective framework for measuring and evaluating the outcome of software process improvement initiatives. This thesis presents a measurement and evaluation framework for software process improvement. SPI-MEF provides guidelines in the form of systematic steps to evaluate the outcome of software process improvement. The framework is based on key concepts which were elaborated in previous work. In this thesis, a validation of SPI-MEF is also conducted by involving representatives from academia and industry. The validation is aimed to judge the frameworks’ usability, applicability and usefulness. Finally, a refinement of the framework is carried out based on the input from the validation.
|
Page generated in 0.0969 seconds