Tuesday 16 October 2012
The following workshops run for a full day (from 09.30 to 17.30), with a short break in the morning and afternoon, and a lunch break at 13.00.
||Are you a software architect?
WORKSHOP REF: SA01
The line between software development and software architecture is a tricky one. Some people will tell you that it doesn’t exist and that architecture is simply an extension of the design process undertaken by developers. Others will make out it’s a massive gaping chasm that can only be crossed by lofty developers who believe you must always abstract your abstractions and not get bogged down by those pesky implementation details. As always, there’s a pragmatic balance somewhere in the middle, but it does raise the interesting question of how you move from one side to the other.
Join us for this tutorial where we look at the software architecture role and how it should be a part of all software development teams.
In summary, we will:
• Understand why there is a need for software architecture
• Explore what the role of a software architect is about
• Discover how the software architecture role is different to a lead developer role
• Recognise that soft skills are an important pre-requisite for any software architect
• Discuss how coding can be an inclusive part of the role
• Understand how the software architecture role can fit into all software teams, regardless of whether they are waterfall, agile, chaotic or self-organising
• Share our experiences and identify pitfalls for people new to the software architecture role
• Establish how to avoid ivory towers
• Hear what happens when you don’t have anybody performing the software architecture role!
• Start to create a definition of the software architecture role for your own team or organisation
||A day of design patterns
WORKSHOP REF: SA02
Andrew Clymer & Richard Blewett
Reuse solutions, not just code. Code smarter with design patterns helps you identify problems that occur repeatedly in your code, and solve those problems in a standardized way. Wrap your head around the concept of the design pattern; a programming solution or template that can be used in many different situations, and discover new tools for creating
This day will in no way cover all OO design patterns, but will immerse you in the world of loose coupling and set you in good stead to continue your learning, resulting in you building true Object Oriented solutions.
Design patterns provide a core technology in allowing you to build systems that are not only flexible but most importantly testable – a skillset that all modern developers require.
||Architecture with Agility
WORKSHOP REF: SA03
The word Agile has passed into the wider buzzwordsphere familiar to all in development. But that does not mean its concepts, culture, associated processes and practices or implications are as widely understood.
Agile development involves more than a passing familiarity with Scrum terminology, more than the occasional use of an automated testing framework and more than simply rebranding either a chaotic or bureaucratic in-house process and proclaiming “We’re Agile!„.
Architecture is often placed falsely in conflict with Agile approaches, and vice versa. Architecture is not something that is completed and set in stone in a design phase, caught and trapped in a document, administered and policed by a select few. Architecture defines the significant decisions that characterise a system, decisions that are discovered and made at different times during the process of development, and by different roles.
This one-day session will take a look at the motivation, thinking and practices behind Agile development, with a particular view to its amicable and necessary relationship with architecture.
||Mobile development, iOS, Android, Windows Phone, PhoneGap and you
WORKSHOP REF: SA04
In two years at most, any developer will probably need to be a mobile developer. While the industry and community may produce powerful new cross-platform tools, until then you can’t write native apps without a deep and clear understanding of the foundation of each platform.
In this workshop, we’ll review the options you have to write apps for iOS, Android and Windows Phone: SDKs, tools, frameworks, patterns. We’ll also provide a real-world perspective of PhoneGap and the promise of using HTML5 as the “passe-partout„ of mobile solutions.
WORKSHOP REF: SA05
Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours – sometimes even minutes – no matter what the size of a project or the complexity of its code base. The workshop materials are derived from the bestselling book ‘Continuous Delivery’, and created in collaboration with the authors and other of my ThoughtWorks colleagues.
Part 1: Deployment pipelines
In the first half of the workshop I move from release back through testing to development practices, analyzing at each stage how to improve collaboration and increase feedback so as to make the delivery process as fast and efficient as possible. At the heart of the workshop is a pattern called the deployment pipeline, which involves the creation of a living system that models your organization’s value stream for delivering software. I spend the first half of the workshop introducing this pattern, and discussing how to incrementally automate the build, test and deployment process, culminating in continuous deployment.
Part 2: Agile infrastructure
In the second half of the workshop, I introduce agile infrastructure, including the use of Puppet to automate the management of testing and production environments. We discuss automating data management, including migrations. Development practices that enable incremental development and delivery will be covered at length, including a discussion of why branching is inimical to continuous delivery, and how practices such as branch by abstraction and componentization provide superior alternatives that enable large and distributed teams to deliver incrementally.
||Understanding Windows 8, Metro and the Windows Runtime
WORKSHOP REF: SA06
Every decade or so, Microsoft releases a game-changing technology, and thus it is no surprise that Windows 8 is radically different from previous versions of Windows.
It is also seemingly massively misunderstood, with commentators often confusing Metro with the Windows Runtime (WinRT) and even the Start screen!
In this workshop, you will gain a deep understanding of the Windows Runtime: what it is, how it works, how it can be consumed from a wide range of technologies, including .NET, and ultimately why it is a huge step forward for all Windows developers.
You will learn what “Metro„ really is, and how it influences the design of applications. In gaining an understanding of the Metro design principles, you will gain an insight into the importance and benefits of the whole Windows 8 ecosystem, and how you can exploit and benefit from it in your applications.
Covering everything from designing for touch UI to internals of the Windows Runtime, from capabilities to contracts to the cloud, this independent, warts ‘n’ all workshop, will provide you with a ton of practical guidance and a great understanding of what Windows 8 really means for you.
Which means that you will be able to make informed decisions on how to evaluate and work with Windows 8, and how to ensure that your current applications and code will work well into the future.
Return to Sessions introduction
Don’t miss it!
Software Architect Wednesday: Kevlin Henney
on Architectural styles
Don’t miss it!
Software Architect Thursday: Simon Brown
on Coaching you to coach your team
Don’t miss it!
Software Architect Thursday: Neal Ford
on 4 practical uses for Domain Specific Languages
Don’t miss it!
Software Architect Tuesday: Andrew Clymer
on A day of design patterns
Details of the conference are now available on Lanyrd.com, the social conference directory.
Find out more!