Traditional application lifecycle management (ALM) tools have focused on design and modeling or project management. Some of the more recent ones to emerge have special features suited for Agile development. These tools have traditionally been for internal use only and have typically left out the main stakeholder, the end user, from the application lifecycle management process. Online collaboration tools like blogs, online forums and social media like Twitter, Facebook, Skype and other Instant Messaging mechanisms, offer the possibility of involving the end user effectively in the application lifecycle. Here are ten ways this can be done in different parts of the application lifecycle:
Requirements gathering and analysis
1. End user listening tools: Requirements gathering and analysis need not be done only at the beginning of an application development effort. Blogs, online forums and Facebook pages are great listening tools. Comments, especially about dissatisfaction about certain features not working properly, or not being present in the software application, are great starting points for requirements analysis. They also serve as forums to discuss in more detail, features and what users had in mind when they suggested them.
2. Internal online collaboration: Stakeholders within an organization may be geographically dispersed or may not be part of scheduled application lifecycle management meetings. Online forums, internal blogs and Facebook pages for product releases, are all excellent tools for having freewheeling discussions about a particular requirement or sets of requirements. In Agile development, they may take the form of discussions about stories. Twitter is a great tool to alert stakeholders in real-time about a discussion that’s going on and to solicit more input.
3. Use case validation: If use case analysis is used, validating with all stakeholders can unearth incorrect assumptions or missed actors or actions in use cases. These necessarily need to be shared with as many stakeholders as possible, and blogs, forums and Facebook pages are perfect for doing this. The advantage with social media as opposed to collaboration tools is the urgency and reach they impart to stakeholders on Facebook, for example -- especially mobile versions. A person is more likely to pay attention to and do something about an alert they get on Facebook on their mobile than an email sent from an online forum.
Design and modeling
4. Sharing architecture ideas and obtaining feedback: During the design phase, the architecture may need to be shared with certain stakeholders and feedback obtained about aspects that the designers may have overlooked. E-mail and document attachments are usually used for this purpose. This may elicit individual responses, but may not be as useful as posting ideas on an internal blog, forum or Facebook page where a discussion among a group of people may ensue as comments. This kind of discussion may zero in on problems and solutions quicker than by soliciting individuals over email and document attachments.
5. User interface alternatives testing: Websites, especially e-commerce sites, routinely come up with alternative designs and perform testing on them (like A/B testing). Online collaboration and social media tools facilitate the same in a much easier way and the reach can extend to people other than internal stakeholders. This kind of usage can save a lot of time and wasted effort if problems with the user interface can be unearthed before development begins.
Development and testing
6. Interim builds coordination and testing: Software developers have been improvising communication tools in the development phase of ALM, and especially when coordinating builds. When builds are done and copying to staging or production servers starts, coordination becomes even more critical. Mechanisms like Skype and instant messaging are routinely used these days. Twitter is used extensively when real-time notification is needed. With the maturity and adoption of such tools these days, development teams could just as well formalize their use and include them in their project management guidelines.
7. Performance feedback: When applications have distinct servers and client components (whether they are mobile or tethered), performance testing may need be done from more than just one physical location. Distributed performance testing becomes a necessity. Social media tools become critical in communicating with geographically distributed users, especially when getting performance feedback in real-time and trying to figure out where bottlenecks might be.
8. Known bugs communication: Right on the heels of any software release, there is usually a flurry of bugs that get discovered. This happens especially when the number of users is large and the product is a consumer oriented one with thousands or millions of users. Twitter and Facebook are excellent tools to get information to users quickly about newly discovered bugs, and workarounds, if already known, or developed.
9. End user self-support: End-user self-support has become common, usually with the use of comprehensive Frequently Asked Questions (FAQ) pages. Users see if the problem they have has been identified, and whether or not a workaround is available. If not, it is added as a new problem. Twitter, Facebook and the same FAQ pages could all be used when resolutions are identified.
10. Product management feedback loop: Blogs, online forums and now social media tools are excellent for product managers to gather post-release feedback and planning their next release cycle. They can get an early start on their next ALM cycle. Software projects intending to resolve problems with a product release may miss the mark. The earlier product management gets this information, the sooner adjustments can be made, and a plan put in place for the next ALM cycle. Social media has become an invaluable, but inexpensive, solution in accomplishing this.
Online collaboration tools like blogs and forums can be leveraged effectively by product and project managers to include stakeholders, internal and external to the organization, in participating and contributing to application lifecycle management. Social media like Facebook, Twitter, Skype and instant messaging have become vital tools for rapid two way communication inside the organization, and with external stakeholders. They can perform specific and appropriate functions at various stages of the application lifecycle management. Using them can result in software of higher quality.
For a comprehensive resource on social media, see Social media: A guide to enhancing ALM with collaborative tools.