Agile management promotes a project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of best practices that allow for rapid delivery of high-quality products, and a business approach that aligns development with customer needs and company goals. It is related to extreme documentation and scrum methods.
Scrum, the new development methodology in the Agile development family, is fast gaining acceptance in software development. But how can writers, who have little or no experience in any of the incremental development models, adjust to this methodology? And, how does the Documentation Development Life Cycle (DDLC) change in Scrum?
eXtreme Programming and other agile processes provide a middle ground between chaos and over-elaborate processes sometimes referred to as 'death by documentation'. A particular attrtactive aspect of the agile approach for many teams is its willingness to accomodate change no matter how advanced development might be. However, this very flexibility can cause user interface design issues and ensuing usability problems. Adopting a user-centered approach to user interface design can address these issues, as the following simulated conversation between a user-centered design consultant and an XP team leader will explain.
One of the Agile Manifesto’s basic balance equations is valuing working software over comprehensive documentation. This line of the Agile manifesto can be confusing to some supporting roles in an Agile development enterprise. As technical support staff, trainers, and content creators, what are we doing to fit into this Agile methodology, and what’s working well? Let’s explore some old habits that need to die, and some new rituals to fill that space.
I have been a technical writer on Agile development teams, and working in tightly collaborative environments has taught me a lot about adding value in the customer’s perception. I still remember being challenged by Michael Cote when we were at BMC Software. He asked, “Why does it take three days to get a PDF out for review? Why aren’t technical writers using wikis for documentation?” Those questions prompted quite a bit of research that finally resulted in my book, Conversation and Community: The Social Web for Documentation.
Agile methods aim to overcome usability barriers in traditional development, but pose new threats to user experience quality. By modifying Agile approaches, however, many companies have realized the benefits without the pain.
uScrum (uncertainty Scrum) is an agile process developed by a small team at Altitude Software to manage the process of writing user documentation. uScrum manages uncertainty and the unknown, allowing writers to quickly react to changing conditions. uScrum uses orders of ignorance to understand the difficulty of tasks, allowing the team to effectively prioritize regular work together with difficult creative work.
When I initially started work on Agile Modeling (AM) I wanted to focus solely on principles and practices for effective modeling but quickly discovered that this scope was not sufficient, that I also needed to consider the issue of how to be effective at the creation and maintenance of documentation too. Some agile models will 'evolve' into official system documentation, although the vast majority will not, and therefore it is relevant to discuss how to be agile doing so.
Software development methods seem to change more often than the seasons, and just when information development professionals are familiar with one approach a new one comes along. One method that has received wide acceptance and seems to have some staying power, however, is the Agile software development method. As described by the Agile Manifesto (2001), Agile software development is: a group of software development methodologies; based on iterative and incremental development; solutions evolve through collaboration of cross-functional teams.
There's an irony about agile development. There is no hard evidence that it produces better software, faster. And formal adoption rates, admittedly hard to measure, don't reach the 20 percent mark. Yet the ideas that underpin agile development--defining requirements incrementally, writing software in short stints, seeking customer feedback, testing code as it's written, frequent builds--have caught on like wildfire. They are widely accepted as sound development practices, even among teams that have not formally adopted them.
RITE differs from a “traditional” usability test by emphasizing extremely rapid changes and verification of the effectiveness of these changes. Specifically, practitioners make changes to the UI (prototype or application) as soon as the problem is found and the solution spotted. Changes such renaming buttons, changing the text of menu items often happen before another participant arrives. More complicated, but obvious changes are made as rapidly as possible. This way the change can be tested as quickly as possible.
Agility includes effective, that is, rapid and adaptive, response to change. This requires effective communication among all of the stakeholders. Stakeholders are those who are going to benefit from the project in some form or another. The key stakeholders of the project include the developers and the users. Leaders of the customer organization, as well as the leaders of the software development organizations, are also among the stakeholders.
Three panellists talk about how they've applied agile development techniques to XML, followed by audience discussion and Q&A: Tony Coates will discuss XML and schema quality assurance using unit test frameworks. David Carver will discuss agile XML schema development. Claudia Lucia Jimenez-Guarin will discuss software construction for evolving systems with incomplete data definition.
In this tutorial, attendees will learn to factor their company's business needs into their existing Agile procedures, and management will learn how to begin the investigative work of determining how to streamline these requirements and activities so that they don't hamper the project.
Why do we bother with models or documentation? They don't execute, and our customers pay us for working code, not pretty pictures. We bother with models to communicate. The idea is that a graphical object model can show how objects fit together more clearly than looking at the source, an interaction diagram can show a collaboration better than figuring out the call path from several class definitions. But so often the design documentation fails in this, and leaves me puzzled on my sofa.
The authors (both coming from a heavyweight software development environment) describe their approach to transferring a heavyweight method into a more agile approach. One can argue whether the described result is intermediate or final, the the process described and the choices made are well worth studying.
One of the significant challenges with Agile is that the teams are effectively self managing. This can present an issue when you have a significant number of junior team members. At Mindflash.com we do not have layers of management within the development organization so everyone is responsible for ensuring that they are writing code up to the standards of the organization. For the more junior folks, this means they have to ramp up their skills very quickly and work closely with the more senior members of the team. We are definitely heavily weighted on the senior side of things but I think that is generally appropriate for any team as small as ours.
Documentation is an important part of agile software development projects, but unlike traditionalists who often see documentation as a risk reduction strategy, agilists typically see documentation as a strategy which increases overall project risk and therefore strive to be as efficient as possible when it comes to documentation. Agilists write documentation when that's the best way to achieve the relevant goals, but there often proves to be better ways to achieve those goals than writing static documentation. This article summarizes common "best practices" which agilists have adopted with respect to documentation.
Agile has a relatively short history in the broader view of software development. Integration of User Experience into Agile has an even shorter history with relatively few stories of overwhelming success. Over the last eighteen months, we at TheLadders have had some successes—and some failures—in our foray into a post-waterfall way of developing elegant, efficient and sophisticated consumer-facing software. This is our story.
Though the term 'agile' isn't often ascribed to the ways of software configuration management, Steve Berczuk offers some ways in which applying the principles of agile SCM can help teams work more effectively.
In this article, I will describe Agile and attempt to illuminate a potential minefield for those who are swept up in the fervor of this development trend and want to jump in headlong. Then I will present how practices within User Centred Design (UCD) can mitigate the inherent risks of Agile and how these may be integrated within Agile development approaches.