This month we will continue our series on product development principles with Ralph Iden and then Mark Mahoney will give his talk on reactive systems.
6:30 - 7:15: Product Development Principles w/Ralph Iden and discussion
7:30 - 8:30: Designing Reactive Systems: State-Based Design Challenges w/Mark Mahoney
Product Development Principles w/Ralph Iden:
As software craftsmen, each of us strives to develop and embrace principles that result in better products. Last time, we discussed Principal #1 ("Don't annoy your customers) and were given a "homework" assignment. This month, we will discuss Principal #2 (Strive to delight your customers) and Principal #3 (Establish your project's mission, vision, and values). The evening will start by providing an opportunity for people to share their homework results. Then, after a short presentation to introduce this month's principles, a discussion will follow to explore them more deeply.
Ralph Iden is a Principal Developer at Follett Software Company with over 30 years of experience developing commercial software applications using a variety of languages and frameworks. He likes to create tools to make developing software more enjoyable and dabbling with parsers, electronics, and embedded micro-controllers. His mantra is, "Don't annoy your customers".
Designing Reactive Systems: State-Based Design Challenges w/Mark Mahoney
State-based systems must respond to events that can occur at any time and in any order. They are particularly relevant for embedded devices with inputs other than keyboards and mice. Some people are predicting a future filled with reactive, interconnected devices. This presentation is relevant for those who are excited about designing state-based solutions for the ‘Internet of Things’.
This presentation will introduce extended finite state machines as a way to design reactive systems. Next, we will learn how to turn state machines into code using the ‘State’ design pattern. The group will be presented with some problems and will be asked to come up with state-based solutions. This will be a highly interactive session, so come prepared to discuss, design, and solve some interesting problems. We will compare solutions and share our experiences and expertise.
Mark Mahoney is the chair of the computer science department at Carthage College in Kenosha, WI. Before that he was a software engineer at Motorola. Dr. Mahoney leads groups of undergraduate researchers examining how to make it easier for software developers to learn from their code repositories and from each other.