Agile Software Engineering

Author(s):  
Ernest Mnkandla

This chapter aims to reveal agile techniques that have been applied to software development and have resulted in meaningful improvements in software productivity. Available literature generally state some claims on the gains associated with the use of particular agile methodologies in software development. What lacks however, is a comprehensive analysis of how the application of agile techniques as a family will lead to improvement in software productivity. This chapter therefore provides such details. Software productivity techniques provide ways of measuring three things in order to determine the productivity of software; software products, software production processes and structures, and software production setting. Agile methodologies improve software productivity by focusing on the software production process and structures. The fundamental concern of this chapter is to show that agile methodologies measure the production process activities in a different but effective way from the more traditional approaches. For example, time-to-market is reduced by use of an iterative incremental development approach.

Author(s):  
Pankaj Kamthan

If there is a constant in software development, then it is that its ecosystem is a variable. The agile methodologies are part of a relatively recent shift from predictive to adaptive approach towards software development. This change has had a notable impact on software engineering education (SEE). In this article, a glimpse into the state-of-the-art of incorporating agile methodologies in software engineering courses is presented. In doing so, the reasons for including a project component in software engineering courses, and for committing to agile methodologies in software engineering projects in those courses, are given. The significance of collaboration in the execution of agile methodologies, in general, is underscored, and the pivotal role of collaboration in agile course projects, in particular, is emphasized. To lend an understanding to the notion of collaboration in agile methodologies, a conceptual model for collaboration is proposed and elaborated. The types of collaborations that can occur in agile course projects are classified and discussed. The use technological means for facilitating collaboration, including the Social Web and especially the Wiki, is highlighted.


Author(s):  
Pankaj Kamthan

If there is a constant in software development, then it is that its ecosystem is a variable. The agile methodologies are part of a relatively recent shift from predictive to adaptive approach towards software development. This change has had a notable impact on software engineering education (SEE). In this article, a glimpse into the state-of-the-art of incorporating agile methodologies in software engineering courses is presented. In doing so, the reasons for including a project component in software engineering courses, and for committing to agile methodologies in software engineering projects in those courses, are given. The significance of collaboration in the execution of agile methodologies, in general, is underscored, and the pivotal role of collaboration in agile course projects, in particular, is emphasized. To lend an understanding to the notion of collaboration in agile methodologies, a conceptual model for collaboration is proposed and elaborated. The types of collaborations that can occur in agile course projects are classified and discussed. The use technological means for facilitating collaboration, including the Social Web and especially the Wiki, is highlighted.


Author(s):  
Mona Najafi Sarpiri ◽  
Taghi Javdani Gandomani

<span>The world of software engineering is constantly discovering new ways that lead to an increase in team performance in the production of software products and, at the same time, brings the customer's further satisfaction. With the advent of agile methodologies in software development, these objectives have been considered more seriously by software teams and companies. Due to their very nature, agile methodologies have the potential to be integrated with other methodologies or specific managerial approaches defined in line with agility objectives. One of the cases is Six Sigma, which is used in organizations by focusing on organizational change and process improvement. In the present study, attempts were made to present the hybrid software development approach, including Scrum, as the most common agile and Six Sigma methodology. This approach was practically used in a case study, and the obtained results were analyzed. The results of this evaluation showed that this hybrid method could lead to the increased team performance and customer satisfaction. However, besides these two achievements, an increase in the number of re-works, number of defects discovered, and the duration of the project implementation were also observed. These cases are in line with the main objectives of Scrum and Six Sigma and are justifiable and acceptable due to achieving those objectives.</span>


Author(s):  
Marriam Nawaz ◽  
Tahira Nazir ◽  
Seema Islam ◽  
Momina Masood ◽  
Awais Mehmood ◽  
...  

In this IT era, where there is a race of software development, it is necessary to introduce such types of software development techniques which will help the practitioners to deliver fast solutions. In the past, various traditional approaches were used for this purpose, but now agile techniques are getting more popular because conventional software development approaches are not efficient in managing the changing requirements. The agile software development process is one of the most emerging lightweight software development methodologies, which uses iterative and prototype development approaches to accommodate changes in software requirements. Final software products are delivered to the end-users in short iterations. One of the most noticeable drawbacks of agile methods is their limited courtesy to the structured and architectural design of the system. Hence this development approach will restrict small to medium design decisions only. In this paper, we have performed the analysis of different agile techniques, which will help the readers to understand their positive and negative points and select the most appropriate technique suited to their projects.


