A necessidade de ser Ágil
LUNA, ALEXANDRE J. H. DE O.; COSTA, CLEYVERSON P.; DE MOURA, HERMANO P. (2010a). A necessidade de ser Ágil. Engenharia de Software Magazine, No. 37. ISSN 1983-1277. Disponível em: <http://www.devmedia.com.br/post-21425-A-necessidade-de-ser-agil-Revist
Este artigo tem por objetivo apresentar uma análise comparativa entre nove métodos ágeis, no sentido de... more Este artigo tem por objetivo apresentar uma análise comparativa entre nove métodos ágeis, no sentido de instrumentalizar as equipes e organizações a obterem melhores resultados na aplicação de métodos ágeis em seus projetos.
EVALUATION OF THE MOST USED AGILE METHODS (XP, LEAN, SCRUM)
Published in The "International Journal of Engineering Science and Technology" (IJEST™)
With the emergence of Agile Software Development technologies, the software community is expecting in a large impact... more
With the emergence of Agile Software Development technologies, the software community is expecting in a large impact on producing quality.
The main question that each new technology must pass through with success is: How much it’s worth?
This paper propose a model for determining the significance worth of quality into the most used agile methods (eXtreme programming, Scrum, Lean) inspired by the Toyota Production System(TPS).
Keywords: agile methods, software quality, Toyota production system, Extreme Programming, Scrum Methodologies, Lean Software Development.
An Ontology of Agile Aspect Oriented Software Development
Published in Research Letters in the Information and Mathematical Sciences, vol 15 p 1-11
Both agile methods and aspect oriented programming (AOP) have emerged in recent years as new paradigms in software... more Both agile methods and aspect oriented programming (AOP) have emerged in recent years as new paradigms in software development. Both promise to free the process of building software systems from some of the constraints of more traditional approaches. As a software engineering approach on the one hand, and a software development tool on the other, there is the potential for them to be used in conjunction. However, thus far, there has been little interplay between the two. Nevertheless, there is some evidence that there may be untapped synergies that may be exploited, if the appropriate approach is taken to integrating AOP with agile methods. This paper takes an ontological approach to supporting this integration, proposing ontology enabled development based on an analysis of existing ontologies of aspect oriented programming, a proposed ontology of agile methods, and a derived ontology of agile aspect oriented development.
Traditional versus Agile: The Tragile Framework for Information Systems development
Seyam, M. & Galal-Edeen, G. (2011) "Traditional versus Agile: The Tragile Framework for Information Systems development", the International Journal of Software Engineering (IJSE), Vol. 4, No. 1, Pp. 63-93, ISSN: 1687-6954.
Traditional systems development methodologies sometimes fall short in today’s business environments because they lack... more
Traditional systems development methodologies sometimes fall short in today’s business environments because they lack the flexibility required for most of today’s information systems projects. In response to this problem, so called "Agile" software development methodologies have been proposed and put to use. Although agile development appeared as a way to overcome the limitations of the traditional development methodologies, they faced some challenges when applied in specific problem domains. The concept of agility, which emphasizes human role in software development processes, is revolutionizing the systems analysis and design field as well as the software engineering field. However, the question that begs an answer is whether traditional systems development methodologies have no place in today’s fast-paced developments.
This paper demonstrates the extent to which agile software development methodologies can be combined with traditional approaches to information systems development, showing the advantages of combining agile and traditional approaches in the same project. The paper then proposes the "Tragile" framework, which is a hybrid framework that combines both traditional and agile development practices to serve the field of information systems development. The paper then presents a summary of a case study application to show how the Tragile framework had affected the development process in the selected project.
Agility Versus Discipline: Is Reconciliation Possible?
Galal-Edeen, G., Riad, A. & Seyam, M. (2007) "Agility Versus Discipline: Is Reconciliation Possible?" IN Fahmy, H., Wahba, A., El-Kharashi, W. & Bahaa El-Din, A. (Eds.), Proceedings of International Conference on Computer Engineering and Systems. Cairo, Egypt, ISBN: 1-4244-1366-4, IEEE.
Software development methodologies have been considered as essential to the production of high quality software,... more Software development methodologies have been considered as essential to the production of high quality software, especially on time and within budget. During the last decade, a new school of practice that labels itself as the agile development school has emerged with a set of concepts that can be seen as diametrically opposed to the tenets of traditional methodologies. Promising effectiveness and efficiency in software development, agile practices are transforming methodologies for developing information systems. This paper discusses whether the two schools are in total contradiction and whether they can be in some way combined within the same project, showing the relation between the agile software development methodologies and the information systems development field.
Agility Versus Discipline: Towards a Middle Ground
Galal-Edeen, G., Riad, A. & Seyam, M. (2007) "Agility Versus Discipline: Towards a Middle Ground" IN Elwany, M., Eltawil, A. (Eds.), Proceedings of the 37th International Conference on Computers and Industrial Engineering. Alexandria, Egypt.
For a significant period of time, methodologies for software development have been considered, especially by... more For a significant period of time, methodologies for software development have been considered, especially by researchers, as essential to the production of high quality software, especially on time and within budget. During the last decade, a new school of practice that labels itself as the agile development school has emerged with a set of concepts that can be seen as diametrically opposed to the tenets of traditional methodologies. Promising effectiveness and efficiency in software development, agile practices are transforming methodologies for developing information systems. This paper discusses whether the two schools are in total contradiction and whether they can be in some way combined within the same project, showing the relation between the agile software development methodologies and the information systems development field.
The Dynamics of Agile Software Development
by Firas Glaiel
High-velocity environment demands higher productivity and faster cycle time of software development organizations. The... more
High-velocity environment demands higher productivity and faster cycle time of software development organizations. The industry is heralding Agile as THE way of doing this.
My research involves modeling Agile development processes using System Dynamics to understand the effects of agile methodologies on software project performance, and to understand how to better monitor, track, and manage agile software projects within a heavyweight product development framework.
Increasing Learning in an Agile Environment: Lessons Learned in an Agile Team
Learning is an important part of the software development process. There are many advantages for devel- opers willing... more Learning is an important part of the software development process. There are many advantages for devel- opers willing to learn: increased internal and external quality of the produced software, and a reduced learning curve as beginners become high-skilled developers much faster than usual. However, learning is not taken seriously by many teams. This paper shows how to build a learning environment by doing some well-known practices, such as Book Club, Brown Bags, Dojo sessions, Pair Programming, Open Spaces, etc. It also presents some adaptations we developed in these techniques in order to improve their effects in our work environment.
Most Common Mistakes in Test-Driven Development Practice: Results from an Online Survey with Developers
Test-driven development (TDD) is a software development practice that supposedly leads to better quality and fewer... more Test-driven development (TDD) is a software development practice that supposedly leads to better quality and fewer defects in code. TDD is a simple practice, but developers sometimes do not apply all the required steps correctly. This article presents some of the most common mistakes that programmers make when practicing TDD, identified by an online survey with 218 volunteer programmers. Some mistakes identified were: to forget the refactoring step, building complex test scenarios, and refactor another piece of code while working on a test. Some mistakes are frequently made by around 25% of programmers.
16 views
Seen by:Experimenting with Industry's Pair-Programming Model in Teaching & Learning Programming
This research paper reports on an initial study carried out to examine the effectiveness of pair programming in... more
This research paper reports on an initial study carried out to examine the effectiveness of pair programming in teaching computer programming in Universiti Tenaga Nasional (UNITEN) during the second semester of Academic Year 2007/2008. It involved thirty-six second year students learning “C Programming with OpenGL” for the “Introduction to Computer Graphics” course. Our research focused on investigating the effects of pair programming on student attitude towards learning programming and performance in the programming assignments. Our findings suggest that students who used pair programming produce better working program in shorter time, feel more confident in their work and enjoy programming. Our research results strongly support the use of pair programming as an effective pedagogical tool for teaching programming. It is
worth considering pair programming as an alternative to traditional ways to teach computer programming.
73 views
Seen by:The Impact of Methods and Techniques on the Outcomes of Agile Software Development Projects
Co-authored with Hokyoung Ryu and Ramesh Lal. In proceedings of IFIP 8.6 Conference: Organisational Dynamics of Technology-based Innovation: Diversifying the Research Agenda, McMaster, Wastell, Ferneley & DeGross (eds.) Manchester, UK, June 14-16 2007, Springer, 235-249.
Agile software development methods have become increasingly popular since the late 1990s, and may offer improved... more Agile software development methods have become increasingly popular since the late 1990s, and may offer improved outcomes for software development projects when compared to more traditional approaches. However there has previously been little published empirical evidence to either prove or disprove this assertion. A survey carried out in March 2006 gathered responses from a large number of software development professionals who were using many different methods, both traditional and agile. A statistical analysis of this data reveals that agile methods do indeed improve outcomes from software development projects in terms of quality, satisfaction, and productivity, without a significant increase in cost. However, adoption of methods appears to involve a high degree of adaptivity, with many methods being used in combination and sets of techniques being adopted on an ad hoc basis. In this context, our analysis suggests that choosing specific combinations of methods can be particularly beneficial. However, we also find that successful adoption of an agile method is to some extent dependent on rigorous integration of certain core techniques.
Better, Not More Expensive, Faster? The Perceived Effects of Pair Programming in Survey Data
Co-authored with Hokyoung Ryu and Ramesh Lal. 19th Australasian Conference on Information Systems, Christchurch, New Zealand, 3-5 December 2008.
There are many different techniques used with agile software development methods. Some of these, such as common coding... more There are many different techniques used with agile software development methods. Some of these, such as common coding guidelines and test driven development, are widely adopted and there appears to be a consensus that they can be beneficial. Others, however, are more controversial, none more so perhaps than pair programming. This technique meets resistance both from developers, who do not always wish to program with another person, and from managers, who see the sharing of a workstation as a potential barrier to programmer productivity. Its supporters, however, claim that it can have many benefits, in particular improving software quality. In this paper we look at the outcomes of previous research into the effects of pair programming and analyse some survey data to see how practitioners perceive its potential benefits for project outcomes in terms of quality, productivity, stakeholder satisfaction and cost. We conclude that the survey data appears to reinforce many of the previous claims made for the benefits of pair programming, but also aises questions that need further investigation.
Software Development Methodologies, Agile Development and Usability Engineering
Co-authored with Hokyoung Ryu, Ramesh Lal and Manfred Lange. In Proceedings of 18th Australasian Conference on Information Systems, Toowoomba, Australia, December 5-7 2007.
This paper examines the relationship between the practices of agile software development and usability engineering,... more This paper examines the relationship between the practices of agile software development and usability engineering, and examines how these practices may be integrated within a single methodology. As agile methods have become increasingly popular, they have begun to replace structured approaches to software engineering. Usability engineering has historically tended to follow a development approach that is similar to traditional software engineering, rendering it apparently incompatible with agile methods. The focus of this paper is an analysis of the relationship between agile practices, on the one hand, and current practices of usability engineering on the other. We provide an experience report from an organisation where usability engineering has been integrated into an agile software development method. From this context we identify areas of compatibility and also areas of conflict, and suggest some strategies for agile development teams to incorporate key practices from usability engineering, while at the same time suggesting that usability engineers should embrace relevant agile techniques.
Agile software development methodology, an ontological analysis
Written for the APIS 2010 conference
Agile methods have emerged in recent years as a new paradigm in software development, promising to free the process of... more
Agile methods have emerged in recent years as a new paradigm in software development, promising to free the process of building software systems from some of the constraints of more traditional approaches. However the plethora of overlapping methods makes it
difficult to identify the core features of an agile approach that transcends any particular method and provide us with an overarching methodology. This paper takes an ontological approach to analyzing the core components of an agile methodology based on an analysis of existing literature related to agile ontology. The intent of this ontology is to assist our understanding of the kernel of software engineering theory that underlies agile methodology.
Exploring Distributed Agile Projects: A Grounded Theory Perspective
The success of Agile projects encourages practitioners to
incorporate Agile methods in distributed projects. Most... more
The success of Agile projects encourages practitioners to
incorporate Agile methods in distributed projects. Most of the Agile methods, however, were developed to work successfully for collocated teams. This paper outlines the proposed research on distributed Agile projects. We exploring distributed Agile projects using grounded theory methodology. We aim to understand the challenges faced by Agile practitioners in distributed projects, identify the key success factors in distributed Agile projects, and collate the strategies adopted by Agile practitioners to manage distributed Agile projects.
93 views
Seen by:Distributed Agile Software Development: Towards A Grounded Theory
Agile methods are being used in globally distributed software development. Agile methods prefer team members to be... more Agile methods are being used in globally distributed software development. Agile methods prefer team members to be collocated to allow face-to-face communication. In globally distributed software development, however, the team members are scattered across different geographic locations, and often across several time zones. We are exploring globally distributed Agile software development from the perspective of the Agile practitioners. In this paper we outlined the proposed research on distributed Agile software development. We aim to discover a grounded theory that explicates the critical success factors for distributed Agile software development, and the practical strategies adopted by the distributed Agile teams to overcome the challenges faced by the team members.
181 views
Seen by:Understanding the Importance of Trust in Distributed Agile Projects: A Practical Perspective
Agile methods rely on face-to-face communication but are being used in distributed projects. We have conducted... more Agile methods rely on face-to-face communication but are being used in distributed projects. We have conducted grounded theory research with Agile practitioners to collate the strategies they use to overcome the challenges in distributed projects. In this paper, we argue that trust is one of the key factors in determining the success or failure of distributed Agile projects, and describe how trust can be generated and sustained by increasing effective communication and understanding cultural differences.
Bridging cultural differences: a grounded theory perspective
Cultural differences often arise in distributed software development. The impact of cultural differences on... more Cultural differences often arise in distributed software development. The impact of cultural differences on distributed teams is under-explored. The lack of knowledge of cultural differences can cause major problems to the distributed teams. We have conducted a Grounded Theory study to uncover the strategies adopted by Agile practitioners to overcome the cultural differences in distributed software development. We interviewed 18 Agile practitioners across 10 software companies in the USA and India over a period of 1.5 years. In this paper, we report that our participants adopt five effective strategies to bridge cultural differences in distributed Agile software development: engendering cultural awareness, understanding cultural differences, sharing work practices, rotating team ambassadors, and managing language barriers.
Effective Communication in Distributed Agile Software Development Teams
Agile methods prefer team members to be collocated to promote effective communication between team members. Effective... more Agile methods prefer team members to be collocated to promote effective communication between team members. Effective communication is crucial for distributed Agile software development where team members are scattered across different geographic locations, and often across several time zones. We are conducting in a Grounded Theory study that explores distributed Agile software development from the perspective of Agile practitioners. We present the causes of communication challenges, and the strategies adopted by our participants to overcome communication challenges in distributed Agile teams.
