A Quality Assurance Approach to Technical Debt

Size: px
Start display at page:

Download "A Quality Assurance Approach to Technical Debt"

Transcription

1 172 Int'l Conf. Software Eng. Research and Practice SERP'14 A Quality Assurance Approach to Technical Debt Zadia Codabux, Byron J. Williams, Nan Niu Department of Computer Science and Engineering Mississippi State University Starkville, Mississippi Abstract - Technical debt is a metaphor used to reason about lingering issues in software development. It is the result of decisions taken during the development process, which are often made due to resource constraints and aggressive schedules. The consequences of technical debt are that it can impede future development and incur increasing costs. However, technical debt is not always bad as, in some cases, respecting deadlines is more important than clean code. Nevertheless, for achieving quality software, it is crucial to prevent the amount of debt from increasing. In this paper, we describe a method for addressing technical debt using a quality assurance (QA) classification scheme and focus on prevention, reduction, and containment activities. We also highlight techniques and processes that are used to apply quality assurance to technical debt. Keywords: technical debt, software quality, software testing 1. Introduction Software development is prone to failure. One of the root causes of this failure is the use of predictive processes for complex software. Predictive processes attempt to fully define all requirements upfront. Traditional software development models such as the waterfall model, which involves predictive processes, are not the most appropriate when business needs and technology change rapidly. It is often difficult to establish a complete vision for the software product at inception, list all the requirements clearly, and devise a detailed plan to convert these requirements into the finished product [1]. A shift in thinking occurred when development began to focus on customer needs and the product rather than the processes. This shift gave rise to agile software development, which involves an incremental, iterative approach to project development where the requirements and their solutions evolve through collaboration between development teams and customers [1]. In addition, as stated by Williams and Cockburn, agile development is about feedback and change, and agile methodologies are developed to embrace, rather than reject, higher rates of change [2]. One of the main foci of agile software development is quick release of functionality. While so doing, technical debt can arise whenever issues not solved in the current release will have to be addressed in later releases [1]. This technical debt metaphor was coined by Ward Cunningham in the 1992 OOPSLA experience report to describe how long-term code quality is traded for short-term gains such as increased productivity. Cunningham stated, Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite. Objects make the cost of this transaction tolerable. The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise [3]. In other words, technical debt is the consequence of tradeoffs made during software development, as illustrated in Figure 1. These tradeoffs include not preserving architectural design; not using good programming practices, conventions and standards; no longer updating documentation; and not performing thorough testing [4]. However, every minute spent on not-quite-right code counts as interest towards the debt [3]. The metaphor has since been extended and refers to any imperfect artifact in the software development life cycle [5]. Technical debt can be classified as unintentional or intentional. Unintentional debt is acquired inadvertently, for example, due to low quality of work or the lack of adherence to good programming practices. However, intentional debt is accumulated for strategic reasons, e.g., compromising on proper coding standards in order to deliver software on time. Intentional debt is further classified as short-term or long-term debt [6]. Another classification of technical debt is based on traditional lifecycle phases such as testing debt, design debt, and documentation debt [7]. Documentation debt is the result of inadequate or outdated documentation. Design debt is the result of any anomaly or imperfection in the source code. Testing debts are tests that were planned but not implemented or executed. Over the last decade, technical debt has gained a lot of attention from the software engineering research community.

2 Int'l Conf. Software Eng. Research and Practice SERP' However, the minimal amount of empirical studies existent in the field indicates that there is still need to bridge the gap between research and practice [9]. This can be achieved by carrying out more empirical studies involving practitioners and identifying best practices from the software engineering literature to address technical debt. software will be fixed after the release. In addition to timeto-market factor, he also explained how preservation of startup capital contributes towards technical debt. In a startup company, expenses that can be delayed should be, as opposed to expending startup funds on technical debt now. Another case where it might be justifiable to incur technical debt would be near the end of a system s lifecycle because when a system retires, all the debts retire with it [6]. As explained earlier, technical debt is not always bad if it allows a business to achieve a competitive edge and market share. In such cases, it makes sense to delay the moment when the software is brought in line with standards and best practices. Good technical debt has one or more of the following characteristics [11]: Figure 1: Technical Debt [8] Technical debt if not handled, can become a problem to organizations. Seaman et al. [10] enumerated some examples of the consequences of technical debt as disastrous consequences large cost overruns quality issues inability to add new features without disrupting existing ones premature loss of a system This paper proposes different practices to prevent, reduce and contain technical debt in an agile software development environment context. The rest of the paper is structured as follows: Section 2 addresses the impact of technical debt. Section 3 focuses on the relation between quality assurance and technical debt while presenting a quality assurance approach to managing technical debt. Section 4 presents some recommendations for managing technical debt. Finally, Section 5 concludes the paper. 2. The Impact of Technical Debt At the start of a new project, it is common to intentionally incur technical debt in order to achieve some goals. When technical debt is incurred for strategic reasons, it is due to the opportunity cost of releasing software now compared to some point in the future. For instance, McConnell points out that when time to market is critical, incurring technical debt might be a good business decision. Other instances where debt can be incurred may be due to time and resource constraints where the software or feature needs to get out of the door and the It has a low interest rate technical debt with low interest rate can be supported for a longer time frame as the development costs won t increase over time. Repaying the debt at a later time might cost insignificantly more than it will cost to repay it now. It is being regularly serviced - when technical debt is regularly serviced, the amount of debt will decrease over time, thereby increasing the quality of the software. The work that preceded it had a very high opportunity cost if there is a high opportunity cost related to the debt, it is preferable to release the software and incur some debt, rather than not releasing and losing money. The decision to assume the debt must be made explicit and should be the result of a collective decision based on the key stakeholders concerned. Such a decision will normally be taken after assessment of the risks and benefits identified. In addition, the stakeholders must ensure that a process exists to manage the debt and that it is paid back within a set period of time. However, non-strategic debt can be detrimental to the quality of the software. Such situations might include when the debt is taken on without stakeholder approval and the impact of the debt is not properly assessed. It is harder to track and manage technical debt accumulated due to shortcuts taken as a result of the lack of quality assurances processes [6]. This type of debt is comparable to credit card debt as it can be easily incurred and adds up very fast due to compounding interest. Nonetheless, a process to pay back technical debt is needed. The longer the debt repayment is deferred, the harder and more costly it will be to pay it back as the interest charges keep compounding. Technical debt is often quantified as principal and interest. Principal refers to the cost of completing the task at present. Interest is the extra cost added to the principal that will be needed to complete the task at a later time. These are the basic factors for calculating the Return on Investment (ROI) on resolving the debt if the costs can be determined. Over time, technical debt can lead to degeneration of the system s architecture. The lack of prompt debt payment can

