| |
Agile Programming: Principles and Practices for Software Success
Frequently Asked Questions
What is this course about?This immersive course is based around an authentic Agile project simulation where you gain the knowledge and practical skills to plan, code and implement a software project. You gain a solid foundation in Agile methodologies such as XP and Scrum. You also learn Agile development principles, including test-driven development, refactoring existing code for easier maintenance and improved design, simplifying complex coding problems with design patterns, and adopting best practices to successfully manage Agile projects.What background do I need? In this course you will be shown code and will write code, but will not be given details on any given language. A working familiarity with object-oriented programming concepts, along with a level of competency in a modern programming language such as Visual Basic, Java or C#, is extremely helpful. Who will benefit from this course?Experienced software architects, programmers, and technical/project managers who want to learn to develop software using proven Agile programming principles and practices will benefit greatly from this course. What is Agile development and programming?Agile development is a software engineering framework that is designed to produce functional software in a reduced time frame when compared to traditional development methodologies. Agile methodologies include Scrum and XP. Agile places emphasis on constant, open, real time communication between developers and their customers, and stresses the need to build working software in frequent iterations to minimise risk. Each iteration acts as a fully contained software project and includes the tasks needed for a product release: planning, requirements analysis, design, coding, testing, and deployment. The frequency of iterations emphasises the core principle of Agile development, which is the ability to react and adapt quickly to change and to shift directions with minimal or no interruption to the project.How is this course structured?This course is structured around a dynamic style
of learning created by Learning Tree called RealityPlus™-an immersive experience that engages you in authentic tasks within a simulated real-world context. Through media-rich case studies, role playing, and video/computer-based activities, you are immersed throughout the course in an evolving scenario where the decisions you make affect the outcome of the simulation. The RealityPlus learning method is presented in a safe environment where you gain new skills and practise the most effective techniques to bring back to your job. At the end of the course, you are prepared to immediately and successfully apply these new skills within you organisation.
Does this course cover Scrum?Yes. Scrum is an iterative process of software development typically used to manage software development projects, but it can also be used to run software maintenance teams or for program management. In this course, you learn how to deliver adaptable software iterations based on Agile methodologies including Scrum. I am a Java/.NET/C++ programmer. How will this course help me?Agile is not about the language you use to program, it is about the concepts and underlying principles. All Agile methodologies (Scrum and XP, for example) are applicable whether you are working in Java, .NET, C++ or any other programming language. To keep this course fully focused on Agile development and programming principles, all course materials are presented in a language-neutral environment. Exercises are designed around an emerging programming language that is completely object-oriented and simple enough to not get in the way of learning the core concepts of Agile.Will this course teach me the skills I need to perform Test-Driven Development?Absolutely! Test-Driven Development (TDD) is one of the cornerstones of Agile programming whether using Scrum or XP. TDD ensures that when a part of the application changes, a response to that change can be made without breaking other parts of the system. This course places great emphasis and a significant amount of time on TDD, and the processes needed to implement it successfully.How much time is spent on each topic?| Content | Hours | | Planning an Agile release | 2.0 | | Agile iterations | 1.5 | | Crafting adaptive software through
Test-Driven Development
| 3.0 | | Refactoring for elegant design | 4.0 | | Integrating object-oriented
programming principles
| 3.5 | | Simplifying complex architectural problems
using design patterns
| 3.0 | | Managing to the Agile Manifesto | 1.0 | Times, including the workshops, are estimates; exact times may vary according to the needs of each class.Is this course consistent with the Agile Manifesto?Yes. The Agile Manifesto, released in 2001, is the foundation upon which Agile development is built. It provides the guiding principles for this methodology-principles that separate it from any other type of "by the numbers" development process. Agile is as much a development philosophy as anything else, focusing on customer satisfaction by rapid, continuous delivery of useful software and the close, daily cooperation between business people and developers. Since the Agile Manifesto is intrinsic to the process, it is intrinsic to this course. Its principles are woven through every phase of the course and are highlighted to emphasise the relationship between principle and practice, whether you use Scrum or XP.What kinds of activities does this course include? This course is built around an authentic Agile programming project simulation. Experiential and PC-based activities include:Meeting with customers to generate user storiesAttending a spike session to learn new technologyWriting tests and code to bring user stories to lifeRefactoring to remove code smellsLeveraging OO coding principles to remove hacksImplementing design patterns for an adaptable architectureFacilitating customer feedback through the delivery of frequent iterations How does this course relate to other
Learning Tree courses?
This course requires experience in a modern programming language and in object-oriented programming concepts. That experience can be
gained in:
The following courses may also be of interest: |
|
RealityPlus is a trademark of Learning Tree International.
|
|
|