Gatling, one of the most popular stress test OSS frameworks, is powered by Akka and Scala. In this talk I share insight gained while working with and customizing Gatling to exercise Protobuf-based backed services. I also show how to use Gatling for web applications.
Windows Phone 7 puts in your pocket powerful hardware and APIs familiar to .NET developers. In spite of these similarities the intrinsic differences between the phone and traditional PCs translate into differences between effective mobile and traditional code. In this talk I will cover some of the most interesting aspects of developing Windows Phone 7 applications. Understanding these the differences allows developers to leverage the phone’s capabilities (such as the sensors) as well as managing the challenges of a mobile platform (such as the battery).
Architecture Refactoring, presented at the Microsoft Strategic Architect Forum, Redmond, WA, November 2007
Many current technologies force developers to make architectural decisions upfront, from the allocation of the functionality between client and servers to the communication mechanisms. Making these decisions prior to writing a single line of code may cripple your design and development work, and are expensive to revisit should they prove wrong. This session previews a technology that, through leveraging the Microsoft platform and techniques from programming language theory, makes it possible to postpone architectural decisions until the last possible responsible moment. The ability to start with a simple architecture and easily reshape it later based on the analysis of real, working code brings to architecture what refactoring brought to design.
A Software Patterns Study: Where Do You Stand?, presented at the patterns & patterns Summit, Redmond, WA, November 2007
Recently Microsoft’s patterns & practices group conducted a survey that indicates a significant gap between the patterns expert community and the software practitioners attempting to use patterns and leverage pattern thinking in their daily work. As this gap widens it will lead to an irreversible divide between the two communities, and patterns will fail to deliver their potential. In the light of our experience of using patterns to package development guidance as well as input from practitioners using patterns, we analyze the key causes behind this gap and recommend a set of actions aimed at the patterns expert community. Bridging this gap will have a dramatic effect on practitioners? understanding of patterns and their ability to leverage them as the patterns expert community envisions.
Architecture Evaluation in Practice, presented at the Architecture Quality Track of the 10th Annual Conference on Software Engineering, Methods, and Best Practices (JAOO), October, 2006, Aarhus, Denmark
Unverified designs, assumptions and tradeoffs increase the risks that software architecture doesn’t meet expectations and costs significantly higher than projected. Ultimately they can cause projects to fail. This realization is prompting an increasing number of companies to consider assessing the quality of their software architectures. While architecture evaluation is not as widely used as it should be, some do try it. A few succeed, while others discover that they are not well prepared to do it. Many architecture evaluations are fixated on technology. While answering questions such as “Should the architecture use NET or J2EE?” “Is the communication asynchronous or does it employ polling?” and “Does an XML versioning scheme exist?” can detect potential problems, there’s more to architecture evaluation than technology alone. This talk shares insights gained from growing ThoughtWorks’ architecture evaluation practice and evaluating several architectures for Global 1000 companies. These insights aim at preparing people interested in commissioning, managing, performing, participating in, or analyzing the results of architecture evaluation to tackle the realities of the front line.
Demystifying Orchestration with Patterns, presented at the SOA Track of the 9th Annual Conference on Software Engineering, Methods, and Best Practices (JAOO), September, 2005, Aarhus, Denmark
Although orchestration represents one of the key components of Service Oriented Architectures (SOA), few adopters of service orientation actually use it. In spite of available standards and tools, aggressive marketing has forced many users to jump on the bandwagon ill-prepared. In this session I give an overview of an orchestration pattern language that aims at helping practitioners embrace the state of the art. These patterns will prepare people to evaluate orchestration tools as well as to regard SOA as more than just an alternative to Enterprise Application Integration (EAI)
Most newcomers think that patterns are limited to the topics that made a big splash about 10 years ago. In fact many other patterns and pattern languages are quietly put to work, helping practitioners solve problems in a growing number of areas such as enterprise architectures, AOP, middleware and grid computing, embedded systems, performance tuning, and so on. In this session I tour some of the most interesting developments and trends in the patterns world based on my experience with editing the 5th volume of the Pattern Languages of Programs book series. This overview will give you insight into current patterns work, prepare you for finding patterns for the problems that you’re interested in, as well as help you position in context patterns that you may consider authoring.
Lessons in Architecture Evaluation, presented at the International Association of Software Architects, New York Chapter, New York, NY, June 28, 2005
In spite of the increased awareness about the importance of software architecture, few software development projects evaluate architectures in a systematic manner. In today’s complex systems unverified designs, assumptions, and tradeoffs increase the risks that the architecture doesn’t meet stakeholder expectations, could have significant cost implications, and could ultimately cause projects to fail. In this talk I share insight from conducting formal software architecture evaluations. These lessons should extend your architecture evaluation toolbox as well as make you a better evaluator when assessing designs or commercial off the shelf (COTS) components.
Orchestration Patterns in Service-Oriented Architectures, presented at the Microsoft Southeast Architecture Council; November 2004
Enterprise Integration Patterns with BizTalk Server 2004, presented at the Microsoft Partner Advisory Council, Seattle, WA; September 2004
Micro-Workflow: An Object-Oriented Workflow Architecture for Embedded Workflow, presented on August 24, 2001 at the Information and Telecommunication Technology Center, Lawrence, KS
Micro-Workflow: A Workflow Architecture Supporting Compositional Object-Oriented Software Development, presented on: October 5, 2000 at Complete Business Solutions, Inc., Overland Park, KS; October 23 at University of Colorado, Boulder, CO; October 24 at Transportation.com, Overland Park, KS
Traditional workflow architectures are based on assumptions that don’t hold in the context of software development. In this talk I discuss how the micro-workflow architecture avoids these problems and provides a viable solution for object-oriented developers who need workflow functionality in their applications.
Micro-Workflow for Business Processes in Object-Oriented Applications, presented on August 31, 2000 at Skyva International, Boston, MA
In this talk I propose micro-workflow as a new workflow architecture bridging the gap between the type of workflow functionality provided by current workflow products and the type of workflow functionality that object-oriented developers need to implement processes within their applications.
Using Micro Workflow for the Newborn Screening Followup Process, presented on April 11, 2000 at the Illinois Department of Public Health, Springfield, IL
In this talk I argue that micro workflow, in particular my Smalltalk framework, can provide a cost-effective solution for a problem from the healthcare domain.
A Micro Workflow Architecture Supporting Compositional Object-Oriented Software Development, presented on December 6, 1999 at CISCO Systems, Champaign, IL
In this talk I present an object-oriented architecture for workflow systems that represents a significant departure from traditional workflow architectures.
An Object-Oriented Framework for On-Line Registrations, presented on September 8, 1998 at Caterpillar, Peoria, IL
In this talk I discuss a Java framework that I built for registration at the PLoP’98 conference.
Reusable Architectures for Multimedia, presented on December 5, 1997 at HP Labs, Palo Alto, CA
In this talk I describe a domain (multimedia), an application for this domain, and some techniques for software reuse. I also provide a concrete example of the application of these techniques.