3 174 Int'l Conf. Software Eng. Research and Practice SERP'14 result in technical bankruptcy where an organization s resources are spent dealing with the inefficiencies created by the debt that has accumulated over time and can no longer keep up [12]. In the worst case, the software might need a complete redesign or need to be rewritten, entire departments are outsourced, customers and market shares lost and customer confidence is lost as the company will be spending more resources on debt servicing rather than focusing on new features [13]. A famous example is Netscape Navigator, which experienced architecture decay over a short time period. Netscape developers wanted to release a newer version of the software but could not because the code was harder to change than expected and the system became unmaintainable. The architecture was difficult to understand and it became almost impossible to add new components [14]. Another example is Visual Query Interface (VQI), a software package that degenerated as the programmers made changes to the system without following the architectural guidelines provided. The programmers introduced design pattern violations which cause unnecessary couplings, misplaced classes (i.e., classes placed in the wrong package), and imported classes not used in the package [15]. This degeneration is referred to as code decay [13]. Code decay can have several root causes. One cause is violating architectural design principles. For example, in a strictly layered system, where a layer can only use the services provided by the layer below. If a developer does not follow the constraint, this change is considered a violation of the architecture. Other causes for code decay include: Time pressure that causes programmers to knowingly postpone refactoring Writing code without following proper programming conventions Debugging code improperly Taking shortcuts to get a working solution as fast as possible The above examples illustrate that technical debt gives rise to code decay, which makes code changes harder than they should be. Hochstein et al. [13] reported that in order to find areas of code decay, they used a tool to detect code smells which helped to identify code areas where good design principles were breaking down. A code smell is a surface indication that usually corresponds to a deeper problem in the system [16]. As a result, code smells are useful to identify areas accumulating technical debt. As illustrated above, technical debt can be disastrous if not handled properly. The next section proposes different techniques to handle technical debt with the aim of producing better quality software. 3. Technical Debt and Quality Assurance Technical debt can be used to reason about software quality. Seaman et al. pointed out that metrics such as cohesion, coupling, complexity and depth of decomposition for software quality can be used to quantify technical debt. Some examples include: the software has defects and needs to be reworked, the software does not fulfill its requirements, all test cases have not been executed, or missing documentation. Example indicators of technical debt include the number of defects in the system, the number of requirements that remain unfulfilled, the number of test cases that need to be executed or automated and documentation that requires completion updating. Technical debt can be characterized by the amount of work that needs to be done and associated costs in order to address these problems [17]. In order to better select, adapt and use QA techniques most appropriate for specific applications, Tian proposed the following Quality Assurance classification scheme for defects [18]: Defect prevention Defect reduction Defect containment Defect prevention activities consisted of activities whose aim is to prevent certain types of faults from being injected in the software. These activities include eliminating technical ambiguities and correcting human misconceptions about functionality. Another activity is fault prevention or blocking that involves directly preventing missing or incorrect human actions. Defect reduction activities have the objective of detecting and removing faults once they have been injected in the system. This is commonly achieved using inspections, testing, static analysis or observations during dynamic execution. Defect containment activities involve containing the failures to local areas to limit their impact. Activities include using fault tolerant techniques to break the relationship between fault and failure. The QA classification described above has been adapted to technical debt. The following section will depict how technical debt can be prevented, reduced and contained with the overall aim of managing the amount of technical debt in the software, thereby increasing its quality Technical Debt Prevention The aim of technical debt prevention activities is to proactively reduce the chance of technical debts being injected

