Some stuff about Web and .NET development
RSS icon Email icon Home icon
  • Techdays 2010 - Day 2 (1 april) : my notes

    Posted on April 22nd, 2010 Thibaut No comments

    And here’s the second and last part of my notes taken at Techdays 2010.

    Session 1 - Unkeynote
    By Scott Hanselman

    • A quick recap of ASP.NET 4.0 new features, such as :
      • Clean HTML : specify client IDs (better for JS and CSS)
      • ViewState improvements (enable it just for some controls, …)
      • Charts
      • Cache extensibility : HDD based caching
      • Customized Web.Config (staging, prod, …)
      • Clean URLs for WebForms (REST)
      • Client-side binding in JS
    • MEF : Managed Extensibility Framework (design applications as components able to interact with others)
    • Parallel Computing : “threading for the masses”, so developers can focus on the business and not on concurrency problems

    Session 2 - Introducing MVVM
    By Laurent Bugnion

    • MVVM stands for “Model - View - ViewModel”
    • Advantages :
      • More testable
      • More maintainable
      • Blendability (ability to be edited in Microsoft Blend)
    • A lot of code examples
    • Laurent Bugnion has created the MVVM Light Toolkit, intended to accelerate the creation and development of MVVM applications in WPF, Silverlight and in the Windows Phone 7.

    Session 3 - Visual Studio Tips
    By Sara Ford

    • Sara is author of a book about Visual Studio Tips, such as shortcuts, productivity enhancement tips, … And the session was a sample from this book
    • You can find the tips she’s given on her dedicated blog entry

    Session 4 - What’s new in ASP.NET 4.0
    By Fritz Onion

    • Javascript intellisense + snippets
    • Routing (ASP.NET MVC URLs style)
    • ViewState improvements (ability to enable/disable it for a particular control, disable it application wide, …)
    • Ability to specify a ClientID (which is better for Javascript and CSS, no more need to use “ends-with” selectors
    • SessionState : store the session of the user in DB
    • Meta tags : ability to specify them code behind
    • Charts : a large collection of charts (including some based on Dudas charts)
    • QueryExtender : create filters for data that is retrieved from a data source, without using an explicit Where clause in the data source

    Session 5 - Software testing with Visual Studio 2010
    By Brian Keller

    • Software bugs cost billions of $ each year in the U.S
    • Today, still too much manual testing (about 70%)
    • Introducing Testing Center : interface to configure test plan :
      • Type of logs to produce
      • OS or browsers to test with
    • Test recording : user is performing actions being recorded and can be replayed later => about 20x faster than manual testing
    • If a test case fails : video to show what happened
    • Intellitrace : listing all the events and processes done by the app. Very useful to find quickly what went wrong (instead of placing breakpoints, doing some guess work, re-running the app, …)

    Session 6 - ASP.NET AJAX 4.0 : what’s new
    By Fritz Onion

    • Fritz started by announcing that Microsoft decided to make jQuery the primary way to develop AJAX apps using Microsoft technologies (officially announced by ScottGu at MIX in March)
    • As a consequence, no more effort will be put by Microsoft in the MS AJAX library
    • No notes to list here as the session was obsolete following that announcement

    Share/Save/Bookmark

  • Techdays 2010 - Day 1 (31 March) : my notes

    Posted on April 19th, 2010 Thibaut No comments

    I finally take the time to blog my notes about the 2010 edition of the Techdays, after some pretty busy weeks of work dealing with deadlines.

    Session 1 - Developer keynote
    By Anders Hejlsberg, Hans Verbeeck, …

    • Evolution of computer languages (from Turbo Pascal to now) and evolution of hardware (HDD capacity : 100 000 x, RAM : 10 000 x, CPU : 1 000 x)
    • Evolution of tools : debugger, profiler, huge frameworks, …
    • 3 major trends today
      • Dynamic
      • Concurrent
      • Declarative (more on WHAT instead of HOW)
    • Multi-core CPUs : need to develop accordingly (Parallel Linq, Task Parallel Library, …)

    Session 2 - Silverlight 4 & WPF 4
    By Gill Cleeren and Katrien De Graeve

    • Silverlight 4
      • Printing : visual tree to select what to print
      • Drag & drop : even from an external app (eg : drag an image from the explorer to Silverlight). Also works on Mac
      • Right-click support
      • Webcam & microphone support enabling powerful applications : scan barcodes with the webcam, …
      • RichTextBox : rich formatting (fonts, colors, images, …) into a TextBox
      • Out of browser enhancements : notification windows with custom look, complete control over the window (change the size, no borders, …)
      • Trusted out of browser apps : go beyond the sandbox
    • WPF 4
      • Visual Studio 2010 : built onto WPF
      • Better tooling : similar to WebForms design
      • Support for Win7 : multi-touch, ribbon, taskbar manipulation, …
    • When to use Silverlight or WPF ?
      • Tip of Gill Cleeren : “make Silverlight the default choice for business apps unless you require specific WPF features”

    Session 3 - C# 4.0 and beyond
    By Anders Hejlsberg

    • Dynamic keyword : be static as much as you can (compilation checks, performance, refactoring, error checking, …). dynamic should be use to simplify the syntax (replacing invoke, binding flags, etc)
    • Optional & named parameters : avoid multiple overloads, supply default values. Better experience with interop : no more 15 “missing” parameters
    • Co & contra variance : to simplify, developers can now work easier with collection types, and have less problems with linq queries
    • Compiler as a service : API of the compiler (meta programming, language objet model, …). Introduction of the new CSharpEvaluator class

    Session 4 - ORM with entity framework in .NET 4.0
    By Kurt Claeys and Hans Verbeeck

    • ORM : working with relational tables like objects in memory
    • Why use it ?
      • Productivity
      • DB independance
      • Hides complexity, uniform way of working
    • Entity framework is a Microsoft strategic technology (they use it in Reporting Services), which is a sign that they bet a lot on it
    • 2 ways of working
      • Model first : DB doesn’t exist yet, design classes and generate SQL code from it
      • DB first : DB already exists, generate classes from it

    Session 5 - ASP.NET MVC 2 : ninja black belt tips
    By Scott Hanselman

    • First, Scott gives us a tip to avoid repeating the same code : use T4 (text templating) to automate it (related article)
    • Hybrid apps : you don’t have to choose between ASP.NET Webforms & MVC. Ex : codeplex is written with both, some parts being exclusively WebForms or MVC
    • Then, a lot of demos…

    Session 6 - Building Windows Phone apps with Silverlight
    By Giorgio Sardo

    • A lot of demos in this session about what can be done with the phone (layout rotation, custom styling, …)
    • To summarize, a citation from the speaker : if you’re a Silverlight developer, you’re a Windows Phone developer

    And that’s it for the first day ! See you in a next post for my notes about day #2 ;)

    Share/Save/Bookmark

  • [FR] DotNetHub : C# 4.0 et les améliorations à la BCL

    Posted on March 28th, 2010 Thibaut No comments

    Bonjour à tous,

    Ci-dessous, vous trouverez en vidéo la conférence de la précédente édition de DotNetHub. Celle-ci, présentée par Pierre-Emmanuel Dautreppe, abordait C# 4.0 et les améliorations à la BCL.

    Plan de la conférence

    • Co & Contra Variance des types génériques
    • Paramètres nommées et optionnels des méthodes
    • Types dynamiques
    • Simplification pour l’interopérabilité COM
    • Améliorations apportées à la BCL (Base Class Library)

    1ère partie

    2ème partie

    Notez également que DotNetHub aura un stand aux Techdays cette fin de mois, n’hésitez donc pas à passer pour vous renseigner, rencontrer ses membres ou devenir sponsor. A bientôt ;)

    Share/Save/Bookmark

  • [FR] DotNetHub, le UserGroup .NET/Agile francophone

    Posted on January 17th, 2010 Thibaut No comments

    DotNetHub

    DotNetHub, le tout nouveau UserGroup francophone en Belgique, est le résultat du projet initié par 3 de mes collègues (Pierre-Emmanuel Dautreppe, Norman Deschauwer et Thierry Thoua) en association avec d’autres professionnels de l’informatique. Le but de ce dernier est double :

    • Pallier l’absence de UserGroups francophones en Belgique. Le premier UserGroup belge, VISUG, se rapprochant toujours plus de la partie nord du pays, l’initiative est plus que la bienvenue
    • Proposer en plus d’un pôle technologique (.NET) un pôle méthodologique consacré à l’agilité (Scrum, XP, …) par l’organisation de dojos, entre autres

    Pour la première session, DotNetHub aura le plaisir d’accueillir Peli De Halleux, un petit belge travaillant désormais pour Microsoft à Redmond. Il vous présentera Pex, Moles & Stubs, des outils de tests unitaires pour .NET.

    Pour plus d’infos sur la session, c’est par ici. Pour s’inscrire, cela se passe par là.

    Bonne session ;)

    Share/Save/Bookmark

  • Visug summary : Modeling that works with code

    Posted on November 15th, 2009 Thibaut 1 comment

    Visug

    Last Visug edition, animated by Marcel De Vries from InfoSupport, concerned modeling with Visual Studio 2010. Note before we start that all of this is only available in the ultimate edition of VS 2010.

    Overview

    • Why we use models
    • Models first approach
    • Code first approach
    • Conclusion

    1. Why we use models

    • Diagrams for communication
    • Diagram = viewpoint on a model
    • Model use is challenging because :
      • Many interpretations of the same diagram
      • UML available but people uses a few diagrams only (ex : use cases)
    • Models become stale because :
      • Implementation will be different from the model
      • Maintaining diagrams takes time & effort
    • Ultimate goal : run a model (Oslo vision), from a metamodel store (data repository)

    When to create a model ?

    • It’s about communication, so create only models that serve a purpose
    • Create only models that differ from the normal case

    Two approaches

    • Models first
    • Code first

    2. Models first approach

    Scenario : you start a project and need to define the solution you’re going to build

    • Requirements analysts : use activity diagrams & use cases to outline functionality
    • Architects : build logial diagrams to outline required architecture to meet customer demand stated in the requirements
    • Testers : use the diagrams to do its test analysis based on the specified requirements
    • Developers can use the diagrams done previously to materialize the projects

    => Models are used to communicate throughout the team about what we’re going to do

    In Visual Studio 2010 Ultimate Edition :

    • New project type : modeling project
    • Support for UML 2.X diagrams
    • Other new types of diagrams : Layered diagrams & DGML diagrams

    Diagrams can be generated from code. The speaker uses it to generate sequence diagrams for code reviews. Note that those diagrams are plain XML files but it’s recommended to manipulate them via the API (cause in a next version, maybe Microsoft is going to change the format).

    3. Code first approach

    Scenario : maintenance of existing projects.

    • Developer can generate diagrams to gain insights on code dependencies
    • Architect can find architecture patterns
    • Architecture explorer helps discover and understand how a system works

    Layer diagram

    • Used by the architect to define the architecture
    • Classes and namespaces are mapped to layers in the diagram
    • Details the intended design
    • Diagrams are very interesting to verify the architecture and enfoce it.
    • In VS2010, there’s a tool to validate the architecture. Ex : you draw 3 boxes (UI, BLL and DAL), you link (arrow link) the UI to the BLL and the BLL to the DAL, you drag/drop your projects into the correct box. You then click “validate architecture” and you get a report about what’s violating the dependencies defined by the arrows.
    • You can also use these diagrams to validate things such as code coverage in percentage for a given layer.

    DGML

    • Directed Graph Markup Language
    • Nodes
    • Containers
    • Links
    • Styles

    You can also create you own diagrams (Progression API). You code in C# the way you want to generate the diagram. Styles can also be defined. Ex : speaker coded a diagram with nodes that must appear green or red (styles) following the code coverage percentage. Can also be used to annotate existing diagrams.

    4. Conclusion

    • Models & diagrams primarily for communication
    • VS2010 supports both approaches : code 1st and models 1st
    • New innovations in models that work with code (DGML & layered diagrams)

    Also note that ScottGu is going to visit Visug in december so stay tuned ;)

    Share/Save/Bookmark

  • Visug : lightweight stubs & detours for .NET

    Posted on November 11th, 2009 Thibaut 1 comment


    Visug

    Peli De Halleux, a belgian guy now working at Microsoft Research (Redmond) came back in Belgium at the Visug to talk about the project he’s working on. Stubs, Moles and Pex form together a lightweight framework to test .NET applications.

    Stubs

    Stubs is a stubbing framework solely based on delegates. Various examples can be found here.

    Moles

    Here’s an example of what you can accomplish with Moles, allowing you to replace any .NET method :
    Moles

    Pex

    And here, a diagram showing at a high-level view how Pex works :

    Pex

    Pex is an automated whitebox testing tool for .NET. From your code and parameterized unit tests, test code is automatically generated in C# and test results can be seen in the “input/output table”.

    Project-related resources

    I could copy-paste the great description of the project off the official website… But I instead recommend to those of you who are interested in this to take a look at the following resources, explaining you what Stubs, Moles and Pex are all about in the details.

    Pex

    Have a nice reading ;)

    Share/Save/Bookmark

  • Dino Esposito @ Visug : C# 4.0 & testability

    Posted on October 17th, 2009 Thibaut 1 comment

    Visug

    This last 8th of October, Dino Esposito, a very well known figure in the .NET world, came to the Visug to talk about C# 4.0 and testability. Here’s a summary about the session :

    Software testability

    Code should ideally guarantee :

    • Visibility of the current state
    • Control degree at which code allows to send input data for testing purposes
    • Simplicity of the code results in more reliable test results

    Introducing the .NET 4.0 code contracts API

    The ecosystem at a glance

    1. Code contracts library
    2. Rewriter
    3. Static checker
    4. Contract reference generator

    1. Code contracts API

    3 basic types of contracts :

    1. Preconditions
    2. Postconditions
    3. Invariants

    Exposed via the contracts class (System.Diagnostics.Contracts)

    2. Rewriter

    • Translates contracts into code
    • Modifies MSIL instructions to place contracts checks where they logically belong
    • Executable is ccrewriter.exe

    3. Static checker

    • Examines code without executing it and tries to prove that all the contracts are satisfied
    • Lists unproven contracts to fix, otherwise you should debug or cover it with unit tests
    • Detects if there’s a possibility of contract violation

    4. Assembly reference generation

    • Extracts contract information from source code and returns an assembly with contract-only information
    • Used by rewriter & static checker
    • Executable is ccrefgen.exe

    Steps of a method

    1. Check validity of parameters & stats
    2. Do real work
    3. Check of existing works
    4. Update state accordingly

    Set up

    1. Add reference to mscorlib
    2. Contract must be specified in the body of the methods
    3. Contracts are not mandatory. You can do without

    Preconditions, postconditions and invariants

    Preconditions

    • Requires(bool condition)
    • Requires<TException>(bool condition) throws an exception if condition is not met
    • if-then-throw statements
    • RequiresAlways(bool condition) is like Requires but stripped off in retail builds

    Postconditions

    • Ensures(bool condition), condition must be true at the end of the method
    • EnsuresOnThrow<TException>(bool condition), condition must be true if exception is thrown. Allows for checks even if exceptional return arises (network error, stack overflow, …)
    • Helper methods
      • Result<T>()
      • OldValue<T>(T variable)
      • ValueAtReturn<T>(out T variable)

    Invariants

    • Invariant(bool condition), object-wide condition that must hold for the lifetime of the class
    • All invariants for a class are defined in one place

    Best practice :

    • Define invariants before implementing the class
    • Express the conditions under which the object is in good state
    • Could be hard to add them at a later time

    Assert & assume

    • At runtime, fully equivalent to Debug.Assert
    • Static checker attemps to prove any Assert, emitting a warning if it fails
    • Static checker treats Assume as always true, adds the assumption to its collection of facts

    Quantifiers

    • Used to iterate a check on all elements of a list
    • ForAll(…), true if condition is met by all elements
    • Exists(…)

    Interface contracts

    • Define a separate class for the contract because we can’t add code to interface memebers (no mixins in C#)
    • Link to the interface via attribute

    Contracts & inheritance

    Contracts are inherited by derived classes, regardless wether you invoke base class methods in overrides

    Code contracts & debugging

    • When failure, contract raises
      • ContractFailedException
      • ContractFailedEventArgs
    • No default handler (thrown everytime)
    • Register handler to ContractFailedException at startup (Global.asax for ASP.NET, Main method for WinForms)

    Contract failures & unit tests

    • You don’t want contract exceptions in unit tests
    • Rather want exceptions to be reported as tests failures
    • SetHandled() to let assume exception has been handled and SetUnwind() to clear the stack

    Summary

    • Code contracts as part of the design effort
    • Adds testability to classes & code
    • New API coming up in C# 4.0

    And one final important quote of Dino Esposito :

    “Testable code means that it exposes every significant part of it in order to check its correct behaviour”

    See you next time ;)

    Share/Save/Bookmark

  • ReMIX 09 @ Brussels : Summary

    Posted on October 7th, 2009 Thibaut No comments

    ReMIX

    This last 29th of September was organized at Kinepolis Brussels the 2009 edition of the ReMIX, which is a one-day summary of the MIX edition (held last March in Las Vegas).

    Two session tracks were available : the Web developer track and User Experience (UX) track. But before this, an introduction was given by some well-known people of Microsoft belgium.

    Introduction

    By Luc Van de Velde, Katrien De Graeve, Gill Cleeren, …

    Here are some key points of the presentation :

    • A demo of the Microsoft Web Platform Installer by Katrien De Grave. More info on her blog post about it
    • Demos of Silverlight 3 new features : smooth streaming, rich media capabilities, SEO & deep linking, improved performance, …
    • Zendster, the first belgian web hoster to provide smooth streaming for Silverlight
    • Companies (such as Elia) performing demos about their Silverlight apps for critical, line-of-business applications
    • A demo of SketchFlow by Arturo Toledo
    • Interviews of companies reflecting the important shift towards UX, which is given more and more importance
    • VTM news (a dutch television company) is using Surface, manipulating a newspaper as a support for presenting news but also to present election results

      Surface
    • A demo of the Surface application of Belgian Beer Cafe, featuring a wonderful background simulating beer liquid and providing infos about the beers you put on the table. Check out the video below :
    • The launch of WebsiteSpark, an Microsoft initiative for providing training, free licences for small companies, etc

    Session #1 : Prototyping with Sketchflow

    User Experience (UX) track
    By Arturo Toledo

    • No slides, live demo of prototyping an app using SketchFlow
    • More than a mockup tool, SketchFlow allows you to make it behave a real app (and used as is)
    • Effects, such as transitions, can directly be set easily in SketchFlow. No need to code to get everything working (although you can write some if you want to fine-tune some stuff)
    • The user (typically the customer) can test his app mockup as it’s a classic Silverlight application
    • Comments can be drawn on the mockups or feedback can be written in a column next to the mockup screens

      SketchFlow
    • The flow of the application can be designed visually, creating transitions by linking nodes representing pages

      SketchFlow
    • The creation of datasources is very easy in SketchFlow. Indeed, in a typical mockup, you need to create dummy data (lorem ipsum for texts, fake names or numbers for forms or grids, etc). Such data can be autogenerated by defining the type of data we want (ex: price, date, text, …), which is a great save of time

    Session #2 : Building Amazing Business Applications with Silverlight and RIA Services

    Web developer track
    By Brad Abrams

    According to Brad Abrams, the must-haves for a great app is :

    1. Professional feel
    2. Rich data query
    3. Validating data update
    4. Authentication
    5. Different views (of the same data)
    • A little Silverlight application was built in a RAD fashion using Entity Framework, featuring a GridView, a form to add/update/edit values and Regex attributes on the properties (code behind) for validations
    • A SiteMap of the app was provided in Robots.txt for indexing by search engines. Different views (html pages) were provided for search engines bots to parse the content of the application

    Session #3 : Creating Silverlight Experiences with Blend 3

    User Experience (UX) track
    By Arturo Toledo

    • An Adobe Illustrator file was imported in Expression Design (a character in a spaceship)
    • Showed then how to build a custom control (a button with glossy effects, mouseover growing animation effect without coding, …)
    • Custom button fires an event, starting a storyboard to make the spaceship fly on the screen
    • Timeline manipulations are performed to make the spaceship make a U-turn before flying back to its original position

    Session #4 : ASP.NET MVC Wisdom : building a real-world app in 60′

    Web developer track
    By Maarten Balliauw

    This session covered the following points in ASP.NET MVC :

    • Validation
    • Templated helpers
    • Security
    • Routing

    Slides of the presentation are available below and source code here

     

    Conclusion

    A very interesting event as you can tell, providing lots of news, demos and other stuff about RIA development in general. See you next year ;)

    Share/Save/Bookmark

  • Visug : framework design guidelines

    Posted on October 1st, 2009 Thibaut No comments



    The last Visug session was presented by Brad Abrams, Program Manager on the .NET Framework team at Microsoft, who shared with us guidelines about framework design. Member of the .NET Framework team since the beginning, his experience in the field is very valuable for architects and software designers, but also for developers who can highly benefit from a lot of good practices.

    Below, you can find slides of the presentation :

    View more presentations from brada.

     

    Have a nice reading ;)

    Share/Save/Bookmark

  • CITCON 09 @ Paris : summary

    Posted on September 27th, 2009 Thibaut 1 comment
    CITCON Some days ago was held the 2009 edition of the CITCON (Continuous Integration & Testing Conference) at Paris. As my colleages and I are working on a project using the eXtreme Programming methodology, we are always eager to share our experience and learn from others. Below is given a summary of this edition.

     

    The principle of organization

    For those who never went there, here’s an introduction about the principle : the first day, from 6pm to 9pm, everybody introduces himself and then everyone who wants to be speaker has to “sell” his topic to the public. A post-it is for each topic put on a shedule board and people vote for the ones they like. The day after, only the topics with most votes remain (similar subjects are often merged) and then people can choose which session that want to attend. A session is about 1 hour long and is very interactive : everybody can talk and share his experience. In total, 5 sessions are organized : 2 in the morning and 3 in the afternoon.

    Introduction

    Session #1 : Testing & “done”

    The purpose of this session, animated by our architect Pierre-Emmanuel Dautreppe, is to discuss about what to test and how (database, UI, everything) and when you consider your testing done. Here are some key elements of the discussion :

    • Cannot test everything
    • Test to limit the risks of the application
    • Ask the customer how he expects his application to behave. Then, write user stories accordingly (test cases)

    Done ?

    • Tested every user story in the app (at least the main ones)
    • For some people, it’s only about code coverage (ex : 80%)
    • Having generated enough information reflecting the quality of the product (test results as a control panel)
    • Tested every part of the API
    • When confident on the product quality (= ready to be shipped)

    Session #2 : Mock objects

    When to mock ? (cf VISUG session about Mocking)

    • External object (web service, DB)
    • Non deterministic objects (temperature, …)
    • Hard to reproduce situations (network error, HDD out of space, …)
    • Slow down execution (simulate long calculations)
    • When some objects are not implemented

    Other advices :

    • Try to mock the minimum possible
    • Some mocking frameworks allow to mock without coding interfaces (less need to code the application following the testing framework behind it)

    Session #3

    Developers & business people collaboration

    • Too often, business people are too far away from the implementation
    • A close contact should be kept with the customer. In the context of acceptance testing, it’s useful to define user stories
    • Important to make the project beneficiate from the knowledge of business people

    Top 5 reasons why teams fail with acceptance testing

    • No collaboration
    • Focusing on how and not on what
    • Tests unusable as live documentation
    • Expecting tests to be a full regression suite
    • Focusing on tools

    Session #4 : putting Selenium in its place

    Selenium is a web application testing system that enables you to record operations (while you manipulate the browser) and generate code in multiple languages (C#, Java, Ruby, …). You can watch a quick demonstration on the official website.

    After this introduction, one of the big cons of this approach (and also code-based approaches) was underlined : when the front-end changes, a lot of acceptance tests fail. Indeed, suppose that you have many tests for a single page (to cover different scenarios for example), if you change one thing, everything might fail. The point here was to propose a solution to this problem, abstracting common operations into activities.

    Activities are blocks of code, enabling top abstractions of recurrent actions on a web page. Thus, if something changes on your front-end, you modify one activity and not a whole bunch of tests. Unfortunately, no examples were given but you should get the idea anyway.

    Session #5 : 100 agile learning ideas

    This fifth and last session was more than a discussion, it was actually a little workshop where everyone had to imagine new learning ideas about the agile methodology. The approach was the following : we have products :

    • Coding dojo
    • Meetings
    • Pair programming

    And dimensions (characteristics of the products) :

    • Audience
    • Format
    • Involvment
    • Required material
    • Inspired on

    In fact, the audience was split in 2 teams. The first one had to find products and the second one dimensions. A matrix such as this one was then built :

    Audience Format Involvment Required material Inspired on
    Coding dojo Developers Numeric ++ Computers Martial arts  
    Meetings Developers and business people Open discussion + None None  
               

    After that, everybody was assigned a random value in each column and had to imagine what product could be created from that. For example, I got :

    • Audience : developers
    • Format : team
    • Inspired on : martial arts
    • Involvment : +++
    • Support : computers

    And created Best Pair, a situation where 2 developers are given conflicting instructions (such as opposing implementation alternatives) and must develop accordingly. The informations given are related to the same goal, but developers are not informed about that. They must communicate, keep their self-control (martial-arts inspired) to face the conflict and reach an agreement. The point here is to learn to work towards the same goal without staying blocked too long on concerns such implementation details. If the developers success in developing the application and resolve the conflict in a limited, pre-defined amount of time (ex : 1 hour), the exercise will be a success.

    Conclusion

    This was my first CITCON and found it interesting and original at the same time. The fact that participants are speakers at the same time enable rich discussions and return of experiences. Definitely not an event to miss if you’re working with (or interested in) agile methodologies !

    Share/Save/Bookmark