The Center for Technology Innovation sponsors a series of day-long workshops on cutting-edge technology issues with nationally-known speakers. Open to the public, the $165 registration fee includes handouts, breaks, lunch, and parking in the UWM Union parking structure. Discounted rate is available for UWM MIS/ITM alumni for $145.

Microservices Architecture and Design
Friday, February 16, 2018
8:30 a.m. – 4:30 p.m., Lubar Hall, N333

Workshop presenter, Mark Richards is an experienced, hands-on software architect involved in the architecture, design, and implementation of microservices architectures, service-oriented architectures, and distributed systems. He has been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture.


Microservices is one of the latest software architecture styles that promises to deliver benefits such as ease of testing, fast and easy deployments, fine-grained scalability, architectural modularity, and overall agility. It is undeniably one of the latest trends in the software industry, and everyone seems to be jumping on the bandwagon to quickly embrace and adapt this new architecture style. Unfortunately, as many companies are painfully experiencing, microservices is a fairly complex architecture style that is not suited for all applications and environments.

In this intensive 1-day course I will take you on a detailed journey through the microservices architecture style. By the end of this course, you will gain a full understanding of the microservices architecture style and what hybrids and alternatives exist, which will help guide you in making the right architecture and design decisions for your organization.

Who should attend:

Anyone considering (or currently engaging) in the planning or implementation of Microservices should attend this course. Microservices is not for everyone and is not right for certain situations. This course highlights those areas to help you make better decisions about whether to embark on Microservices or stick with a hybrid approach (which is covered in this class as well).

The topics you will learn are:

Part 1 (Microservices Core Concepts)

  • The basic concepts of the microservices architecture style.

Part 2 (Hybrid Architectures and Migration Patterns)

  • How to apply microservices to standard business applications through hybrid architectures.
  • The migration patterns for migrating from monolithic n-tiered layered architectures to micorservices.

Part 3 (Microservices Design Techniques)

  • Gain a deeper understanding of the design aspects of microservices,
  • Overcome some of the design challenges associated with the microservices architecture style.

Part 4 (Microservices Data Considerations)

  • Gain a deeper understanding of the data aspects of microservices, which is in my opinion one of the hardest parts of microservices.
  • Gain a deep understanding of the challenges of distributed data within a microservices ecosystem by learning how to create data domains, how to deal with common database tables, how to migrate data, and how to do distributed transactions.


Building Evolutionary Architectures
Friday, January 26, 2018
8:30 a.m. – 4:30 p.m., Lubar Hall N333

Workshop presenter, Neal Ford is Director, Software Architect, and Meme Wrangler at ThoughtWorks. He is an internationally recognized expert on software development and delivery, especially in the intersection of agile engineering techniques and software architecture.


For a variety of reasons, parts of software systems defy change, becoming more brittle and intractable over time. However, the world we inhabit has exactly the opposite characteristic. Business constantly changes, but so does the software development ecosystem. New tools, techniques, approaches, and frameworks constantly impact that equilibrium in unanticipatable ways. While this creates a headache for brittle systems, it also provides the ultimate solution. Over the last few years, incremental developments in core engineering practices for software development created the foundations for us to rethink how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This session ties those parts together with a new way to think about architecture and time.

The concepts of evolutionary architecture also help automate previously underserved constituents (“non-functional requirements”) by providing a framework for identifying important dimensions, with their critical characteristics, and the mechanism (via fitness functions) for verifying the veracity of those attributes continually. This in turn allows architects to build systems that support ongoing change with confidence that important qualities won’t degrade. Identification of architecture dimension and fitness function occurs at both project inception and as an ongoing concern, building continual architecture.

Who should attend:

Experienced and aspiring software architects, non-technical domain experts who want to understand how to evolve software.

The topics you will learn are:

  • Introduction to evolutionary architecture
  • Identifying architectural dimensions
  • Exercise: find “-ilities” using Architecture Katas
  • Fitness Functions
  • Types of Fitness Function
  • Dimensions of Fitness Functions
  • Exercise: define fitness functions for important dimensions
  • Incremental Change for evolutionary architecture
  • Exercise: deployment pipeline plan to apply fitness functions
  • Exercise: comprehensive deployment pipeline plan
  • Ongoing Discovery and maintenance


Recent workshops included:

  • Test Driven Development in Java using JUnit 5
  • Functional Programming in Swift
  • Angular 2/4 Hands-on Programming Codecamp
  • Six Essential Soft-Skills for the Technology Professional
  • Rediscovering JavaScript
  • A Thorough Introduction to Grails 3
  • Java Design Patterns
  • The Antifragility Edge: Business and Technology
  • Aurelia: Single Page Applications Done Right
  • A Swift Kickstart: Introducing the Swift 2.0 Programming Language
  • AngularJS Hands-on Programming Codecamp

To automatically receive information on upcoming workshops, please click here to request being added to our mailing list. 


The Center also sponsors panel discussions with IT leaders who present their thoughts on topics of interest to the local IT community. Audience participation follows the presentation.

For More Information

Dr. Atish Sinha
Director, Center for Technology Innovation
Professor, Information Technology Management
Lubar Hall N363
(414) 229-3301