4 Int'l Conf. Software Eng. Research and Practice SERP' in the software. Different strategies are proposed to handle the different sources of debt injections. Education and Training - In cases that human misconceptions are sources of error, the software professionals can be trained on the organization s development methodology, technology and tools, and development process. Education and training will reduce the probability of implementing the wrong solutions and subsequent rework in design, coding and testing phases. These issues are potential contributors to the technical debt backlog. Pair Programming - Pair programming is an agile technique whereby two software developers work side by side at a workstation, one writing the code while the other reviews the code. A study carried out by Cockburn et al. found that pair programming improves design quality, reduces defects and enhances technical skills [19]. Such best practices will help reduce unclear, unreadable, duplicated code which is often the source of technical debt. Test-driven Development - Test-driven development is an approach to software development that requires writing a failed automated test before writing the code that makes the test pass. Once the code passes the test, the cycle is repeated including refactoring the existing code to ensure clean code that always works. Thus, test-driven development reduces risk because developers have a better understanding of what the software should achieve and the code has fewer defects. Consequently, this code does not contribute to the technical debt backlog. Refactoring - Refactoring is a technique for restructuring code by improving its internal structure without affecting its external behavior. Refactoring improves not only aspects of code quality but also productivity [20]. Examples of refactoring involve deleting unused code and duplicated code. Continuous Integration - Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily, leading to multiple integrations per day [21]. Continuous integration speeds development and the team is able to deliver at any moment a version of the software suitable for release. In addition, it encourages feedback between customers and the development team, which assists with ensuring proper functionality before set deadlines. Conformance to process and standards - When the source of the debt is due to non-conformance to processes, standards and conventions then enforcement either at the organization or project level will help prevent technical debt injections. Such activities theoretically contribute to high quality software, thereby reducing the amount of defects. Tools - Moreover, tools that can aid in reducing the chance of debt injections should be utilized; for example, a syntax-directed editor can help to reduce syntactical problems. Customer Feedback - Getting customer feedback can help clarify any requirements misinterpretations early. This feedback will assist in preventing the wrong solution from being implemented, thus increasing technical debt. Prototyping is a tool that can be used to aid in getting customer feedback by allowing them to interact with the working system and communicating their satisfaction or concern before the software is actually deployed [22]. Others There are other best practices that can contribute to technical debt prevention: o Bug bashes which involve the entire team putting aside their daily activities to review and exercise a part of the code base with the objective of quickly revealing defects. o Having dedicated teams whose primary focus is on reducing technical debt [9]. o Having each development team dedicating one iteration during a set release period towards debt reduction [9]. o Allowing Slack planning some lower priority tasks that can be dropped if the team gets behind. In this way, the team will deliver the most important functions. o Reflective improvement developers take a break from software development and try to find ways to improve their processes. This helps to pinpoint processes that are and are not working and modify them to develop a strategy that works better. However, none of the techniques listed above are 100% foolproof and cannot guarantee prevention of technical debt. In addition, it is very difficult for a company to adopt each and every best practice suggested above. For example, prototyping can be a costly technique and might not be suitable for small companies. A company with limited manpower might not find pair programming a very attractive solution. Refactoring requires some level of expertise and experience with the code. Novice programmers may not be able to refactor large portions of the code. A company might adopt one or more of the suggested techniques and best practices, according to what they think will be most fruitful to them, based on the resources at their disposal and the types of system being developed Technical Debt Reduction The aim of technical debt reduction activities is to remove as much of the injected debt as possible. There are numerous

5 176 Int'l Conf. Software Eng. Research and Practice SERP'14 good practices in agile software development that can benefit technical debt reduction. Such agile practices include code reviews (using static analysis tools), test automation and customer feedback. Code reviews using static analysis tools assess the quality of the code without executing the code to reveal violations of recommended programming practices that might affect the quality of the software [4]. These tools help to pinpoint problematic code areas such as long methods, large classes, and duplicated methods and help reduce technical debt [23]. Automating unit tests act as a safety net by providing immediate feedback to the team. In addition, automating regression testing in an automated build process permits growth of solid code while quickly iterating. Automated tests protect the software in the sense that it prevents certain defects from reoccurring without being detected [23]. Customer feedback is an essential agile practice. After an iteration, the new features should be demonstrated to the customers for feedback. Such an initiative will ensure that the development team is on the right track and not accumulating any specification debt. Performing regular code reviews and automated testing are techniques that can be used to identify and reduce technical debt. Involving the customer provides the added benefit of validating the software before its release. However, despite the availability of static analysis tools, it might not always be possible to carry out extensive code reviews. Often, these tools report many false positives that limit the effectiveness of the tools. Similarly, when all unit tests cannot be automated due to resource constraints, a team can accumulate test debt. Based on their resource availability, a company can decide which of the proposed techniques work best for them Technical Debt Containment Technical debts that bypassed the debt prevention and reduction activities intentionally or unintentionally remain present in the software. It is common practice to have working software deployed at a customer s site with known technical debt present. For these situations, technical debt containment is the quality assurance approach that must be taken. It is imperative to isolate the impact of known debts so that other parts of the software are not impacted. While there is a lack of techniques proposed in existing literature to contain technical debt, N-version programming (NVP) is one applicable approach. N-version programming NVP is the independent generation of functionally equivalent programs from the same initial specification [24]. It is a technique that can be adapted to contain technical debt by introducing duplications in the software. Often, developers are hesitant to refactor complex code for fear of introducing additional defects. When there are independent versions of the software, programmers will be able to refactor one version of the code. If there is a failure in that particular version, the software will still function correctly, due to the multiple versions. NVP is a technique that can be used for technical debt containment. However, NVP has its limitations. First, it is a technique that relies heavily on the accuracy of the requirement specifications. Also, it is based on the assumption that the software built differently will result in few similar errors. Lastly, the cost with implementing N versions of a program instead of one increases development cost [25]. These restrictions may prevent a challenge to the adoption of NVP, but the need to contain the impact of lingering debts makes it a viable solution. 4. Recommendations For Managing Technical Debt Despite a company s desire to prevent and reduce technical debt, it is difficult to get rid of all the debt. Gradually, the software development team needs to pay off the debt as a commitment towards ensuring quality software. Laribee proposed a four-phase approach to tackle technical debt [26]: 1. Identify the technical debt and its location. 2. Prioritize the debt with the help of the concerned stakeholders and the team members. 3. Fix the debt. 4. Repeat phases 1-3. Phase 1 is a crucial step as it is imperative to perform a technical debt analysis to assess how much technical debt is present in the code base and make it visible. Free tools such as Sonar [27] can aid in the process of code quality transparency. Sonar has a technical debt plug-in that identifies potential issues before they affect delivery and shows the approximate cost to pay back all the technical debt in a module or across different modules as in Figure 2. Figure 2: Sample Information Extracted from Sonar [23] Such tools can help build up a technical debt list, each item in the list representing an uncompleted task. For each debt item, the list should contain a description of where the debt is, why the tasks need to be addressed, estimates of the principal and interest, and effort estimates. It is common practice to maintain the list within the company s defect tracking system as a debt backlog.

