As web and mobile application development matures, the overlap of UI design and back-end development has become more interrelated. Agile teams that are equipped to incorporate successful UI design practices with agile development can have the best of both worlds – a highly performant application with a great user experience. But approaches and mindsets can be different between developers and designers – let’s look at what works as we move into designing and developing for the immersive Windows 8 user experience.
Presented by: James Bender
Development Track: 11am-noon
A key concept of any Agile methodology is communication. It’s no longer normal or acceptable for developers to sit and develop applications in isolation from the business. To that end, developers and business domain experts have been trying to find better ways to communicate. While developers tend to speak in terms of “code and technology” most business domain experts are more comfortable communicating in terms of scenarios, workflows and business rules.
Test Driven Development (TDD) was the first step in getting these two groups to communicate in the same way. Developers could unit tests that expressed business requirements with the hope that business users could validate that what was being tested was in fact what the desired behavior was. But, unit tests are still code and while it was better, the communication was still stilted and inefficient.
To help this communication new techniques such as Behavior Driven Development (BDD) and Acceptance Test Driven Development (ATDD) have become popular. Along with these new ideas, new tools like SpecFlow have become popular as a means to express unit tests in a way that the business can better understand and validate.
This session will demonstrate how SpecFlow can be leveraged in your BDD or ATDD practices. In this session you will learn what SpecFlow is and how to integrate it into your .NET project. The Gherkin language and the “Given, When, Then” paradigm will be explained. You will see how to write tests in a way that business users are not only capable of reading, but can also help you create them.
In software development projects, writing the code is the easy part. However, defining and communicating what needs to be built continues to be a challenge. Customers, business analysts, testers, and developers all speak a different language. All interact with the same system, but each has a very different view into how it works. Often times, this difference in viewpoint causes a communication breakdown that results in a failed development effort. The goal of this talk is to show the ways we’ve been able to lessen the communication impedance between requirements and development, such as prototyping, 3 amigos, DSL/executable requirements, and acceptance test driven development.
Many project teams have adopted unit testing as a necessary step in their development process. Many more use a test-first approach to keep their code lean. Yet, far too often these teams still suffer from many of the same impediments: recurrent integration failures with other enterprise projects, slow feedback with the customer, and sluggish release cycles. With a languishing feedback loop, the enterprise continues to put increasing pressure on development teams to deliver. How does an aspiring agile team improve to meet the demands of the enterprise?
Continuous integration is the next logical step for the team. In this talk, you’ll learn how continuous integration solves intra and inter-project integration issues without manual overhead, the value added by continuous integration, and how to leverage tools and processes to further improve the quality of your code. Finally, we discuss the gold standard of agile teams: continuous deployment. You’ll learn how continuous deployment helps close the feedback loop with your customers, increases visibility for your team, and standardizes the deployment process.