2015 ◽  
Vol 10 (1) ◽  
Author(s):  
Badri N Srinivasan ◽  
Debarshi Mukherjee

Agile methodologies offer an alternative to traditional software engineering processes for developing software products and systems. They focus on integrating behavioral and social factors into software development. The focus on people is a very important factor in the implementation of agile methodologies in the workplace. The focus on agile teams for developing software systems and products using agile software development methodologies predisposes the emphasis on the analysis of the key components of agile teams which are important to ensure that the characteristics of agile teams are factored appropriately in the organization so that the teams are having the pre-requisite environment setup for successfully developing software systems.This paper investigates the various components and social processes that contribute to the characteristics of agile. The paper aims at highlighting a framework made up of various components that focus on the critical attributes of an agile team and if these attributes are present in an agile team, then the probability for the team to work as a high performance agile team and deliver successful software products in the market place is increased considerably.


Author(s):  
Kiran Saeed ◽  
Yaser Hafeez ◽  
Sadia Ali ◽  
Muhammad Usman Shahid ◽  
Naila Iqbal

Many agile software development practices are promoted to improve the quality of software products. In recent years agile software development overlooked the usability features that effected system productivity.Usability is a main feature of interaction. Interaction is a way of a farming relationship between people and designed objects. An interactive model provides the way to band application together to achieve target user’s need. Usability gained attention of researchers and engineers because of its own importance. Agile software methods and usability engineering played a major role for producing better and reliable products, because both of them are concepts of methods as well as practices. The purpose of this research was to highlight the need of usability practices. The proposed model demonstrates that usability heuristics were much compatible with agile methodologies and would help to improve its productivity by reducing time and cost. Action research was applied for the development of framework proposed. The framework was evaluated using case study and further results were compared with existing related work.


Author(s):  
Pankaj Kamthan

The movement towards agility is one of the most significant changes in industrial software engineering over the past decade. In the practice of agile methodologies, there are different types of knowledge that is created, communicated, and consumed. For the benefit of the stakeholders involved, there is a pressing need to manage this knowledge, both during development and beyond deployment of a software system. This chapter proposes a framework comprising related conceptual models as means for understanding the use of Wiki for managing knowledge in agile software development. In doing so, Wiki is considered beyond that of a technology or a tool, as a facilitator of knowledge, and placed in a larger context of the Social Web environment. For the sake of practicality, a number of illustrative examples are given, and implications of deploying a Wiki are highlighted.


Author(s):  
Vinay Kukreja ◽  
Amitoj Singh

In the globalization of fast changing business and technology environment, it becomes very important to respond quickly to changing user requirements. Traditional methodologies are not appropriate for the projects where user requirements are not fixed. Agile methodologies have been developed to cope up with user changing requirements and emphasize more on working software and customer collaboration. Agile is an umbrella term and it is used for many software development methodologies which shares common characteristics. This chapter mainly focuses on the working methodology of agile development and the usage areas of industry where agile development is implemented. Agile software development is difficult in distributed environment as the team members are at distributed locations. This chapter discusses agile industry applicability enablers which are useful for agile software development in distributed environment.


Author(s):  
Torstein Nicolaysen ◽  
Richard Sassoon ◽  
Maria B. Line ◽  
Martin Gilje Jaatun

In this article, the authors contrast the results of a series of interviews with agile software development organizations with a case study of a distributed agile development effort, focusing on how information security is taken care of in an agile context. The interviews indicate that small and medium-sized agile software development organizations do not use any particular methodology to achieve security goals, even when their software is web-facing and potential targets of attack. This case study confirms that even in cases where security is an articulated requirement, and where security design is fed as input to the implementation team, there is no guarantee that the end result meets the security objectives. The authors contend that security must be built as an intrinsic software property and emphasize the need for security awareness throughout the whole software development lifecycle. This paper suggests two extensions to agile methodologies that may contribute to ensuring focus on security during the complete lifecycle.


Sign in / Sign up

Export Citation Format

Share Document