6 Int'l Conf. Software Eng. Research and Practice SERP' Once technical debts have been identified, the next step is to communicate with the concerned stakeholders so that they are aware of the issues. Next, the decision can be made on how to prioritize the technical debt list such that the most critical items are addressed first. Seaman el al. [10] propose 4 distinct decision making approaches for prioritizing technical debt. In the Cost/Benefit Analysis approach, the principal, interest and interest probability of each technical debt item is assigned ordinal scales of measurements such as low, medium and high, which can help make coarse-grained preliminary decisions. For example, a company may decide to tackle 75% of debt with high interest and 25% of debt with medium interest and defer the ones with low interest. Secondly, the Analytic Hierarchy Process (AHP) assigns weights and scales to different criteria which are used to measure technical debt. Then, a series of pair-wise comparisons is performed between the alternatives to get a prioritized ranking of the technical debt items. The Portfolio approach is based on the return on maximization of investment value and investment risk minimization to decide what technical debts should be addressed first. Lastly, the Options approach is analogous to investing in refactoring the debt item with the long-term objective of facilitating maintenance in the future and thereby saving money. Snipes et al. assess deferred defects to determine the amount of technical debt and prioritize fixes. [28]. They identified the factors that influence the decision as follows: Severity - assesses the impact of the defect on the customer s normal system operations Existence of a workaround - defers the defects to a later release and temporarily fixing the issue using an alternate approach Urgency of fix required by a customer - occurs when the customer requests a fix for a particular defect Effort to implement the fix - refers to the effort and time required to fix and test the defect Risk of the proposed fix refers to the extent to which the code and functionality will be changed when the defect is fixed Scope of testing required - determines whether regression tests need to be run on the resulting defect fix The factors listed above are of decreasing order of importance. After technical debt has been identified and prioritized, the technical debt items need to be integrated into the existing development backlog. Identifying and prioritizing technical debts are the initial phases in the whole process. The real challenge for the team is to actually work on the debt backlog to reduce the debt and transform a system of marginal quality into a sustainable, high quality set of artifacts. 5. Conclusion Technical debt is part of every project and affects different artifacts in the software development life cycle. It is important that technical debt is visible to all concerned stakeholders. An additional good practice is to repay the technical debt within a tolerated time frame. Indeed, if not handled promptly, the consequences can be drastic. Proactively applying prevention and reduction QA activities will ensure that quality artifacts are being produced. Reactively, the technical debt needs to be identified, located and contained. In this paper, we have proposed a set of quality assurance activities that focus on prevention, reduction and containment of technical debt. Prevention activities include pair programming, test-driven development, continuous integration, formal methods, amongst others; reduction activities include customer feedback, code reviews and automated testing; and containment activities include N-version programming. This paper provides a single source for common best practices for technical debt and can help organizations that have newly adopted agile methods to better manage their technical debt and prevent the debt backlog from growing. More mature companies can also benefit from this work as they may decide to include more best practices into their iterations or shift from one technique to another and this list can help guide their choices. 6. References [1] K. Schwaber and J. Sutherland, Software in 30 Days: How Agile Managers Beat the Odds, Delight Their Customers, And Leave Competitors In the Dust. John Wiley & Sons, [2] L. Williams and A. Cockburn, Agile software development: it s about feedback and change, Computer, vol. 36, no. 6, pp , [3] W. Cunningham, The WyCash portfolio management system, in Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum), Vancouver, British Columbia, Canada, 1992, pp [4] A. Vetro, Using automatic static analysis to identify technical debt, in th International Conference on Software Engineering (ICSE), 2012, pp [5] C. Seaman and N. Zazworka, IEEE/Lockheed Martin Webinar on Identifying and Managing Technical Debt, Nov [Online]. Available:

7 178 Int'l Conf. Software Eng. Research and Practice SERP'14 [6] S. McConnell, Technical Debt. [Online]. Available: cal_debt/. [Accessed: 14-Apr-2013]. [7] J. Rothman, An Incremental Technique to Pay Off Testing Technical Debt. [Online]. Available: ObjectType=COL&ObjectId= [Accessed: 14-Apr- 2013]. [8] G. Lipka, The UX of Technical Debt, Feb [Online]. Available: [Accessed: 14-Apr-2013]. [9] Z. Codabux and B. Williams, Managing technical debt: An industrial case study, in th International Workshop on Managing Technical Debt (MTD), 2013, pp [10] C. Seaman, Y. Guo, N. Zazworka, F. Shull, C. Izurieta, Y. Cai, and A. Vetro, Using technical debt data in decision making: Potential decision approaches, in 2012 Third International Workshop on Managing Technical Debt (MTD), 2012, pp [11] S. Chin, E. Huddleston, W. Bodwell, and I. Gat, The Economics of Technical Debt, Cutter IT Journal, vol. 23, no. 10, [12] T. Theodoropoulos, Technical Debt Part 1: Definition. [13] L. Hochstein and M. Lindvall, Diagnosing architectural degeneration, in Software Engineering Workshop, Proceedings. 28th Annual NASA Goddard, 2003, pp [14] M. W. Godfrey and E. H. S. Lee, Secrets from the Monster: Extracting Mozilla s Software Architecture, in In Proc. of 2000 Intl. Symposium on Constructing software engineering tools (CoSET 2000, 2000, pp [15] R. T. Tvedt, P. Costa, and M. Lindvall, Does the code match the design? A process for architecture evaluation, in International Conference on Software Maintenance, Proceedings, 2002, pp [16] M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts, Refactoring: Improving the Design of Existing Code, 1st ed. Addison-Wesley Professional, [17] C. Seaman and Y. Guo, Chapter 2 - Measuring and Monitoring Technical Debt, in Advances in Computers, vol. Volume 82, Marvin V. Zelkowitz, Ed. Elsevier, 2011, pp [Online]. Available: ub/sqp/past/vol3_issue3/sqpv3i3tian.pdf. [Accessed: 10-Mar- 2014]. [19] A. Cockburn and L. Williams, The Costs and Benefits of Pair Programming, in In extreme Programming and Flexible Processes in Software Engineering XP2000, 2000, pp [20] R. Moser, P. Abrahamsson, W. Pedrycz, A. Sillitti, and G. Succi, A Case Study on the Impact of Refactoring on Quality and Productivity in an Agile Team, in Balancing Agility and Formalism in Software Engineering, B. Meyer, J. R. Nawrocki, and B. Walter, Eds. Springer Berlin Heidelberg, 2008, pp [21] M. Fowler, Continuous Integration, May [Online]. Available: [Accessed: 12-Mar-2014]. [22] E. Allman, Managing technical debt, Commun. ACM, vol. 55, no. 5, pp , May [23] B. Barton and C. Sterling, Manage Project Portfolios More Effectively by Including Software Debt in the Decision Process, Cutter IT Journal, vol. 23, no. 10, [24] L. Chen and A. Avizienis, N-Version Programming: A Fault-Tolerance Approach to Reliability of Software Operation, in Twenty-Fifth International Symposium on Fault-Tolerant Computing, 1995, Highlights from Twenty- Five Years, [25] V. Bharathi, N-Version programming method of Software Fault Tolerance: A Critical Review, in National Conference on Nonlinear Systems and Dynamics, NCNSD, [26] D. Laribee, Using Agile Techniques to Pay Back Technical Debt. [Online]. Available: [Accessed: 22-Apr-2013]. [27] SonarQubeTM. [Online]. Available: [Accessed: 16-Jan-2014]. [28] W. Snipes, B. Robinson, Y. Guo, and C. Seaman, Defining the decision factors for managing defects: A technical debt perspective, in 2012 Third International Workshop on Managing Technical Debt (MTD), 2012, pp [18] J. Tian, Quality Assurance Alternatives and Techniques: A Defect-Based Survey and Analysis, 01-Jun-

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study S. Vijayakumar [email protected] School of Computer and Information Science University of South Australia,

More information

Comparing Agile Software Processes Based on the Software Development Project Requirements

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

More information

Managing Technical Debt in Software-Reliant Systems

Managing Technical Debt in Software-Reliant Systems Managing Technical Debt in Software-Reliant Systems Brown, N.*, Cai, Y.**, Guo, Y., Kazman, R.*,, Kim, M. +, Kruchten, P. #, Lim, E. #, MacCormack, A. ++, Nord, R*., Ozkaya, I.*, Sangwan, R. π, Seaman,

More information

Applying Lean on Agile Scrum Development Methodology

Applying Lean on Agile Scrum Development Methodology ISSN:2320-0790 Applying Lean on Agile Scrum Development Methodology SurendRaj Dharmapal, Dr. K. Thirunadana Sikamani Department of Computer Science, St. Peter University St. Peter s College of Engineering

More information

Software Development Life Cycle (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

More information

Scaling Down Large Projects to Meet the Agile Sweet Spot

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

More information

Agile Software Engineering, a proposed extension for in-house software development

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

More information

Agile Software Development Methodologies and Its Quality Assurance

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

More information

Data Quality Assessment. Approach

Data Quality Assessment. Approach Approach Prepared By: Sanjay Seth Data Quality Assessment Approach-Review.doc Page 1 of 15 Introduction Data quality is crucial to the success of Business Intelligence initiatives. Unless data in source

More information

Agile So)ware Development

Agile So)ware Development Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast

More information

Five Fundamental Data Quality Practices

Five Fundamental Data Quality Practices Five Fundamental Data Quality Practices W H I T E PA P E R : DATA QUALITY & DATA INTEGRATION David Loshin WHITE PAPER: DATA QUALITY & DATA INTEGRATION Five Fundamental Data Quality Practices 2 INTRODUCTION

More information

Agile Software Development

Agile Software Development Agile Software Development Application in the Medical Device Industry Kelly Weyrauch Medtronic, Inc. (29 April 2008) Introduction Purpose Provide an introduction to Agile Software Development as it applies

More information

Software Development Process

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

More information

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

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

More information

Basic Trends of Modern Software Development

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

More information

Anatomy of an Enterprise Software Delivery Project

Anatomy of an Enterprise Software Delivery Project Chapter 2 Anatomy of an Enterprise Software Delivery Project Chapter Summary I present an example of a typical enterprise software delivery project. I examine its key characteristics and analyze specific

More information

Usage of SCRUM Practices within a Global Company

Usage of SCRUM Practices within a Global Company 2008 IEEE International Conference on Global Software Engineering Usage of SCRUM Practices within a Global Company Mauricio Cristal [email protected] Daniel Wildt FACENSA, Brazil [email protected]

More information

Successful Projects Begin with Well-Defined Requirements

Successful Projects Begin with Well-Defined Requirements Successful Projects Begin with Well-Defined Requirements Defining requirements clearly and accurately at the outset speeds software development processes and leads to dramatic savings. Executive Summary

More information

Measurement Information Model

Measurement Information Model mcgarry02.qxd 9/7/01 1:27 PM Page 13 2 Information Model This chapter describes one of the fundamental measurement concepts of Practical Software, the Information Model. The Information Model provides

More information

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc. [email protected] www.coveros.

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc. jeff.payne@coveros.com www.coveros. Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc. [email protected] www.coveros.com 1 About Coveros Coveros helps organizations accelerate the delivery

More information

A Capability Maturity Model (CMM)

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

More information

Agile with XP and Scrum

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

More information

Coverity White Paper. Effective Management of Static Analysis Vulnerabilities and Defects

Coverity White Paper. Effective Management of Static Analysis Vulnerabilities and Defects Effective Management of Static Analysis Vulnerabilities and Defects Introduction According to a recent industry study, companies are increasingly expanding their development testing efforts to lower their

