CS614 - Data warehousing Assignment # 1 (Non Graded) November 2013
Total marks = 20
Deadline Date = 18-11-2013
Agile development methodology is a latest trend in recent software development models. It provides iterative and incremental methodology for rapid application development. Agile is an alternative to waterfall, or traditional sequential development methods which helps teams respond to unpredictability through incremental, iterative work cadences, known as sprints. These days more and more organizations are adopting the said methodology for software development.
Agileman an online (web based) project management applications which helps organizations (using agile) actively manage their agile projects in a proper way. Agile man empowers organizations to optimize their product development process by enabling effective planning, providing real-time visibility, incorporating early feedback from customer, and facilitating easy collaboration in distributed teams.
Agile man is a powerful productivity booster, due to its efficient, intuitive interface that gives fast access to all organizational needs.
2. Agile based project management
Agile is a new development methodology intended to develop software applications quickly in iterations. The software is deployed in releases. Like traditional software development life cycles each project starts with software requirements (called product backlog). The product backlog is maintained in the form of individual requirements called user stories (just like use-cases) e.g. “user should be able to login” is one story, “System should send an email whenever the personal profile of a user changes” is another etc.
Ideally each story represents one task, however, if a story is big, it can be divided in to sub-stories e.g. “delete user” can be divided in to two sub stories i.e. “Search User” and “Delete User”.
Each story is assigned a task that implements it, e.g. the story “user should be able to login” can be implemented by the task called “UserLogin”. Similarly if a story is big, it can be implemented in multiple tasks e.g. the story “admin should be able to delete a user” can be implemented in two tasks i.e. “SearchUser” and “DeleteUser”.
However instead of developing the complete application in one go, agile delivers product in releases. Each release is properly planned on the basis of stories (from product backlog) to be implemented in it. The entire set of these stories selected to be implemented in a particular release is collectively called a “Release backlog”. Each release has its own release backlog. Now after the release backlog to be implemented in a particular release is finalized, the development starts. The development however is completed in iterations. In each iteration, a specific set of stories (from the release backlog of that release) is picked and implemented. After all the stories in the release backlog of that release are implemented, the release is tested and deployed and work starts on next release. The process continues until the stories in product backlog are implemented.
Each project has its own development team comprising of developers, testers etc. During iteration, each developer is assigned one or more stories; he/she is responsible to develop all the tasks related to that story.
3. Scope of application:
Essentially agile man will help organizations manage following tasks:
3. Product backlogs
4. Release backlogs
Application will also provide the organization with proper project tracking mechanism by graphically visualizing the current status of each and every step or product life cycle.
Note: to keep the case study simple, further low level details are skipped.
Draw an Entity Relationship Diagram (ERD) of the above system by properly showing all the relations and cardinalities