Day 1
Workshop: Crafting Code

This workshop is designed to help developers write well-crafted code—code that is clean, testable, maintainable, and an expression of the business domain. The course is entirely hands-on, designed to teach developers practical techniques they can immediately apply to real-world projects.

Software Craftsmanship is at the heart of this course. Throughout, you will learn about the Software Craftsmanship attitude to development and how to apply it to your workplace.

Writing Clean Code is difficult. Cleaning existing code, even more so. You should attend if you want to:

Write clean code that is easy to understand and maintain
Become more proficient in Test-Driven Development (TDD): using tests to design and build your code base
Focus your tests and production code according to business requirements using Outside-In TDD (a.k.a. the London School of TDD)
Clean code necessitates good design. In the process of driving your code through tests, you will learn how to:
Understand design principles that lead to clean codeAvoid over-engineering and large rewrites by incrementally evolving your design using tests
Once you have an understanding of the principles at work, we will apply them to Legacy Code to help you gain confidence in improving legacy projects through testing, refactoring and redesigning.

The content will be:
TDD lifecycle and the Outside-In style of TDDWriting unit tests that express intent, not implementationUsing unit tests as a tool to drive good designExpressive codeTesting and refactoring Legacy Code
The course is fully hands-on and developers will be writing a lot of code. So this workshop is aimed at software developers that:
are familiar with at least one Object-Oriented languageare able to understand Java or C#
Legacy code exercise will be done in one of the following languages: Java, C#, PHP, Scala, or C++can write and execute unit tests using a framework (such as JUnit, NUnit, etc.)have a basic understanding of mock objects
Developers must:
bring their own laptops
have a development environment consisting of:
their favourite Object-Oriented languagea unit test frameworka mocking librarybe able to create projects, build source code and run test cases in their development environment
In addition, a distributed version-control system such as Git is desirable.

09:00 - 17:00
Sandro Mancuso avatar
Session logo
Designing and Operating User-Centered Digital Services

With software eating the world, 21st-century business increasingly depends on IT, not just for operational efficiency, but for its very existence. In a highly disruptive service economy, IT-driven businesses must continually adapt to ever-changing customer needs and market demands. To power the adaptive organization, IT needs to become a medium for continuous, empathic customer conversations. 

This workshop teaches participants how to design and operate systems and organizations that help businesses create value through customer empathy. It introduces them to the theory and practice of Continuous Design, a cross-functional practice that interconnects marketing, design, development, and operations into a circular design/operations loop. Continuous Design incorporates 21st-century design and IT methodologies within a comprehensive framework focused on helping customers accomplish their business and personal goals. 

Participants learn how to:

• align software designs with operational, business, and customer needs

• maximize quality throughout the design, development, and operations lifecycle 

• create highly resilient and adaptable systems, practices, and organizations

The workshop takes the form of a day-long, interdisciplinary seminar consisting of talks, group discussions, and guided exercises. It takes place in two sessions: Introduction to Continuous Design and Applying Continuous Design.

Morning – Introduction to Continuous Design: this session introduces the principles of Continuous Design. It grounds those principles in the historical, philosophical, and economic underpinnings that link methodologies such as Design Thinking, Agile, DevOps, and Lean. By providing a strong theoretical grounding in new ways of knowing, this session gives participants the ability to evaluate the effectiveness of specific tools and practices, and to continually adapt them to meet their own needs and constraints. 

Afternoon – Applying Continuous Design: this session introduces a concrete methodology for applying Continuous Design to real-world problems. It presents a holistic approach to defining and achieving software service quality, and explains how to use the Continuous Design methodology to align one’s entire design, development, and operations process with that approach. This session guides participants in exploring how to use Continuous Design to improve their ability to deliver high-quality, user-centered IT.

09:00 - 17:00
Missing avatar
Session logo
Design & Implementation of Microservices

Microservices Architecture is a concept that aims to decouple a solution by decomposing functionality into discrete services. Microservice architectures can lead to easier to change, more maintainable systems which can be more secure, performant and stable. In this workshop you will discover a consistent and reinforcing set of tools and practices rooted in the the philosophy of small and simple that can help you move towards a Microservice architecture in your own organisation. Small services, communicating via the web’s uniform interface with single responsibilities and installed as well behaved operating system services. However, with these finer-grained systems come new sources of complexity.

What you will learn:

During this workshop you will understand in more depth what the benefits are of finer-grained architectures, how to break apart your existing monolithic applications, and what are the practical concerns of managing these systems. We will discuss how to ensure your systems can be made more stable, how to handle security, and how to handle the additional complexity of monitoring and deployment. We will cover the following topics: Principle-driven evolutionary architecture Capability modelling and the town planning metaphor REST, web integration and event-driven systems of systems Microservices, versioning, consumer driven contracts and Postel’s law.

Who should attend:

Developers, Architects, Technical Leaders, Operations Engineers and anybody interested in the design and architecture of services and components.

09:00 - 17:00
Missing avatar
Session logo
This website uses cookies. By continuing to browse you agree to this and Conferize's terms of service.