More information

Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations

Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations Investigation of Adherence Degree of Agile Requirements Engineering Practices in Non-Agile Software Development Organizations Mennatallah H. Ibrahim Department of Computers and Information Sciences Institute

More information

Balancing the Outsourcing Equation

Balancing the Outsourcing Equation Whitepaper Balancing the Outsourcing Equation A Blueprint on how to obtain the benefits of outsourcing without the risks. 2013 Blueprint Software Systems Inc. All rights reserved Executive Summary This

More information

The Role of Agile Methodology in Project Management

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

More information

Agile QA s Revolutionary Impact on Project Management

Agile QA s Revolutionary Impact on Project Management Agile QA s Revolutionary Impact on Project Management Introduction & Agenda Rachele Maurer Agile Coach, Platinum Edge Inc. PMP, CSM, PMI-ACP Agenda A quick overview of agile Current QA practices QA using

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development Ingegneria del Software Corso di Laurea in Informatica per il Management Agile software development Davide Rossi Dipartimento di Informatica Università di Bologna The problem Efficiency: too much effort

More information

Extreme Programming, an agile software development process

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

More information

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing

More information

On the Agile Development of Virtual Reality Systems

On the Agile Development of Virtual Reality Systems 10 Int'l Conf. Software Eng. Research and Practice SERP'15 On the Agile Development of Virtual Reality Systems F. Mattioli 1, D. Caetano 1, A. Cardoso 1, and E. Lamounier 1 1 Faculty of Electrical Engineering,

More information

Managing Technical Debt

Managing Technical Debt Managing Technical Debt Steve McConnell www.construx.com Copyright Notice These class materials are 2007-2013 by Steven C. McConnell and Construx Software Builders, Inc. All Rights Reserved. No part of

More information

Operationalizing Data Governance through Data Policy Management

Operationalizing Data Governance through Data Policy Management Operationalizing Data Governance through Data Policy Management Prepared for alido by: David Loshin nowledge Integrity, Inc. June, 2010 2010 nowledge Integrity, Inc. Page 1 Introduction The increasing

More information

How To Decide When To Fix A Defect

How To Decide When To Fix A Defect Will Snipes, Brian Robinson ABB Corporate Research; Yuepu Guo, Carolyn Seaman University of Maryland Baltimore County Defining the Decision Factors for Managing Defects: A Technical Debt Perspective September

More information

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL Sanja Vukićević 1, Dražen Drašković 2 1 Faculty of Organizational Sciences, University of Belgrade, [email protected] 2 Faculty

More information

Software Project Management Matrics. Complied by Heng Sovannarith [email protected]

Software Project Management Matrics. Complied by Heng Sovannarith heng_sovannarith@yahoo.com Software Project Management Matrics Complied by Heng Sovannarith [email protected] Introduction Hardware is declining while software is increasing. Software Crisis: Schedule and cost estimates

More information

Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;

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

More information

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: 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

More information

Chapter 9 Software Evolution

Chapter 9 Software Evolution Chapter 9 Software Evolution Summary 1 Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding software evolution Software maintenance Making changes

More information

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur

Module 2. Software Life Cycle Model. Version 2 CSE IIT, Kharagpur Module 2 Software Life Cycle Model Lesson 4 Prototyping and Spiral Life Cycle Models Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a prototype is.

More information

Generalizing Agile Software Development Life Cycle

Generalizing Agile Software Development Life Cycle Generalizing Agile Software Development Life Cycle S. Bhalerao 1, D. Puntambekar 2 Master of Computer Applications Acropolis Institute of Technology and research Indore, India 1 [email protected],

More information

International Journal of Information Technology & Computer Science ( IJITCS ) (ISSN No : 2091-1610 ) Volume 5 : Issue on September / October, 2012

International Journal of Information Technology & Computer Science ( IJITCS ) (ISSN No : 2091-1610 ) Volume 5 : Issue on September / October, 2012 USING DEFECT PREVENTION TECHNIQUES IN SDLC Karthikeyan. Natesan Production Database Team Singapore Abstract : In our research paper we have discussed about different defect prevention techniques that are

More information

Chapter 6. Iteration 0: Preparing for the First Iteration

Chapter 6. Iteration 0: Preparing for the First Iteration Chapter 6. Iteration 0: Preparing for the First Iteration People only see what they are prepared to see. Ralph Waldo Emerson There are no secrets to success. It is the result of preparation, hard work,

More information

