For software development companies, a sound development methodology is a key to success. However, history shows ample amounts of cases where developers divert from the process they said to follow. Furthermore, some processes add significant overheads undermining the productivity at which the final goal is achieved - the working software. Agile is where the theory meets the real life. Than heavy weight software development processes, more and more companies embrace agile approaches due to the more realistic and practical means used to develop software, significantly enhanced productivity of development and continuous high value delivery to the client with guaranteed client satisfaction.
This training from Software View is for the companies who wish to embrace agile development processes.
Apart from introducing agile processes, what else is required to practice them in real world? Tools! Yes, this training not only introduces agile processes, but also some process related tools for you to practice agile development efficiently. The tools we introduce are freely available. We have a good stack of them for Java development. Some other tools are generic and can be used irrespective of the development platform.
Agile Processes: Easy to learn, easy to follow, collaboration centric, adaptive, disciplined, derives value to the customers and practical. Ah... improved employee performance too!
At the end of the training, participants will be able to
- Compare and contrast popular predictive and adaptive development processes.
- Explain what Agile Manifesto is, describe agile principles as practiced by teams including the management.
- Practice Extreme Programming, Agile Model Driven Development or OpenUP separately or in a combined best practices approach. And customize and extend these processes.
- Describe the organization of Project Management Body of Knowledge (PMBOK) maintained by the Project Management Institute (PMI).
- Use a set of freely available tools to practice agile development effectively.
- Describe how organizations should migrate to use an agile process, suggest strategies to be used with large scale projects, off-shore and distributed development.
- Software development professionals interested in agile processes including executives, management, developers, testing and quality assurance staff,....
- IT professionals involved in managing and auditing information systems (IT managers, IS auditors,...)
- Non-IT Professionals with project management knowledge who want to get into IT field (This is a conversion program for you.)
- General understanding of software development.
English (With Sinhala explanations if requested)
3 Days (24 hours)
Kamal Wickramanayake (Profile)
- A limited number of exercises (primarily on tools) requires participants to use computers.
- Some of the tools introduced during the training are development platform dependent. We have primarily looked at Java development. However, some tools are generic and can be used irrespective of the development platform.
- Delivery of the training will be learner centric. Multiple delivery techniques will be used - not just lectures. Trainer may alter the delivery order of topics to better suit the environment.
Introduction to Software Development Process
- What is a process?
- What is a methodology?
- What is a method?
- What is incremental development?
- What is iterative development?
- Classifying software development processes
- Characteristics of different processes
- Contribution of process towards success or failure of projects
Overview of Some Processes
- Unified Process
- Rational Unified Process (RUP)
- Rational Unified Process - System Engineering (RUP-SE)
- Extreme Programming (XP)
- Agile Model Driven Development (AMDD)
- Some other processes found around
Overview of Project Management Body of Knowledge (PMBOK)
- Integration management
- Scope management
- Time management
- Cost management
- Quality management
- Human resource management
- Communications management
- Risk management
- Procument management
Agile In Detail
- Benefits of agile methods
- Agile Manifesto
- Agile principles
- Declaration of Interdependence
- Economics of agile development
Agile Way Of Software Development
- Common agile project roles
- Agile requirements management mechanisms (includes stories, use cases)
- Acceptance tests - as a way to capture requirements
- Agile project estimation and contract negotiation
- Agile project planning (release and iteration planning)
- Agile project tracking (includes burn-down charts)
- Daily meetings
- Change management in agile projects
- Self governance in agile teams (and limits of freedom)
- Scaling agile project management for large scale projects
Analysis, Design And Modeling
- Business requirements envisioning
- Architecture envisioning
- Evolutionary software designing
- Evolutionary data modeling
Extreme Programming (XP)
- Origin of XP
- Planning practices
- Designing practices
- Coding practices
- Testing practices
- XP governance model
- Pros and cons of XP
- Origin of Scrum
- Scrum terminology (Scrum Master, Backlog, Sprint,...)
- Scrum governance model
- Pros and cons of Scrum
Agile Model Driven Development (AMDD)
- Origin of AMDD
- AMDD governance model
- Architecture envisioning
- Requirements envisioning
- Iteration modeling
- Model storming
- Test Driven Design (TDD)
- Agile modeling tools and techniques
- Pros and cons of AMDD
- Origin of OpenUP
- Overview of Eclipse Process Framework (EPF)
- Overview of EPF Composer
- OpenUP Principles
- OpenUP governance model
- OpenUP life-cycle
- Concepts: Activities, Tasks, Roles, Work products, Disciplines,...
- Customizing OpenUP
- Extension of OpenUP
- Pros and cons of OpenUP
Other Useful Tools, Techniques And Best Practices
- Planning and tracking
- Continuous integration
- Documentation generation
- Creating an agile culture
- Migrating to agile development
- Perceived risks and mitigation strategies
- Growing human skills in an agile environment
- Off-shore/distributed agile development