Practical Experiences of Agility in the Telecom Industry
|
|
|
- Harold Jennings
- 10 years ago
- Views:
Transcription
1 Practical Experiences of Agility in the Telecom Industry Jari Vanhanen 1, Jouni Jartti 2, and Tuomo Kähkönen 2 1 Helsinki University of Technology, Software Business and Engineering Institute, P.O. Box 9600, FIN HUT, Finland [email protected] 2 Nokia Research Center, P.O. Box 407, FIN NOKIA GROUP, Finland {jouni.jartti, tuomo.kahkonen}@nokia.com Abstract. This paper discusses the adoption level of and experiences from using agile practices in three software development projects in a large Telecom company. The use of agile practices was more emergent than planned. Project managers and developers simply used practices they considered efficient and natural. The most widely adopted agile practices were to measure progress by working code, to have developers estimate task efforts, to use coding standards, having no continuous overtime, to have the team develop its own processes, to use limited documentation, and to have the team in one physical location. The projects used conventional testing approaches. Adoption of agile testing practices, i.e., test first and automated unit tests, was low. Some agile practices can just emerge without conscious adoption, because developers find them useful. However, it seems that an emergent process aiming for agility may also neglect important agile practices. 1 Introduction The competitiveness of IT companies is affected by how well their software development process can react to changing needs set for products [1,2]. We define agility as the ability to adapt to changing situations appropriately, quickly and effectively. In other words, agile organizations notice relevant changes early, initiate action promptly, create a feasible and effective alternative plan quickly, and reorient work and resources according to the new plan quickly and effectively. In the Telecom industry software development has traditionally followed rather rigorous processes, typically using process frameworks such as ISO [3] or the SW-CMM [4]. As far as we know, no studies have been published discussing the use of agile methods in the Telecom industry. Thus, we believe that this paper sheds some light on the current situation.
2 Jari Vanhanen, Jouni Jartti, and Tuomo Kähkönen 1.1 Study Background This study was made in a large telecom company as part of a research program, whose goal is to increase and transfer practical knowledge of achieving agility in software development. Creating a full-fledged methodology and trying to leverage it in a large organization is not feasible. However, describing a set of process patterns [5] that promote agility is more feasible. A process pattern describes a practice considering topics such as which problem it solves, when it is applicable, how to deploy it etc. McCormick s [6] ideas for creating a methodology for a project also support the process patterns approach: What s needed is not a single software methodology, but a rich toolkit of process patterns and methodology components (deliverables, techniques, process flows, and so forth) along with guidelines for how to plug them together to customize a methodology for any given project. Of course, the ideal content of an agile toolkit depends on the context, and the limits of agile practices are still unclear. Before the study, we had collected a tentative list (Table 3) of agile practices that could be applicable in the company. Most of the practices are described in XP [7] and the rest in other literature [8,9]. This specific study aimed at increasing our understanding of the current level of use of these and potentially some other agile practices in the company. Based on the results of this study we will evaluate and improve the practicality and completeness of our tentative agile practice list. The research questions for this study were: 1. Which agile practices were used in these projects? 2. What experiences were reported on those practices? 1.2 Research Method Using the company s intranet and personal relationships, we identified several projects from the case company in Finland that were either consciously or nonconsciously using agile software development practices. However, we could not identify any project that was using a complete agile methodology such as XP. From seven identified candidates we selected three projects, A, B, and C, which seemed to be most active in using agile practices. All selected projects were developing different kinds of products in different business units, and for different markets. We interviewed the project manager and a developer from projects A and B, and only a developer from project C. The interviews covered all typical software project areas at a general level in order to identify other agile practices in addition to those we had already listed. We quantified the level of use of the agile practices (Table 1) in order to better answer the first research question. Quantification was difficult because there are several dimensions that should be considered, e.g., number of people using the practice, duration of use, discipline of use, and aspects used. The second research question was answered by a qualitative analysis of the reported experiences.
3 Practical Experiences of Agility in the Telecom Industry Table 1. The quantification scale for the use of agile practices Value Description 3 Considerable use, e.g. it was almost a norm to use it. 2 Moderate use, e.g. several people used it for a long time. 1 Minor use, e.g. someone tried the practice for some time. 0 Practically no use of the practice. 1.3 Overview of the Projects Project A developed a Unix based application. The mindset of the project s first two developers was towards light practices and because the project grew slowly over time, they had time to find the natural, minimal process. The success of the product and the small number of developers allowed them to keep the process as they wanted despite of the external pressure to change it to comply better with the organization s general process model. Project B developed low-level embedded software. The project manager decided the practices used in the project based on his previous experiences. Project C was a release project in which a small team worked in a larger 70-person sub-project that was part of the further development of a very large legacy system. The team tried to improve the current process by deploying some aspects of certain XP practices. Table 2 summarizes the characteristics of these projects. Table 2. Project characteristics Project A Project B Project C Project type Development of an evolving sw product Integration and porting of embedded sw Development of a part of a larger system People (of 70) Distribution Two teams in two Co-located team Co-located team countries Duration 8 years 10 months 1.5 years Effort ~50 man years ~6 man years ~6 man years SW Size 590 kloc 15 kloc 40 kloc 2 Results 2.1 Adoption of Agile Practices The use of agile practices was more emergent than planned. Typically, the process or the use of individual practices was not formally defined or documented, but rather the project manager and the developers used practices that they considered efficient and natural. XP was partially experimented in project C, but others did not use any documented agile methodology as the basis for their process. The motivation for using agile practices was either experimenting with something new, e.g. some XP practices, or just working in a way that felt natural and had worked earlier in other
4 Jari Vanhanen, Jouni Jartti, and Tuomo Kähkönen projects. Table 3 presents the adoption level of agile practices and the following sections describe the experiences. Table 3. Adoption level of agile practices Practice A B C Incremental delivery Continuous integration Measure progress by working code Interactive planning Developers estimate task efforts Visual modeling Use cases Design Patterns Continuously developed architecture Pair programming Collective code ownership Coding standard Refactoring Write tests first Automated unit testing Customer writes acceptance tests Limited documentation Team in one location Frequent team meetings Customer always available Team develops its processes No continuous overtime considerable use 2 moderate use 1 minor use 0 practically no use 2.2 Use of the Practices Incremental Delivery. Project A had a release cycle of about 6 months. Later in the cycle, pre-releases were delivered weekly to the customer. Project B planned the first release to occur 10 months after the project initiation, but the project was cancelled due to business reasons before the first release. Project C had a 6-month release cycle. Continuous Integration. In project A, new code was checked in to the common repository as often as reasonable, typically after a few days of development. The code had to work before the check-in. In project B, developers first implemented the subsystems separately, followed by an integration phase. In project C, developers integrated their code after a few days of work.
5 Practical Experiences of Agility in the Telecom Industry Measure Progress by Working Code. In project A, the current version was delivered weekly to the customer. Users tried the pre-releases and gave valuable feedback replacing the need for a detailed requirement specification. Users were committed thanks to the short feedback loop. The developers also considered it rewarding to see results soon. Project B was internally split into software milestones every 1 to 6 weeks. Interactive Planning. In project A, the project manager continuously discussed the specifications with the customer. The presence of the relevant developers in the customer meetings was considered important for gaining a common understanding and giving a feeling of appreciation for the developers. Prioritization was made together with the customer at different levels (general direction, features) also concerning the technical feasibility of the proposals. Developers Estimate Task Efforts. In project A, the best expert in an area performed effort estimation. In project B effort estimates originated from the functional specification phase, but the development team re-estimated them before implementation. In project C, rough effort estimates were made before the project in the feasibility study, but the developers refined them later. Visual Modeling. In project A, the technical documentation contained only a few diagrams. One reason for avoiding diagrams was the lack of a good drawing tool. In project B, developers considered a picture of the whole system showing the parts and their connections being the most important part of architectural documentation. The developers also drew UML scenario and process diagrams of their subsystems. In project C scenario and class diagrams were used. Use Cases. In project B, use case modeling was not used, because the project was mostly technical, low-level development. In project C, requirements were documented using use cases. Design Patterns. Project A began to use design patterns after the first major refactoring of the product. In project B, design patterns were not considered applicable due to low-level C coding. Continuously Developed Architecture. In project A, the architecture was developed in parallel with new features. Project B made higher-level design early based on an external specification. The design remained quite stable. Pair Programming. In project C problems in code were often solved with a pair, but during programming tasks pairing was scarce. However, even this amount of pairing when debugging spread the knowledge of the system among developers. Collective Code Ownership. In project A, any developer was allowed to change any part of the code if needed, but in practice they focused on their own modules. In project B, developers mostly worked with their own code. Sometimes they read
6 Jari Vanhanen, Jouni Jartti, and Tuomo Kähkönen others code, but the owner made the final changes. In project C, developers were allowed to change others code and even the platform code. Coding Standard. In project A, a style guide was followed in naming variables, structuring the code, and organizing the code in files. In project B, instructions covered only the module interfaces. In project C, a general style guide by the company was followed. Refactoring. In project A, architectural decay was always present as new features were added, and refactoring was exercised all the time. However, not all developers refactored consistently, causing some parts to decay quite badly. Senior people kept the code in better shape. Project B changed low-level design quite a lot during coding. Project C refactored scarcely in order not to break the existing, large code base. Write Tests First. None of the studied projects wrote unit tests before the real code. Automated Unit Testing. Project A tried writing unit tests without good results due to the strong GUI orientation. In project C, writing unit tests was found too difficult and time-consuming. Customer Writes Acceptance Tests. In project A, the customer organization performed system testing. They might have had test cases defined, but the developers never saw them. Limited Documentation. In project A, technical documentation contained a short architecture document and some technical guideline documents. These were not typically kept up-to-date. They were considered somewhat useful for new people, but apprenticeship-style hands-on training was most successful for transferring knowledge. Senior developers did not need the documents at all. Even the development at two sites did not seem to require more documents. Project B had a short technical document of each subsystem and a general architecture description of the system. The need for design documentation was low because the size of the software was rather small and it had a modular structure. Only one person developed each subsystem and only the interfaces were of interest to others. The details and reasons behind the solutions were commented in the source code. The comments were important even for the author due to the new domain. Requirements were gathered in a short document. There was only one real user requirement and others were technical requirements. Team in One Location. In project A a team that worked in another country was added to the project. After several months of apprenticeship in Finland, the team members started to work in their home country. The teams held frequent teleconferences, some meetings, and yearly workshops. Lead developers had own rooms and others worked in a landscaped office, which some developers did not like due to disturbing background noise. Projects B and C had adjacent two-person rooms.
7 Practical Experiences of Agility in the Telecom Industry Frequent Team Meetings. In project A, the team ate lunch together, and never considered it necessary to have official daily meetings. Project B had a weekly status meeting, where everyone told what he had done since the last meeting. Project C had meetings when necessary, typically minutes once or twice a week. Customer Always Available. In project A, there was a weekly meeting between the customer, project manager and some developers. There were also many discussions with the customer. In project B, the product manager played the customer role. His room was in another floor, but he answered questions when posed. In project C, the project manager played the role of the customer. It was difficult to identify a real customer and have proper customer involvement. Team Develops Its Processes. In project A, the project manager created the process together with the team. The team liked the way they worked, and the lack of clear roles such as managers, designers and coders improved team spirit. In project B, the project manager created the process and discussed it with the team. The developers were most interested in developing software, so the proposed, light process did not meet with resistance. In project C, the team planned experimenting with XP practices, otherwise the process was defined outside the team. No Continuous Overtime. In project A people worked overtime only before important releases. Project B used some overtime to speed up the first release. In project C overtime increased towards the end of the project, but was not considerable. 3 Discussion 3.1 Adoption Level The most frequently and thoroughly adopted practices were to measure progress by working code, having developers estimate task efforts, using a coding standard, not using continuous overtime, having the team develop its own process, limited documentation, and having the team in one location. Some practices such as interactive planning, write tests first, automated unit testing, customer writes acceptance tests, and pair programming were used almost nowhere. It may be that the familiarity with these practices was weak among the interviewees and some practices are quite exotic and difficult to adopt causing that the practices do not just emerge. It may be that the process must be created based on some documented agile methodology or a best practice list in order for these practices to be adopted. As agile testing practices are often considered as a prerequisite for many other agile practices, the low adoption of these practices suggests that more education is needed in this area.
8 Jari Vanhanen, Jouni Jartti, and Tuomo Kähkönen 3.2 Success Factors We identified the following success factors in the projects. In project A, the architects stayed with the project, refactored the architecture continuously and accomplished the survival and evolution of the architecture. The first developer became the project manager, so managerial decisions were made quickly by a person who had the best technical knowledge of the software. The customer representative remained the same and a mutual trust could be built. The personnel was one of the strengths of project B. The project manager selected developers based on their skills and traits in order to form a good team for this project. The project manager was both managerially and technically competent and designed the overall architecture. In project C, frequent team meetings helped designing the details of the initial high-level specification. Pairing while debugging was a very useful practice and spread the knowledge of the system among the developers. 3.3 New Practices The following additional practices were identified. Technical authority, e.g., a technically competent project manager improves agility because that person is able to make decisions quickly. The project manager s understanding of the technical details increases the likelihood to have the courage to decrease control elements such as managerial documents and project reviews from the process. Team continuity, meaning that key persons stay within the project, improves efficiency because the tacit information is preserved as happened with the architecture in project A. 3.4 Other Findings Collective ownership improves agility by removing delays in development. If the system has a modular structure and different parts require different technical skills, the most efficient way of development may still be to let people specialize in some parts, and have one or two semi-experts as a backup for each part. Landscaped offices allow efficient and quick communication, but may disturb work requiring high concentration. Project A showed that some agile practices are viable even in a distributed project. Developers typically accepted an agile process well. This was true even in project B where they were not involved in designing the process. 3.5 Evaluation of the Research The reported experiences of the advantages and disadvantages of specific practices were quite scarce. It may be that people have not been very conscious of using certain, admittedly vague practices that may have emerged instead of being consciously deployed. In addition, some practices, such as limited documentation and measure progress with working code actually mean not doing something, e.g., thick
9 Practical Experiences of Agility in the Telecom Industry documents or progress reporting. Therefore evaluating the effects of these practices and discussing about the related experiences may have been hard for the interviewees. In the interviews, the origin of the adoption of each individual practice was not explicitly asked for. Therefore, we cannot say for sure for all practices, which were consciously adopted and which just emerged. 4 Conclusions This paper presented experiences of the use of agile practices in three projects in the Telecom industry. The use of agile practices was more emergent than planned. Typically, processes or individual practices were not formally defined. Instead, project managers and developers used practices they considered efficient and natural. Generally speaking both the project managers and developers were satisfied with their current software development processes compared to their earlier experiences with heavier, more formal processes. They could do what they consider important (software) and see concrete results soon through frequent customer deliveries. This might explain the positive tone of the interviewees when discussing about their projects. The adoption level of agile testing practices, i.e., write tests first and automated unit tests, whose use is typically considered a significant prerequisite for several other agile practices, was low. More information on these practices is clearly needed among the projects. The emergence of agile practices without conscious adoption can be considered a good sign, indicating that agile practices are considered useful by the developers themselves. However, it seems that several important practices may be neglected, if a process, whose goal is to be agile is not consciously created but instead just emerges. Agile practices presented, e.g., as process patterns could help find and deploy the most suitable practices more efficiently. References 1. McCormack, A. et al.: Developing Products on Internet Time: The Anatomy of a Flexible Development Process. Management Science 47, 1 (2001) Thomke, S. and Reinertsen, D.: Agile product development: Managing development flexibility in uncertain environments. California Management Review 41, 1 (1998) ISO/IEC TR 15504: Information Technology Software Process Assessment, Parts 1-9. Type 2 Technical Report (1998). 4. Paulk, M. et al. Capability Maturity Model for Software, Version 1.1. Technical Report CMU/SEI-93-TR24. Pittsburgh, PA: Carnegie Mellon University, Software Engineering Institute (1993). 5. Ambler, S.W.: Process Patterns. Building Large-Scale Systems Using Object Technology. Cambridge University Press, (1998) 6. McCormick, M.: Programming Extremism, Communications of the ACM 44, 6 (2001) Beck, K.: Extreme Programming Explained: Embrace Change. Addison Wesley, (2000)
10 Jari Vanhanen, Jouni Jartti, and Tuomo Kähkönen 8. Ambler, S.W.: Agile Modeling. John Wiley & Sons, Inc., New York (2002) 9. Gamma, E. et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, (1995)
EMPIRICAL STUDY OF THE EVOLUTION OF AGILE-DEVELOPED SOFTWARE SYSTEM IN JORDANIAN'S TELECOM
EMPIRICAL STUDY OF THE EVOLUTION OF AGILE-DEVELOPED SOFTWARE SYSTEM IN JORDANIAN'S TELECOM Dr.Walid Qassim Qwaider Majmaah University College of Science and Humanities in Ghat Management Information Systems
SOFTWARE PROCESS MODELS
SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation
Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal [email protected]
Using Simulation to teach project management skills Dr. Alain April, ÉTS Montréal [email protected] Agenda of the workshop 1 The software project management theory overview (40 minutes) 2 Why use SDLC
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process
A Capability Maturity Model (CMM)
Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability
(Refer Slide Time: 01:52)
Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This
BUSINESS RULES AND GAP ANALYSIS
Leading the Evolution WHITE PAPER BUSINESS RULES AND GAP ANALYSIS Discovery and management of business rules avoids business disruptions WHITE PAPER BUSINESS RULES AND GAP ANALYSIS Business Situation More
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
Applying Agile Methods in Rapidly Changing Environments
Applying Agile Methods in Changing Environments 7/23/2002 1 Applying Agile Methods in Rapidly Changing Environments Peter Kutschera IBM Unternehmensberatung GmbH Am Fichtenberg 1, D-71803 Herrenberg Steffen
Comparing Agile Software Processes Based on the Software Development Project Requirements
CIMCA 2008, IAWTIC 2008, and ISE 2008 Comparing Agile Software Processes Based on the Software Development Project Requirements Malik Qasaimeh, Hossein Mehrfard, Abdelwahab Hamou-Lhadj Department of Electrical
In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:
In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer
Agile Methodologies and Its Processes
International Journal of Computational Engineering Research Vol, 03 Issue, 9 Agile Methodologies and Its Processes 1, Akanksha, 2, Akansha Rakheja, 3, Latika Kapur, 4, Kanika Ahuja 1,2,3,, Information
Job Satisfaction and Motivation in a Large Agile Team
Job Satisfaction and Motivation in a Large Agile Team Bjørnar Tessem 1, and Frank Maurer 2 1 Department of Information Science and Media Studies, University of Bergen, NO-5020 Bergen, Norway [email protected]
Human Aspects of Software Engineering: The Case of Extreme Programming
1 Human Aspects of Software Engineering: The Case of Extreme Programming Orit Hazzan 1 and Jim Tomayko 2 1 Department of Education in Technology and Science, Technion - IIT, Haifa 32000, Israel [email protected]
Chapter 11 Project Management
Chapter 11 Project Management Managing and Using Information Systems: A Strategic Approach by Keri Pearlson & Carol Saunders Introduction What are the elements of a good project? Why do so many IT projects
Making Architectural Design Phase Obsolete TDD as a Design Method
HUT / SoberIT 2004 Spring T-76.650 SQA in Agile Software Development 1 Making Architectural Design Phase Obsolete TDD as a Design Method Marc Josefsson T-76.650 Seminar course on SQA in Agile Software
Enterprise Content Management (ECM)
Business Assessment: A Quick-Reference Summary Intro to MIKE2 methodology and phase 1 The methodology that will be used throughout the specialist track is based on the MIKE2 methodology. MIKE stands for
Agile development of safety-critical software while meetings standards' requirements
1(37) Agile development of safety-critical software while meetings standards' requirements Matti Vuori, Tampere University of Technology 2011-11-04 Contents 1/2 A study in Ohjelmaturva 4 Tendency to be
Salion s Experience with a Reactive Software Product Line Approach
Salion s Experience with a Reactive Software Product Line Approach Ross Buhrdorf Dale Churchett Salion, Inc., 720 Brazos St., Ste. 700 Austin TX 78701 USA [email protected] [email protected]
Using Iterative and Incremental Processes in Global Software Development
Using Iterative and Incremental Processes in Global Software Development Maria Paasivaara and Casper Lassenius Helsinki University of Technology Software Business and Engineering Institute POB 9210, FIN-02015
Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology
Process Methodology for Wegmans Deli Kiosk Version 1.0 Prepared by DELI-cious Developers Rochester Institute of Technology September 15, 2013 1 Table of Contents 1. Process... 3 1.1 Choice... 3 1.2 Description...
Agile Modeling: A Brief Overview
Agile Modeling: A Brief Overview Scott W. Ambler President, Ronin International [email protected] Abstract: Agile Modeling (AM) is a practice-based methodology for effective modeling of software-based
The Role of CM in Agile Development of Safety-Critical Software
The Role of CM in Agile Development of Safety-Critical Software Tor Stålhane1, Thor Myklebust 2 1 Norwegian University of Science and Technology, N-7491, Trondheim, Norway 2 SINTEF ICT, Strindveien 2,
Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution
Software Life Cycle Main issues: Discussion of different life cycle models Maintenance or evolution Not this life cycle SE, Software Lifecycle, Hans van Vliet, 2008 2 Introduction software development
Risk Knowledge Capture in the Riskit Method
Risk Knowledge Capture in the Riskit Method Jyrki Kontio and Victor R. Basili [email protected] / [email protected] University of Maryland Department of Computer Science A.V.Williams Building
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT
AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT Shivangi Shandilya, Surekha Sangwan, Ritu Yadav Dept. of Computer Science Engineering Dronacharya College Of Engineering, Gurgaon Abstract- Looking at the software
Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;
Volume 4, Issue 4, April 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Document Driven
An Approach for Using CMMI in Agile Software Development Assessments: Experiences from Three Case Studies
Copyright: Accepted for SPICE 2006 conference, that will be in Luxemburg at 4 5 th at May 2006. An Approach for Using CMMI in Agile Software Development Assessments: Experiences from Three Case Studies
2. Analysis, Design and Implementation
2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,
Software Development Process
Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software
2. Analysis, Design and Implementation
2. Analysis, Design and Implementation Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Programs to Application Systems Products Software Development:
Scrum in a Large Project Theory and Practice
Scrum in a Large Project Theory and Practice Agile World 2012 Munich, July 12, 2012 Dr. Sebastian Stamminger Scrum in Large Projects Agenda Theory Case Study Teams Our Process Challenges Lessons Learned
Agile Software Development Methodologies and Its Quality Assurance
Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed
Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6
The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses
Scaling Down Large Projects to Meet the Agile Sweet Spot
Scaling Down Large Projects to Meet the Agile Sweet Spot Philippe Kruchten Kruchten Engineering Services Ltd Presenter Philippe Kruchten, Ph. D., P. Eng. KESL 2906 West 37 th avenue Vancouver BC V5Z 2M9
The Role of Agile Methodology in Project Management
Edith Cowan University Research Online Australian Information Warfare and Security Conference Security Research Institute Conferences 2010 Success of Agile Environment in Complex Projects Abbass Ghanbary
The Oregon Software Development Process
The Oregon Software Development Process Till Schümmer 1 and Robert Slagter 2 1 Computer Science Department, FernUniversität in Hagen, Universitätsstrasse 1, 58084 Hagen, Germany [email protected]
Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda
Xtreme RUP by Ne t BJECTIVES Lightening Up the Rational Unified Process 2/9/2001 Copyright 2001 Net Objectives 1 RUP Overview Agenda Typical RUP Challenges Xtreme Programming Paradigm Document driven or
Large Scale Systems Design G52LSS
G52LSS Lecture 3 Rapid and Agile Development Rapid Application Development Prototyping CASE Tools Agile Development Extreme Programming Learning outcomes: describe main features of methods for RAD and
Agile Processes and Methodologies: A Conceptual Study
Agile Processes and Methodologies: A Conceptual Study Sheetal Sharma Amity School of Engineering & Technology Amity University Noida [email protected] Darothi Sarkar Amity School of Engineering &
Managing TM1 Projects
White Paper Managing TM1 Projects What You ll Learn in This White Paper: Traditional approaches to project management A more agile approach Prototyping Achieving the ideal outcome Assessing project teams
Adoption of Agile Methodology in Software Development
Adoption of Agile Methodology in Software Development D. Duka Ericsson Nikola Tesla, Split, Croatia e-mail: [email protected] Abstract - As adopting Agile software development becomes a trend, there
Netstar Strategic Solutions Practice Development Methodology
Netstar Strategic Solutions Practice Development Methodology Netstar Corporation Abstract This document contains a high level description of the development methodology used by the Netstar Strategic Solutions
Agile Techniques for Object Databases
db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and
CS4507 Advanced Software Engineering
CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development
Complex software project development: agile methods adoption
JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION: RESEARCH AND PRACTICE J. Softw. Maint. Evol.: Res. Pract. (2011) Published online in Wiley Online Library (wileyonlinelibrary.com)..528 Complex software project
Web Applications Development and Software Process Improvement in Small Software Firms: a Review
Web Applications Development and Software Process Improvement in Small Software Firms: a Review Haroon Tarawneh Al-balqa Applied University [email protected] Sattam Allahawiah Al-balqa Applied University
Barely Sufficient Software Engineering: 10 Practices to Improve Your Research CSE Software
Barely Sufficient Software Engineering: 10 Practices to Improve Your Research CSE Software Special Thanks: LDRD NNSA ASC SAND#: 2009-0579 C Michael A. Heroux James M. Willenbring Sandia National Laboratories
INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal
INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal Research Article ISSN 2277 9140 ABSTRACT Analysis and tabular comparison
Agile Development Overview
Presented by Jennifer Bleen, PMP Project Services Practice of Cardinal Solutions Group, Inc. Contact: Agile Manifesto We are uncovering better ways of developing software by doing it and helping others
A Comparison between Five Models of Software Engineering
International Journal of Research in Information Technology (IJRIT) www.ijrit.com ISSN 2001-5569 A Comparison between Five Models of Software Engineering Surbhi Gupta, Vikrant Dewan CSE, Dronacharya College
Principles of Software Engineering: Software Methodologies. COSI 120b, Spring 2005
Principles of Software Engineering: Software Methodologies COSI 120b, Spring 2005 Overview What are methodologies? The methodologies Traditional Incremental Evolutionary Other Conclusions Way Forward What
Software Development Life Cycle Models - Process Models. Week 2, Session 1
Software Development Life Cycle Models - Process Models Week 2, Session 1 PROCESS MODELS Many life cycle models have been proposed } Traditional Models (plan-driven) } Classical waterfall model } Iterative
Basic Unified Process: A Process for Small and Agile Projects
Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.
Introduction to Agile Software Development
Introduction to Agile Software Development Word Association Write down the first word or phrase that pops in your head when you hear: Extreme Programming (XP) Team (or Personal) Software Process (TSP/PSP)
Object-Oriented and Classical Software Engineering
Slide 3.1 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach [email protected] CHAPTER 3 Slide 3.2 SOFTWARE LIFE-CYCLE MODELS Overview Slide
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material,
ISO, CMMI and PMBOK Risk Management: a Comparative Analysis
ISO, CMMI and PMBOK Risk Management: a Comparative Analysis Cristine Martins Gomes de Gusmão Federal University of Pernambuco / Informatics Center Hermano Perrelli de Moura Federal University of Pernambuco
XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories
XP & Scrum Beatrice Åkerblom [email protected] extreme Programming XP Roles XP Roles, cont!d! Customer ~ Writes User Stories and specifies Functional Tests ~ Sets priorities, explains stories ~ May or
Enterprise Architecture: Practical Guide to Logical Architecture
Objecteering Practical Guides Enterprise Architecture: Practical Guide to Logical Architecture Author: Version: 1.0 Copyright: Softeam Softeam Consulting Team Supervised by Philippe Desfray Softeam 21
Software Quality and Assurance in Waterfall model and XP - A Comparative Study
Software Quality and Assurance in Waterfall model and XP - A Comparative Study Dr. Sana a Jawdat Khalaf [email protected] Dr. Mohamed Noor Al-Jedaiah [email protected] Abstract: -Dealing with
Quality Ensuring Development of Software Processes
Quality Ensuring Development of Software Processes ALEXANDER FÖRSTER,GREGOR ENGELS Department of Computer Science University of Paderborn D-33095 Paderborn, Germany {alfo engels}@upb.de ABSTRACT: Software
Comparing Plan-Driven and Agile Project Approaches
Comparing Plan-Driven and Agile Project Approaches A Personal Perspective Presented by: Craig D. Wilson Matincor, Inc. Copyright 2006-2010 2010 Outline Introduction to System Development Methodology Contrasting
Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering
Object-Oriented Software Development What is Object-Oriented Development Object-Oriented vs. Traditional Development An Object-Oriented Development Framework Phases, Activities, and Work Products Phases,
Virtual Platforms Addressing challenges in telecom product development
white paper Virtual Platforms Addressing challenges in telecom product development This page is intentionally left blank. EXECUTIVE SUMMARY Telecom Equipment Manufacturers (TEMs) are currently facing numerous
A Survey of Software Development Process Models in Software Engineering
, pp. 55-70 http://dx.doi.org/10.14257/ijseia.2015.9.11.05 A Survey of Software Development Process Models in Software Engineering Iqbal H. Sarker 1, Faisal Faruque 1, Ujjal Hossen 2 and Atikur Rahman
DITA Adoption Process: Roles, Responsibilities, and Skills
DITA Adoption Process: Roles, Responsibilities, and Skills Contents 2 Contents DITA Adoption Process: Roles, Responsibilities, and Skills... 3 Investigation Phase... 3 Selling Phase...4 Pilot Phase...5
Development Methodologies
Slide 3.1 Development Methodologies Prof. Dr. Josef M. Joller [email protected] Development Methodologies Prof. Dr. Josef M. Joller 1 Session 3 Slide 3.2 SOFTWARE LIFE-CYCLE MODELS Development Methodologies
Agile Development and Software Architecture: Understanding Scale and Risk
Agile Development and Software Architecture: Understanding Scale and Risk Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Robert L. Nord SSTC, April 2012 In collaboration
An Enterprise Architecture and Data quality framework
An Enterprise Architecture and quality framework Jerome Capirossi - NATEA-Consulting [email protected] http://capirossi.org, Pascal Rabier La Mutuelle Generale [email protected] Abstract:
Agile with XP and Scrum
Agile with XP and Scrum Amit Goel National Agile Software Workshop @ Indore Agile India Conference Agile Software Community of India Disclaimer and Credits Most of material in this presentation has been
How To Model Software Development Life Cycle Models
Various Software Development Life Cycle Models Sahil Jindal, Puneet Gulati, Praveen Rohilla Dronacharya College of Engineering, India Abstract:An SDLC model is a conceptual framework describing different
Software Engineering
1 Software Engineering Lecture 2: Software Life Cycles Stefan Hallerstede Århus School of Engineering 25 August 2011 2 Contents Naive Software Development Code & Fix Towards A Software Process Software
The use of Trade-offs in the development of Web Applications
The use of Trade-offs in the development of Web Applications Sven Ziemer and Tor Stålhane Department of Computer and Information Science Norwegian University of Technology and Science {svenz, stalhane}@idi.ntnu.no
Life Cycle Models. V. Paúl Pauca. CSC 331-631 Fall 2013. Department of Computer Science Wake Forest University. Object Oriented Software Engineering
Life Cycle Models V. Paúl Pauca Department of Computer Science Wake Forest University CSC 331-631 Fall 2013 Software Life Cycle The overall framework in which software is conceived, developed, and maintained.
IT3203 Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3
Fundamentals of Software Engineering (Compulsory) BIT 2 nd YEAR SEMESTER 3 INTRODUCTION This course is designed to provide the students with the basic competencies required to identify requirements, document
Software Engineering. Introduction. Lecturer: Giuseppe Santucci
Software Engineering Introduction Lecturer: Giuseppe Santucci Summary Some useful pieces of information Introduction to Software Engineering Standardization of Software Process 2 Software Engineering Classes
Software Refactoring using New Architecture of Java Design Patterns
Software Refactoring using New Architecture of Java Design Patterns Norddin Habti, Prashant 1, 1 Departement d informatique et de recherche operationnelle, Universite de Montreal, Quebec, Canada (Dated:
A Configuration Management Model for Software Product Line
A Configuration Management Model for Software Product Line Liguo Yu 1 and Srini Ramaswamy 2 1 Computer Science and Informatics Indiana University South Bend South Bend, IN 46634, USA [email protected] 2 Computer
Extreme Programming, an agile software development process
Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled
by Heather Oppenheimer and Steve Baldassano
Switching Tracks: Finding the Right Way to Get to Maturity Level 2 by Heather Oppenheimer and Steve Baldassano When your customer contract requires that your software development process must be CMMI Level
A Software process engineering course
Rochester Institute of Technology RIT Scholar Works Presentations and other scholarship 2009 A Software process engineering course J. Scott Hawker Follow this and additional works at: http://scholarworks.rit.edu/other
Agile Software Engineering, a proposed extension for in-house software development
Journal of Information & Communication Technology Vol. 5, No. 2, (Fall 2011) 61-73 Agile Software Engineering, a proposed extension for in-house software development Muhammad Misbahuddin * Institute of
Continuous User Experience Development
Continuous User Experience Development Kati Kuusinen Tampere University of Technology Tampere, Finland Korkeakoulunkatu 1, FI-33101 Tampere [email protected] Abstract. Continuous approaches for software
