z2014 Session Incubation - SoCraTesUK/socrates-uk GitHub Wiki
Resources for practicing your craft
Hosted by Sebastian Larsson
A common way for developers to practice their coding skills is to do programming tasks at work. While on-the-job training is a good thing, it is not always suitable for trying out new technologies or software practices (TDD, design patterns, etc). The connected world that we live in today have given us a lot more of learning resources and opportunities.
In short, this session presents both theoretical and practical resources for continuous learning and improvement. More specifically, if you are interested in online training sites, video series for craftsmen, agile magazines, books, where to practice coding and similar, then this session is for you.
Interested: Kev McCabe, Ramon Antunez, Amélie, Duncan Mortimer, [Nic Infante] (http://www.meetup.com/london-software-craftsmanship/members/3770891/),[Franziska Sauerwein](https://twitter.com/singsalad), [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)
Play with Context Free Art
Hosted by Dmitry Kandalov
Some time ago at software crafstmanship round table someone mentioned Context Free Art project. Basically, this is a standalone program with DSL for creating images like this, this or this. The DSL is based on context free grammar and is quite functional and concise. It is particularly good for creating recursive images but there are no restrictions. (For language overview see this table of contents).
In this session I could show context free art basics, techniques to understand examples from gallery and because it's all quite simple, you could try and create something yourself.
(I'm not context free expert, more like advanced beginner. If you know context free art, please come over! :))
Interested: Chris Whitworth, Duncan Mortimer,Franziska Sauerwein
(Advanced?) Testing techniques for Node.js
Hosted by Nicole Rauch
In a Node.js project, we've come up with a number of interesting ways to test stuff that we haven't seen anywhere yet (or we were too stupid to find it). I will be running a (partly hands-on) session on this at SPA, and I'd like to practise and get feedback :-)
The session will consist of a number of largely independent testing topics, and so we can pick and choose which topics we want to look into at SoCraTes.
You can find the slides and workshop code examples here.
Interested: Jérôme, definitely :), Ramon Antunez
Brain Cycles and efficiency (how we spend our time and what can we do to improve?)
Hosted by Gianfranco Alongi
When we work on a problem, we spend our precious cognitive cycle time on different things. Looking at the screen, thinking, typing, etc. This is an attempt at a break down with discussions on how these cycles are distributed and what can affect them. Are we better of by learning to touch type? What about typing speed? Language mastery? What cycle time does an improvement hit?
Interested: Dmitry Kandalov, Chris Jeffery, Sebastian Larsson, Kev McCabe, Chris Whitworth,Derek Jones, Ramon Antunez, Amélie, [Duncan Mortimer] (http://www.meetup.com/london-software-craftsmanship/members/9754203/), [Nic Infante] (http://www.meetup.com/london-software-craftsmanship/members/3770891/),[Franziska Sauerwein](https://twitter.com/singsalad), [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)
Type-Safe Programming (or, Kill All The Strings)
Hosted by Samir Talwar
Strings suck. They don't give you any information about what you can and can't do, and you can put literally anything in them. I'd go so far as to say that after null
, strings are the single biggest cause of bugs (though concurrency is a close contender).
So let's stop using them. And when we have to, we'll make sure they can't just float around anywhere.
This session is going to be part talk, part discussion and part workshop on how to eradicate strings and string concatenation from your system, resulting in cleaner, safer, more maintainable and most importantly, less buggy code.
Interested: alastairs, Nicole Rauch, Dmitry Kandalov, Chris Whitworth, Ramon Antunez, [Duncan Mortimer] (http://www.meetup.com/london-software-craftsmanship/members/9754203/), [Nic Infante] (http://www.meetup.com/london-software-craftsmanship/members/3770891/),[Franziska Sauerwein](https://twitter.com/singsalad), [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)
Empirical Software Engineering
Hosted by Derek Jones
I am working on a book and am interested in talking about the material. The intent is to talk about the software engineering consequences of the results, not the statistics used to do the analysis of the data or the R language used to write the code that does the analysis.
If you have some software related data you would like analysed, and are happy to share with everybody, please bring it. The data/code I use is available from the above links and I will probably bring some more.
Some of the topics I can talk about include:
- Introduction to analysing software engineering data
-
Code growth over time, i.e., number of lines of code in a project
-
economic analysis of investing in creating maintainable code (you are not going to want to hear this)
-
fault lifetime, how long do faults last?
-
benchmarking, how modern hardware/software makes the results very unreliable
-
developer performance correlates with source code occurrences, i.e., the more often developers have to do a code related activity the better they are likely to be at it
-
empirical software engineering is only around 10 years old and there is little to be lost in burning all published research on the topic up until a few years ago.
Please add any topics that interest you. The only restriction I place on a topic is that empirical data has to be publicly available (I might be able to point to existing data I know about), otherwise there is nothing to analysis and its all hand waving.
Interested: alastairs, Dmitry Kandalov, Kev McCabe, Duncan Mortimer, [Nic Infante] (http://www.meetup.com/london-software-craftsmanship/members/3770891/)
Scrum in the Enterprise
Hosted by Brad Jacques
An hour long session doing a deep dive into my experiences in using Scrum within an Investment bank working within a team facing fixed/mandatory release dates, team members working in separate locations, and a separated QA process.
The session will consist loosely of the following
- Defining the team structure and release processes in a typical Enterprise
- Presentation of a Scrum process I have used
- What works well in Scrum
- What sucks in Scrum
- Does Scrum-Ban fix this? (Scrum + Kanban)
- Q&A Discussion
Interested: Kev McCabe, Ramon Antunez, Amélie, [Nic Infante] (http://www.meetup.com/london-software-craftsmanship/members/3770891/),[Franziska Sauerwein](https://twitter.com/singsalad), [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)
Replacing inheritance with composition
Hosted by Ivan Moore and Samir Talwar
Inheritance is one of the defining characteristics of object-oriented programming. However, overuse of inheritance makes code more difficult to understand, limits how it can be reused and leads to a muddling of concerns. This workshop takes some (Java) code from an Open Source project and leads participants through replacing an inheritance hierarchy in it with composition. Participants will see that it is easy enough to do and leads to improved code. This will encourage participants to replace inheritance with composition in their own code bases, leading to improved code and more tea breaks.
This is a 2.5 hour session I co-presented with Mike Hill (sorry - he won't be at SoCraTes) at SPA 2013 and Software Craftsmanship 2013.
Interested: Duncan Mortimer, [Nic Infante] (http://www.meetup.com/london-software-craftsmanship/members/3770891/),[Franziska Sauerwein](https://twitter.com/singsalad), [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)
Refactoring Golf
Hosted by Ivan Moore
The idea is to share refactoring tricks with an element of competition. We’ll give people a starting point of some (Java) code that needs refactoring, and an endpoint of the code after refactoring (the point is emphatically NOT to criticise our choice of endpoint).
People then have to get from start to finish with as few refactoring moves as possible. There will be penalties for unsafe moves (that don’t preserve the code’s behaviour). The lowest score will then present to the group, then we’ll try another challenge.
This is a 1.5 hour session I co-presented with Dave Cleal and Mike Hill (sorry - neither will be at SoCraTes) at Software Craftsmanship 2010 and elsewhere.
Interested: Dmitry Kandalov, Nicole Rauch, Duncan Mortimer, [Nic Infante] (http://www.meetup.com/london-software-craftsmanship/members/3770891/), [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)
Refactoring via the Mikado Method
Hosted by Alastair Smith
I've been using the Mikado Method on and off for a month or two, and have found it a valuable technique. I'm interested to discuss its use and application with others, and learn from your experiences.
Interested: Dmitry Kandalov, Nicole Rauch, Kev McCabe, Chris Whitworth, Ramon Antunez, Duncan Mortimer, [Nic Infante] (http://www.meetup.com/london-software-craftsmanship/members/3770891/),[Franziska Sauerwein](https://twitter.com/singsalad), [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)
Building things is hard (apparently)
Hosted by Chris Whitworth
"So, yeah, you'll to check out the repo into a path that has no spaces in its name; then you'll need to manually copy these libraries into this subfolder. To build it, you have to manually build the 32- and 64-bit versions of this library first, register that with the OS using this script, then build the UI. Sometimes that fails, though, but rebuilding it a couple more times usually fixes it. What? No, you can't build the installer locally, that depends on the build server magic."
A semi-dormant project I worked on last year took a full three person-weeks just to check out and build successfully. This isn't OK. Let's have a talk about what to do about it - share your pain, share ways to make it better.
Interested: Nicole Rauch, Dmitry Kandalov, Ramon Antunez, Amélie, Duncan Mortimer,Franziska Sauerwein, [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)
### Ember.js? Ember / Angular / Backbone / Any other JS Framework Standoff?
Hosted by Nicole Rauch & Kev McCabe
I am just about to learn some Ember.js. So far, I have no clue about it whatsoever, not even of its underlying frameworks (like handlebars). I'd like to integrate it into an existing project of mine, replacing just one page (to start with). Would anybody be interested in walking the first steps together with me?
After an online chat via Twitter Nicole & Kev came up with a JS Framework Standoff. Let's learn one of the many frameworks out there in pairs to build the same application. Then re-group to discuss our findings during the session. This may end up being a 2-3 hour session, or a mini do-jo?
Interested: Amélie {rusty at JS}, Duncan-
Discussion: How to use human resources most effectively?
Hosted by Stefan Hoth
The title is a play on the derogative term used by many corporations for your colleagues.
In our effort to create better software we came up with a lot of concepts that try to incorporate more conversations and "the wisdom of the crowd" into our daily work schedule. The problem with techniques like pair programming, Scrum, code reviews or spontaneous huddles is that you are not only using your time but your colleague(s) time as well in order to finish your tasks. While it's recognized to yield better results in general it might not help in your particular case yet it blocks your colleague(s) to finish their tasks.
This means each developer is (or should be?) constantly in a limbo between doing the task alone, pairing with someone or discussing the possible solutions to the problem in a bigger group - always on the brink of "wasting" your colleagues work time but value them most effectively.
In this session we will share our approaches and experiences regarding this topic. How do you work? Is there a golden rule? What are the best practices?
Interested: Amélie,Duncan,Franziska Sauerwein
Mindful development
Hosted by Guy Burton
An experimental hands on session exploring meditation and how it can potentially be interesting or useful to us as developers. I don't want to give too much away about exact format, but expect some gentle guided meditation (no sitting on the floor or chanting or anything like that) and pair programming (using TDD of course!).
Interested: Kev McCabe,Duncan, [Nic Infante] (http://www.meetup.com/london-software-craftsmanship/members/3770891/),[Franziska Sauerwein](https://twitter.com/singsalad), [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)
What is software design? What is good design? How to design?
Hosted by Alex Bolboaca
The most common issue we have as developers is working on poorly designed code - be it legacy or their own. One of the reasons for this seems to be the lack of knowledge on software design.
In this session, we will explore fundamental questions:
- what is software design?
- what is good software design?
- what is the use of software design?
and do hands-on practice on software design.
The full session runs for 3 hrs, but we can probably split it in two: discussion and practice.
Interested: Duncan,Franziska Sauerwein, [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)
Bring science back to software development
Hosted by Alex Bolboaca
The discussions we have as software developers over which practice is better are based on personal and shared experience. This means that they are fundamentally biased. Scientific experiments would help us move the domain further.
-OTOH, science needs our help as a community. Designing experiments is hard, but an additional challenge for scientists is the lack of access to the industry. Communities can bridge this gap.
I am currently incubating a project with an university assistant professor to bring science back to software development. In this session, I will tell you about it: the core ideas, the next steps and the difficulties we face.
Interested: Dmitry Kandalov, Duncan,Derek Jones,Franziska Sauerwein
Mentoring sessions
Hosted by Alex Bolboaca
I need your help to practise my mentoring skills during the unconference. If you are in one of these situations:
- have a piece of code you want to review or improve
- heard of some concept but don't know what it's about
- have troubles with a specific problem
- would like to learn something and don't know how to start
please come talk to me at any time during the event. You will make me a favour.
-Thank you!
(psst! Don't tell anyone, but you'll also get a teddy bear for this)
Interested: Duncan, [Nic Infante] (http://www.meetup.com/london-software-craftsmanship/members/3770891/), [Matt Glover] (http://www.meetup.com/london-software-craftsmanship/members/25197942/)