Collaborative Software
Collaborative software was originally designated as groupware and this term can be traced as far back as the late 1980s, when Richman and Slovak said, "Like an electronic sinew that binds teams together, the new groupware aims to place the computer squarely in the middle of communications among managers, technicians, and anyone else who interacts in groups, revolutionizing the way they work. "
Collaborative software has produced major gains in productivity. The definition of an office has dramatically changed as an individual is able to work efficiently as a member of a group wherever there is a computer (or an iPad, or iPhone, or Blackberry) .
Software
Collaborative software has produced major gains in productivity.
Examples of the major gains include:
- Document sharing (including group editing)
- Group calendars
- Instant messaging
- Web conferencing
Agile Software Development
Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle.
Agile methods break tasks into small increments with minimal planning and do not directly involve long-term planning.
Iterations are short time frames (timeboxes) that typically last from one to four weeks. Each iteration involves a team working through a full software development cycle when a working product is demonstrated to stakeholders. The development cycle includes:
- Planning
- Requirements analysis
- Design
- Coding
- Unit testing
- Acceptance testing
This approach minimizes overall risk and allows the project to adapt to changes quickly. Stakeholders produce documentation as required.
An iteration might not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration. Multiple iterations might be required to release a product or new features.
According to the Agile Manifesto:
Through this work we have come to value: individuals and interactions over processes and tools; working software over comprehensive documentation; customer collaboration over contract negotiation; responding to change over following a plan. That is, while there is value in the items on the right , we value the items on the left more.