Software Engineering. So(ware Evolu1on

Software Engineering. So(ware Evolu1on Software Engineering So(ware Evolu1on 1 Software change Software change is inevitable New requirements emerge when the software is used; The business environment changes; Errors must be repaired; New computers

More information

Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry

Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry March 2004 Rational Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry Why companies do it, how they do it, and what they get for their effort By Dave Brown, Karla Ducharme,

More information

Understanding the Financial Value of Data Quality Improvement

Understanding the Financial Value of Data Quality Improvement Understanding the Financial Value of Data Quality Improvement Prepared by: David Loshin Knowledge Integrity, Inc. January, 2011 Sponsored by: 2011 Knowledge Integrity, Inc. 1 Introduction Despite the many

More information

Test Driven Development with Continuous Integration: A Literature Review

Test Driven Development with Continuous Integration: A Literature Review Test Driven Development with Continuous Integration: A Literature Review Sheikh Fahad Ahmad Deptt. of Computer Science & Engg. Mohd. Rizwan Beg Deptt. of Computer Science & Engg. Mohd. Haleem Deptt. of

More information

How Agile methods resolve chaos and unpredictability in software projects

How Agile methods resolve chaos and unpredictability in software projects WHITE PAPER How Agile methods resolve chaos and unpredictability in software projects Author: Jack Milunsky Scrum Master and COO Brighstpark3 January 2009 INTRODUCTION This paper attempts to show why an

More information

A Survey of Software Development Process Models in Software Engineering

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

More information

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2 BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT March 2013 EXAMINERS REPORT Software Engineering 2 General Comments The pass rate this year was significantly better than

More information

Latest Trends in Testing. Ajay K Chhokra

Latest Trends in Testing. Ajay K Chhokra Latest Trends in Testing Ajay K Chhokra Introduction Software Testing is the last phase in software development lifecycle which has high impact on the quality of the final product delivered to the customer.

More information

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer Software Development Life Cycle at SSPL An Summary of Methodologies We Offer 10/29/2009 Table of Contents The SSPL Advantage... 2 Commonly Used SDLC Models at SSPL... 2 Waterfall Model... 2 Agile Model...

More information

Agile Based Software Development Model : Benefits & Challenges

Agile Based Software Development Model : Benefits & Challenges Agile Based Software Development Model : Benefits & Challenges Tajinder Kumar Assistant Professor, IT Department JMIT Radaur, Haryana Vipul Gupta Assistant Professor, IT Department JMIT Radaur, Haryana

More information

Software quality engineering. Quality assurance. Testing

Software quality engineering. Quality assurance. Testing 4 Software Quality Engineering c Jeff Tian, to be published by John Wiley, 2005 Software quality engineering Quality assurance Testing Figure 1.1. engineering Scope and content hierarchy: Testing, quality

More information

Agile processes. Extreme Programming, an agile software development process

Agile processes. Extreme Programming, an agile software development process Agile processes Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh What the spiral models were reaching towards was that software development

More information

SOFTWARE PROCESS MODELS

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

More information

Extreme Programming: Strengths and Weaknesses

Extreme Programming: Strengths and Weaknesses The International Arab Conference on Information Technology (ACIT 2013) Extreme Programming: Strengths and Weaknesses Ahmad dalalah Prep. Year Deanship University of Hail, SA [email protected] Abstract:

More information

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

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...

More information

SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS

SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS Xihui Zhang University of North Alabama [email protected] Hua Dai University of Wisconsin-La Crosse [email protected] Tao Hu King College [email protected]

More information

Empirical study of Software Quality Evaluation in Agile Methodology Using Traditional Metrics

Empirical study of Software Quality Evaluation in Agile Methodology Using Traditional Metrics Empirical study of Software Quality Evaluation in Agile Methodology Using Traditional Metrics Kumi Jinzenji NTT Software Innovation Canter NTT Corporation Tokyo, Japan [email protected] Takashi

More information

Skatteudvalget 2014-15 (2. samling) SAU Alm.del Bilag 48 Offentligt. Programme, Project & Service Management Analysis

Skatteudvalget 2014-15 (2. samling) SAU Alm.del Bilag 48 Offentligt. Programme, Project & Service Management Analysis Skatteudvalget 2014-15 (2. samling) SAU Alm.del Bilag 48 Offentligt Programme, Project & Service Management Analysis Table of Content 1 Executive Summary... 3 1.1 Scope of Work... 3 1.2 Methodology for

More information

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process Extreme Programming, an agile software development process Paul Jackson School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled

More information

Introduction to Agile and Scrum

Introduction to Agile and Scrum Introduction to Agile and Scrum Matthew Renze @matthewrenze COMS 309 - Software Development Practices Purpose Intro to Agile and Scrum Prepare you for the industry Questions and answers Overview Intro

More information

Fundamentals of Measurements

Fundamentals of Measurements Objective Software Project Measurements Slide 1 Fundamentals of Measurements Educational Objective: To review the fundamentals of software measurement, to illustrate that measurement plays a central role

More information

An Overview of Quality Assurance Practices in Agile Methodologies

An Overview of Quality Assurance Practices in Agile Methodologies T-76.650 SEMINAR IN SOFTWARE ENGINEERING, SPRING 2004 1 An Overview of Quality Assurance Practices in Agile Methodologies Olli P. Timperi Abstract The focus of literature and debates of agile methodologies

More information

A Viable Systems Engineering Approach. Presented by: Dick Carlson ([email protected])

A Viable Systems Engineering Approach. Presented by: Dick Carlson (richard.carlson2@boeing.com) A Viable Systems Engineering Approach Presented by: Dick Carlson ([email protected]) Philip Matuzic ([email protected]) i i Introduction This presentation ti addresses systems engineering

More information

Nova Software Quality Assurance Process

Nova Software Quality Assurance Process Nova Software Quality Assurance Process White Paper Atlantic International Building 15F No.2 Ke Yuan Yi Road, Shiqiaopu, Chongqing, P.R.C. 400039 Tel: 86-23- 68795169 Fax: 86-23- 68795169 Quality Assurance

More information

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 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

More information

Evaluating the Business Impacts of Poor Data Quality

Evaluating the Business Impacts of Poor Data Quality Evaluating the Business Impacts of Poor Data Quality Submitted by: David Loshin President, Knowledge Integrity, Inc. (301) 754-6350 [email protected] Knowledge Integrity, Inc. Page 1 www.knowledge-integrity.com

More information

Upping the game. Improving your software development process

Upping the game. Improving your software development process Upping the game Improving your software development process John Ferguson Smart Principle Consultant Wakaleo Consulting Email: [email protected] Web: http://www.wakaleo.com Twitter: wakaleo Presentation

More information

Neglecting Agile Principles and Practices: A Case Study

Neglecting Agile Principles and Practices: A Case Study Neglecting Agile Principles and Practices: A Case Study Patrícia Vilain Departament de Informatics and Statistics (INE) Federal University of Santa Catarina Florianópolis, Brazil [email protected] Alexandre

More information

Software Development Life Cycle AGILE vs Traditional Approaches

Software Development Life Cycle AGILE vs Traditional Approaches 2012 International Conference on Information and Network Technology (ICINT 2012) IPCSIT vol. 37 (2012) (2012) IACSIT Press, Singapore Software Development Life Cycle AGILE vs Traditional Approaches Yu

More information

Agile Methodologies and Its Processes

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

More information

Roles: Scrum Master & Project Manager

Roles: Scrum Master & Project Manager Roles: Scrum Master & Project Manager Scrum Master: Facilitate collaborative meetings Track team performance Remove impediments (Risk, Issue) Validate team alignment to Agile framework and scope Drive

More information

SOFTWARE LOCALIZATION FOR AGILE, WATERFALL, AND HYBRID DEVELOPMENT

SOFTWARE LOCALIZATION FOR AGILE, WATERFALL, AND HYBRID DEVELOPMENT 1 4 FOR AGILE, WATERFALL, AND HYBRID DEVELOPMENT AGILE METHOD Business Requirements SPRINT#1 Technical Coding & ing SPRINT#2 WATERFALL METHOD Client OK & Launch SPRINT#3 Irrespective of the type of software

More information

Agile Software Development

Agile Software Development Agile Software Development Use case for Agile Software Development Methodology in an Oil and Gas Exploration environment. White Paper Introduction No matter what business you are in, there are critical

More information

Agile Software Development

Agile Software Development E Learning Volume 5 Number 1 2008 www.wwwords.co.uk/elea Agile Software Development SOLY MATHEW BIJU University of Wollongong in Dubai, United Arab Emirates ABSTRACT Many software development firms are

More information

Job Satisfaction and Motivation in a Large Agile Team

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]

More information

Agile and Secure: Can We Be Both?

Agile and Secure: Can We Be Both? Agile and Secure: Can We Be Both? OWASP AppSec Seattle Oct 2006 Keith Landrus Director of Technology Denim Group Ltd. [email protected] (210) 572-4400 Copyright 2006 - The OWASP Foundation Permission

More information

PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS

PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS Martin Tomanek and Tomas Klima Department of Systems Analysis, University of Economics, Prague, Czech Republic ABSTRACT Agile development methods

More information

A Comparison of Software Cost, Duration, and Quality for Waterfall vs. Iterative and Incremental Development: A Systematic Review

A Comparison of Software Cost, Duration, and Quality for Waterfall vs. Iterative and Incremental Development: A Systematic Review A Comparison of Software Cost, Duration, and Quality for Waterfall vs. Iterative and Incremental Development: A Systematic Review Susan M. Mitchell and Carolyn B. Seaman Information Systems Department,

More information

www.pwc.com Scale agile throughout the enterprise A PwC point of view

www.pwc.com Scale agile throughout the enterprise A PwC point of view www.pwc.com Scale agile throughout the enterprise A PwC point of view December 2013 Overview Today it s rare to speak with a company that is not adopting some form of agile development practice. However,

More information

White Paper Case Study: How Collaboration Platforms Support the ITIL Best Practices Standard

White Paper Case Study: How Collaboration Platforms Support the ITIL Best Practices Standard White Paper Case Study: How Collaboration Platforms Support the ITIL Best Practices Standard Abstract: This white paper outlines the ITIL industry best practices methodology and discusses the methods in

More information

COMP 354 Introduction to Software Engineering

COMP 354 Introduction to Software Engineering COMP 354 Introduction to Software Engineering Greg Butler Office: EV 3.219 Computer Science and Software Engineering Concordia University, Montreal, Canada Email: [email protected] Winter 2015 Course

More information

Lowering business costs: Mitigating risk in the software delivery lifecycle

Lowering business costs: Mitigating risk in the software delivery lifecycle August 2009 Lowering business costs: Mitigating risk in the software delivery Roberto Argento IBM Rational Business Development Executive Valerie Hamilton IBM Rational Solution Marketing Manager and Certified

More information

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models

CSC 492 The Practice of Software Engineering. Lecture 3 University of Mount Union Software Life Cycle Models CSC 492 The Practice of Software Engineering Lecture 3 University of Mount Union Software Life Cycle Models Software Life Cycle Models Every program (no matter what size) has several distinct phases that

More information

INTRODUCTION. Chapter 1. 1.1 Motivation

INTRODUCTION. Chapter 1. 1.1 Motivation Chapter 1 INTRODUCTION 1.1 Motivation The success of any computer software depends on the user s satisfaction. When software fulfills the user s requirements, it succeeds but the software fails if its

More information

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS

COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS COMPARATIVE STUDY ON SOFTWARE PROJECT MANAGEMENT MODELS *1 Mrs. Kalaivani S., * 2 Mrs. Kavitha S., *1 M.Phil Research Scholar, Department of Computer Science Auxilium College (Autonomous), Vellore, TamilNadu,

More information

Case Study on Critical Success Factors of Running Scrum *

Case Study on Critical Success Factors of Running Scrum * Journal of Software Engineering and Applications, 2013, 6, 59-64 http://dx.doi.org/10.4236/jsea.2013.62010 Published Online February 2013 (http://www.scirp.org/journal/jsea) 59 Case Study on Critical Success

More information

Agile Projects 7. Agile Project Management 21

Agile Projects 7. Agile Project Management 21 Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management

More information

A Comparison between Five Models of Software Engineering

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

More information

Driving Quality Improvement and Reducing Technical Debt with the Definition of Done

Driving Quality Improvement and Reducing Technical Debt with the Definition of Done Driving Quality Improvement and Reducing Technical Debt with the Definition of Done Noopur Davis Principal, Davis Systems Pittsburgh, PA [email protected] Abstract This paper describes our experiences

More information

Agile Master Data Management A Better Approach than Trial and Error

Agile Master Data Management A Better Approach than Trial and Error Agile Master Data Management A Better Approach than Trial and Error A whitepaper by First San Francisco Partners First San Francisco Partners Whitepaper Executive Summary Market leading corporations are

More information