z2015 Session Incubation - SoCraTesUK/socrates-uk GitHub Wiki
Session Ideas
Test-driven infrastructure
Hosted by Julian Ghionoiu
There is a lot of value in using XP practices to craft and design infrastructure. As a team leader of a infrastructure team I can share some insights with you. I am also interested in hearing your stories.
The session is structured in two parts:
- Short presentation about test-driven infrastructure (15 min)
- Open discussion about infrastructure design and testing (30 min)
You can find the slides here: Go to Drive
Interested: You?
Competitive Kata Workshop
Hosted by Julian Ghionoiu
I am incubating a new style of coderetreat which focuses on obtaining feedback by competing with other people. The session is intensive and aims to make you think about:
- What slows you down ?
- What others are doing that makes them faster ?
This is a hands-on session where everyone performs the same kata at the same time. The tools I crafted to facilitate this are still in their inception but they are viable. I tried this session at a Code & Beer event and we had good fun.
The ideal number of people is between: 4-8.
Interested: You?
Introduction to Nonviolent communication
Hosted by David Heath
Nonviolent communication (also called compassionate communication) was created by Marshall Rosenberg in the 1960s. Its aim is to foster connection between people, and provide a humane way to resolve conflict and strengthen relationships. It emphasises an understanding of universal human needs and recognises that feelings are a signal of unmet (or met) needs. Conflict arises when strategies for meeting needs clash, and if we can express our feelings and needs without judgement we have a much better chance to find mutually compatible strategies.
I could give a short presentation explaining what I have learned about NVC over the past year, and open it up to a group discussion.
Interested: You?
Deliberate practice (renamed session from xp2015)
Hosted by Sebastian Larsson
30s video pitch: https://vimeo.com/128718994
Although there has never been easier to find information for learning purposes, it is also increasingly difficult to find the best alternatives. In this session Sebastian shares resources, methods and other tips for learning that will make developers better at their work. It is targeted at both junior and senior developers who want to learn more about:
- Theoretical resources such as books, courses, developer magazines, code casts and pod casts.
- Practical resources such as programming katas, pet projects, courses, open source and how to maximize on-the-job training.
- How to use technology to aid in learning.
- Ensure that value is added on learning investments, and how to avoid common pitfalls.
Interested: sameergarg
Code comprehension survey (research)
Hosted by Sebastian Larsson
Link to survey: http://jubo-bth.limequery.com/index.php/741984/lang-en (Ive been asked by the professor to not spread it via twitter or other social media).
I've been in contact with one of the professor's at the local university (Blekinge Institute of Technology). They have been trying to conduct a survey on code comprehension on students, but the results were inconclusive. Ive been given the survey along with permission to carry it out. Can you think of a better place to conduct such a thing than at a Software Craftsmanship Conference?
Interested: No one yet
Apache Spark Case Study
Hosted by Brad Jacques
I have spent the last 2 months working on a proof of concept for Trade Surveillance within a bank (i.e. trying to catch traders doing something they're not supposed to be doing) using Apache Spark.
Session 1: Presentation on the problem domain and how Apache Spark can be used to solve big data problems better than more traditional RDBMS approaches. I will cover the architecture of the PoC code, and show automated tests, and deployment, so you can get started with your own projects.
Session 2: (Depending on Interest) A deep dive into an example project showing how I have used Java 8 + Spring + Maven + Apache Spark API.
Interested: Mash, Felipe, Julian
Information Radiators 2015
Hosted by Chris W
We had an interesting session last year on information radiators; it focused quite heavily on what I'd think of now as fairly traditional approaches - primarily, build-status dashboards and graphs on big TV screens.
Since then, at Redgate we've been experimenting with some other approaches, combining conventional whiteboards and dashboards on screens with LED light strips and microcontrollers, to see if anything grabs people attention a bit more.
If anyone else has any interesting thoughts/ideas/things they've built in this area, come along and share - or if you're just interested in finding out what other people are doing in this area, also come along. I'm really specifically interested in non-traditional ideas here - klaxons, flashing lights, automated poking-sticks - rather than just the usual 'sad face on a monitor' type deals.
Interested:
The values behind XP Practices
Hosted by Mash
XP Practices are built on a strong set of values. These are: Simplicity, Communication, Respect, Courage, and Feedback. In this session I will briefly describe these values and what they mean to me. Then we'll have an open discussion going through the various XP Practices and how they are underpinned by a subset (or some times all) of these values.
Interested: Houssam
Software Ball
Hosted by Johan Martinsson
Play a game without computers, you'll work as a team during 6 sprints trying to satisfy you costumer with the least amount of effort
The scoring system of the game is designed such that when the programmers fulfill the user needs, they score points and the more they need to change their code, the more they lose points. As a consequence, the way to highest scores is to create adaptable components that can be easily re-arranged when the user needs change not over-generalize when simple code does the job keep a clean code base (for example, no code duplication) to avoid costly code changes
Once at home you can play this game even with non technical people. Developers might learn some design, and non technical people will get a better idea of the tradeoffs developers face (make it general or specific? refactor now later?)
This excellent game was created by Olivier Azeau*
Interested:
100% confident with legacy code
Hosted by Johan Martinsson
Frustrated you can’t refactor that piece of un-SOLID SH*T because you don’t have tests and it takes too long to write them?
Learn how to write non regression tests super-fast! We’ll work in baby steps on a real world application with complex logic and untestable dependencies. We introduce a powerful emerging concept of writing temporary tests that are tailored only for refactoring. It builds upon the techniques Golden Master and approval testing. We show how those work in a world of side effects and untestable dependencies. You’ll also get an understanding of how to apply this approach at any level of testing. We’ll discuss how this goes hand-in-hand with traditional system testing and the practice of TDD.
Find the setup instructions here.
Interested: Julian
Changing Code, Changing Culture
Hosted by Mateu Adsuara and Georgina McFadyen
If you are struggling with teams resisting to improve their code quality, we are going to provide an exercise that has helped team members to start being comfortable with adding tests to legacy code.
Using the Gilded Rose kata, we will explore using characterisation tests to understand the application after which you could lead by example and host with your legacy teammates.
Gilded Rose source code with approval tests
Interested:
JavaScript state of the union
Hosted by Chris
A show-and-tell session for all your favourite JavaScript-related things. Awesome libraries and better tooling like assertion libs, type checker addons, refactoring tools, ES6, etc. Whatever helps you craft good JavaScript, please share it in this session.
Interested: Johan Martinsson, [Felipe] (https://twitter.com/felipefzdz)
Code cooking
Hosted by Clément Bouillier
Code cooking workshop is inspired from language Learning. The goal is to learn something new in a small group of 3/4 people and a "teacher", practicing and without any explanations of concepts. For a speaking language, you would not explain sentence structure, for code you would not explain functions, vars and so on...
The workflow is : "teacher" write something from scratch, then each people try to rewrite the same from scratch, then quick feedback on how you feel this iteration, then continue on top of previous code, "teacher" add some new things, and so on...the only constraint is that "teacher" can just hint on syntax, but no one has to talk about concepts.
I can just facilitate it if someone wants to try to "teach" something. I can also "teach" basic F#. We can have several groups, observators are welcome, you also learn when observing.
Note: it is totally experimental :). Tried at Ncrafts conf in Paris last month, great feeling for me. Credits to Emmanuel Gaillot
Unit tests should test behaviours but, what does it mean behaviour for you?
Hosted by Felipe
Following some ideas presented in TDD, where did it all wrong? and Integrated tests are a scam we'll discuss about our definition of behaviour, and therefore, what are the boundaries of our unit tests.
Mob Programming: Refactoring legacy code
Hosted by Franziska
We will refactor the Gilded Rose Kata together and hopefully learn from each other. I especially invite beginners to join!
Interested:
Haskell Coding Dojo
Hosted by Mani
After dinner informal we-learn-together-as-we-go Coding Dojo session. Check out this link to get started, also has links for the next level.
Come along with your laptop or pair with someone already at the session.
Interested: