comments

And This Was Swetugg on Day 2

Did you miss day 1? Then take a look at this article

And it was a wrap-up for Swetugg the Swedish conference for .NET developers by .NET developers.

Swetugg

tl;dr; Great second and last day at the conference with more interesting talks on BDD, specification by examples, Conway’s Law, Polyglot programming and persistence, event sourcing, graph databases, document databases, Entrepreneurship, Lambdas, UX magic, EPiServer and Game Development backed on Azure.

Same problem today with snow…

Swetugg

but I made it in time for Robert Folkesson’s session on…

Specification By Example And Testing Using SpecFlow

I love testing related stuff and my first test ever was an SpecFlow test. Yes, I started my testing career doing BDD and it wasn’t pretty, you shouldn’t start building a death star from the chimney… So it was very nice to be brought back to BDD, Specification By Example and SpecFlow by the hand of Robert Folkesson who is a great speaker and super clear and articulate.

In summary, the discipline of BDD appeared to bridge the disconnect between TDD and the business domain that it attempted to test, where to start? what to test? what to build?

In practice, it takes the form of human readable specifications written using the ubiquitous language of the business domain at hand in plain text that are then used to generated test hooks that can later be run against your production code. This creates a testing nirvana in which the end user (and the developers) can see how human readable specs are brought to live and represent a living and breathing documentation of what your system or application can do and does at a specific point in time.

An additional refinement came to BDD in the form of Specification by Example in which requirements are not only specific by text but also by specific examples. Gojko Adzic who coined the term also wrote a book about it.

SpecFlow is an implementation of BDD and Specification by example that integrates with Visual Studio and any of the most popular testing frameworks. It can be used to run tests at any level, I have seen it used for unit tests, integration tests and even end-to-end tests which exercised selenium.

And here is an old-ish video from Rob Conery that illustrates the use and usefulness of SpecFlow:

You can follow Robert on twitter or at his blog. He has even uploaded his session material to the internet.

The Organization Structure And Architecture Mirroring Conumdrum

So there is a theory/adage/law called [Conway’s Law](http://en.wikipedia.org/wiki/Conway%27slaw)_ of which I had no idea about that states the following:

organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations

Wait a sec. Think. Reflect. A company that builds an app… is constrained to build an app… with a design that copies the structure of the organization… hmm so that’s why enterprise companies tend to build monolithic products whilst open source communities and projects tend to build loosely coupled systems. Does your organization need a refactoring?

Swetugg

There was ton more of interesting thoughts that I am going to regurgitate in no particular order and you’ll have to reflect and make sense of them yourself:

  • it is not only an organization structure that affects the software but it also happens vice versa. F.i. if you have a person that is the sole holder of knowledge of a particular system, the software is going to put a contraint in your organization structure so that person is locked into that product.
  • Spotify is organized in separate, independent, automonous teams and as a result each part of their music player and backend infrastructure is a small component that provides services to other components and consumes services from other components.
  • Amazon only builds services
  • Systems that you build today are going to affect your ability to evolve your organization in the future
  • don’t just sit together, communicate together
  • cultivate a growth mindset, if we are less proud as a community and as individuals, we will be more effective

Very illuminating, thought provoking and interesting talk by Torbjörn Gyllebring who was a very engaging speaker. You can reach him on twitter and at his blog

You can even look at this video if you missed his talk:

We Leave in a Monoglot World, Let’s Go to the Polyglot Heaven

This was a great talk by Tomas Jansson with a ton of interesting content but which main theme was the fact that you can and should choose the best tool to perform the job at hand and combine all these best of breed tools to build your application. Not everything is a nail:

Swetugg, hammer that nail!

Cool stuff in this talk:

Lots of good stuff indeed. You can follow Tomass Jansson on twitter and at his blog.

Lunch Break On Entrepreneurship

During lunch there was an entertaining panel on entrepreneurship: how it feels to start and run your own company, things that you should be aware of, tips… There was a couple of seconds I feared it would become a sales pitch but it got back on track and it was pretty good as a whole.

Do you want to be an entrepreneur? Just do it dude, you’ve got nothing to lose (and don’t forget! Outsource your accounting!) :)

To Shoot Yourself On The Head With a ()=> and Die

Ok now I am starting to get tired of writing :) there is a high chance the next sessions will get a two-liner description.

Torbjörn Gyllebring on the offense again with another talk this time on the dangers awaiting behind an innocent lambda expression, behind LINQ and misunderstanding how to use sequences, querys and collections, and behind the not-knowing of whether operations are being performed in-memory or in the database. There were also unicorns.

He made a masterful use of LINQpad to illustrate these dangers through examples. You know the saying, an example is worth a thousand words.

An Introduction to MongoDB on the .NET Platform

Magnus Gudmusson did a good introduction to MongoDB and showcased the great support existing today in Visual Studio and .NET to build applications against this database. Following the same theme carried by the polyglot heaven talk it preached the use of NoSQL solutions when and where they fit the problem to solve better than relational databases.

As I side note I read this great introduction to NoSQL and the world of polyglot persistence from Martin Fowler and Pramod J. Sadalage that I cannot but recommend: NoSQL Distilled

UX is Not Magic

Ola Karlsson made a great case for User Experience: User Experience is not an art, it is a science, it is problem solving and as such can be addressed and must be a part of your software development processes. He then discussed the development of the UX field from its inception in the hands of Don Norman with User Center Design, into Agile UX and Lean UX.

The takeaways from this talk: UX is not graphic design, choose function over form or even better form must be in the service of function, strive to understand your users and purposefully THINK about what you are doing.

You can follow him on twitter and at his blog. He has also recently started his own consulting company focused on UX called users and code.

EPiServer On The Cloud

Henrik Fransas talked about how to bring EpiServer to the cloud through Azure Websites. I couldn’t see his presentation for which I will always be saddened.

You can follow him on twitter or at his blog where he writes a lot about EPiServer. He recently became an EPiServer EMVP. :)

Game On with Microsoft Azure Storage

Last but not least came Alan Smith with a great talk on how to use the diverse Microsoft Azure Services to support modern games and specifically the different options of Azure storage.

There was a ton of intersting things in this talk:

  • Traffic patterns in different services and how Microsoft Azure can be use to scale up and down on demand
  • Halo and Xbox using Microsoft Azure Service
  • Formula 1 and homebrew raspberry pi hack to gather telemetry information from a car and storing it in Azure
  • Using telemetry data to learn how to drive or highlighting/pinpointing dangerous areas within roads
  • Things to do and not to do when using table and blob storage
  • The Global Azure Bootcamp that will be held on April 25th anywhere near you and how cheap Azure services are

You can follow him on twitter, at his blog CloudCasts where he has a ton of content on Azure and at Pluralsight where he makes courses on Microsoft Azure.

Again there was a lot of sessions that I couldn’t attend to because of that problem of lack of omnipotency and omnipresence but please take a peek at swetugg’s website and see if you find something that you like.

Thank you very much to the organizers, sponsors and participants! Great job!

Bye! Until the next one! :)