Conference Presentations

Database Development: The Object-oriented and Test-driven Way
Slideshow

As developers, we've created heuristics that help us build robust systems and employed test-driven development (TDD) to improve code design and counter instability. Yet object-oriented development principles and TDD have failed to gain traction in the database world. That’s because database development involves an additional driving force-the data. Max Guernsey shows how to treat databases as objects with classes of their own-rather than as containers of objects-and how to drive database designs from tests. He illustrates a way to give these database classes the ability to upgrade old data without introducing undue risk. Max also shares how to apply good object-oriented design principles to database classes and how to enforce semantic connections between databases and clients.

Max Guernsey, Hexagon Software LLC
Danger! Danger! Your Mobile Applications Are Not Secure
Slideshow

A new breed of mobile devices with sophisticated processors and ample storage has given rise to sophisticated applications that move more and more data and business logic to devices. The result is significant and potentially dangerous security challenges, especially for location-aware mobile applications and those storing sensitive or valuable data on devices. To counter these risks, Johannes Ullrich introduces and demonstrates design strategies you can use to mitigate these risks and make applications safer and less vulnerable. Johannes illustrates design patterns to: co-validate data on both the client and server; authenticate transactions on the server; and store only authenticated and access-controlled data on the client. Learn to apply these solutions without losing access to powerful HTML5 JavaScript APIs such as those required for location-based mobile applications.

Johannes Ullrich, SANS Technology Institute
It's a Phone First! How to Test Your Five-star Mobile Apps
Slideshow

Mobile application development shares many similarities-and some stark differences-with traditional web-based development. To build, test, and deploy five-star mobile applications, your organization needs-from inception-a focused test strategy to drive quality. Employing the wrong approaches and tools can leave your business sponsors and clients wondering what went wrong. Will Hurley outlines the current mobile landscape and explains what can and cannot be controlled in the mobile lifecycle. He explores the current landscape and limitations on tools for testing mobile apps, and offers guidance on what-and what not to-automate. With Will's guidance, you’ll learn how to establish a mobile lifecycle test strategy that is both leading edge and practical.

Will Hurley, Will Hurley - Quality and Security Services
Agile Development Conference & Better Software Conference West 2012: Patterns of "Big" Scrum

Software development organizations adopting Scrum have struggled to apply it to big projects with multiple teams. Dan Rawsthorne is frequently asked, “What does ‘big’ Scrum look like?” Because no two organizations are alike, this simple question does not have a simple answer. However, Dan has discovered patterns that are common in organizations that successfully implement “big” scrum. The first pattern he explores-Product Owner Team-allows the organization to handle agility up and down the hierarchy. Dan also discusses the Cross-cutting Teams pattern that handles issues-architecture, usability, integration, performance, and evaluation-that the formal hierarchy can’t resolve. Finally, Dan discusses the BuddyUp pattern to describe the best way to work with subject matter experts from dispersed parts of the organization.

Dan Rawsthorne, Consultant
Agile Architecture Practices for Large Scale Agile Development

Although “agile architecture” may sound like an oxymoron to you, the reality is that a simple, elegant architecture is a key enabler of any successful system, particularly large scale ones. Scott Ambler describes agile architecture practices-at both the project and enterprise level-that form a middle ground between the extremes of big architecture up-front and outright hacking. Scott discusses agile modeling practices-initial architecture envisioning, proving an architecture with working code, and just-in-time model storming-that enable agile teams to benefit from architectural modeling without suffering the drawbacks of detailed design documentation. Beyond architecture, Scott introduces agile design techniques-continuous integration (CI), test-driven development (TDD), and refactoring-that build on and provide feedback to an emergent architecture.

Theresa Quatrani, IBM Rational
Agile Development Conference & Better Software Conference West 2012: Avoiding Overdesign and Underdesign

The question of how much design to do up-front on a project is an engaging conundrum. Too much design often results in excess complexity and wasted effort. Too little design results in a poor architecture or insufficient system structures which require expensive rework and hurt more in the long run. How can we know the right balance of upfront design work versus emerging design approaches? Alan Shalloway shows how to use design patterns-coupled with the attitude from agile of “don’t build what you don’t need”-to guide your design efforts. The trick is to identify potential design alternatives, analyze how each may affect the system in the future, and then find the simplest approach for isolating those potential affects.

Alan Shalloway, Net Objectives
Leaping into the Cloud: Risks and Mitigation Strategies

The cloud has rapidly gone from “that thing I should know something about” to the “centerpiece of our five-year corporate IT strategy.” However, cloud computing is still in its infancy. The marketing materials ignore or gloss over the many risks present today in the cloud-data loss, security leaks, gaps in availability, migration costs, and more. Ken Johnston and Seth Eliot share new research on the successful migrations of corporate IT and web-based companies to the cloud. They lay out the risks to consider and explore the rewards the cloud has to offer when companies employ sound architecture and design approaches. Discover the foibles of poor architecture and design and how to mitigate these challenges through a novel Test Oriented Architecture (TOA) framework.

Ken Johnston, Microsoft Corporation
Mobile Apps: Breaking Down the Barriers

Mobile application development introduces additional complexity when compared to building traditional applications. In order to successfully develop and deploy mobile applications, it is essential to account for variability in networks, service providers, devices, operating systems, and browsers. Todd DeCapua shares practices for successfully navigating this complexity while preserving both speed-to-market and application performance. Outlining a new approach to the agile development-test-deploy cycle for mobile, Todd demonstrates how to integrate functional testing and performance engineering throughout the application lifecycle and establish a new level of cooperation among test, development, and operations.

Todd DeCapua, Shunra
Cloud Computing 101: Concepts, Benefits, Challenges, and Costs

Cloud computing is a paradigm that makes the notion of utility computing a reality. Instead of investing scarce capital in computing resources, IT organizations are turning to pay-for-use hardware, software, and infrastructure available through the Internet. Unfortunately, because cloud services vendors have their marketing engines further into the cloud than their technology actually reaches, there is a great deal of hype around cloud computing. Arlene Minkiewicz introduces the concepts of cloud computing, discusses the different kinds of clouds, and explores different models for employing cloud-based services. She provides insights into the benefits, challenges, and risks associated with moving development, testing, and production systems to the cloud. Explore the costs you’ll face to migrate to cloud computing and how to estimate the on-going costs associated with the utility computing model.

Arlene Minkiewicz, PRICE Systems
Software Design for Testability

Testability is a key ingredient for building robust and sustainable systems. Neglecting testability during software development increases technical debt and has severe consequences on systems that are destined to operate for many years. Peter Zimmerer describes influencing factors and constraints of designing software for testability and shares his experiences on the value and benefits of testability-and the repercussions of poor testability. Using real-world projects as examples, Peter describes key factors in designing for testability-an architecture providing control and observation points, testing interfaces, built-in tests, logging and tracing, diagnosis facilities, and more. Take back a checklist of important issues, facts, and practices on designing for testability in your systems.

Peter Zimmerer, Siemens AG

Pages

StickyMinds is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.