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?
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.
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 idea of a Book Sprint is that you can get lots of documentation written in a focused amount of time with the right team and some amount of content already in place. Gathering people in the same room when possible is extremely helpful and motivating as well.
What’s it like doing documentation as part of an Agile software development team? Why is it a better way of working? I mull this over these and other questions with Graham Campbell.
What quicker way can there be to find out if something is teachable than to write up task-oriented documentation? And as things are built or changed, the documentation is updated. I often update the documentation before the code!
Extreme Programming (or XP) is a popular software development process that encourages a return to the days of little or no documentation, Design After First Testing, and Constant Refactoring After Programming. Despite its popularity, not everyone thinks XP is a good idea.
Sometimes, the Agile software development methodology seems like it could be renamed the “Fly by the Seat of Your Pants” methodology. But really, it means that you need a somewhat different set of project management skills for your documentation. I could certainly improve in these skills, but here are a few I rely on in an Agile environment.
This week is my last Agile sprint for a while, but I think I’ll adopt some Agile principles and apply them to my new work lifestyle as an advisor for LugIron and a contractor for Informatica here in Austin.
In agile software development you want to travel as light as possible, and the easiest way to do that is to choose the best artifact to record information. I use the term 'artifact' to refer to any model, document, source code, plan, and so on created during a software development project. Furthermore, you want to record information as few times as possible, ideally only once. For example, if you describe a business rule in a use case, then describe it in detail in a business rule specification, then implement it in code, you have three versions of the same business rule to maintain. It would be far better to record the business rule once, ideally as human-readable but implementable code, and then reference it from any other artifact as appropriate.
In my experience, Agile worked great for the developers and QA/testing folks but not as well for the UX and documentation folks. The primary reason was the constant flux in what emerged when an iteration ended.
The basic idea is that very little of the documentation which gets created during software development actually gets read by the actual target audience. This article explains the problem and presents advice for addressing it.
When it comes to getting work done, replace written documentation with more efficient forms of communication. To guide future work, create documents at the end of the project, when everything is complete, well understood, and easy to document.
This is a description of a simple software-internals documentation format and process. It is derived from the Unified Software Development Process, simplified towards eXtreme Programming compatibility, and arranged for realisation in a plain text file.
Recently, Agile Software Processes have been discussed as flexible and light-weight alternatives to established Software Engineering approaches, in order to overcome the obstacles created by the cost of producing and maintaining documents on higher abstraction levels. Depending on requirements and needs on the documents itself, Agile Documentation becomes a key issue and brings up questions on how to create, maintain and distribute documents among the team members without creating unnecessary or unjustifiable cost. This paper describes a technique allowing to produce documentation automatically, by conducting analysis on the series of development steps taken during project planning and enactment.
A broader awareness of how changes can impact other things, including schedule commitments and work outside of the immediate area of change, is beneficial in terms of assessing trade-offs and benefits.