Competitors get ready…

Posted by Conrad Benham on December 05, 2008

In the next session we’ll go through the Wine Bar solutions developed by competitors signed up to the Competition Jam. We’ll take a look at what worked well and identify areas that could perhaps be improved. The floor will be open for discussion to allow people to offer suggestions and insights in what they do on their projects.

Without giving too much away, this session will give participants insight into structuring a project so it is easy to maintain, extend and ensure code quality. I will also introduce some technologies and paradigms we haven’t yet explored , in my own solution to the problem with a view to covering them more fully in future sessions. While the focus of this session will be on the code we’ll also have a look at some of the process aspects involved with Agile.

After going through all of this I’ll announce the competition winners.

Prizes for the night will be sponsored by JetBrains.
Pizza will be sponsored by Pinpoint Asia.

When: 7:30pm, Thursday 11h of December 2008
Where: ThoughtWorks Hong Kong Office
Address: Room 1304, 13/F, Tai Tung Building, 8 Fleming Road, Wanchai
Map: ThoughtWorks Hong Kong

Code Jam: Automated Unit tests with Mocks and Stubs 1

Posted by Conrad Benham on October 02, 2008

According to Wikipedia “…unit testing is a method of testing that verifies the individual units of source code are working properly. A unit is the smallest testable part of an application.” Doing this can be difficult when we are unit testing code on boundaries. A naive attempt to unit test a system boundary such as a database would actually mean communicating with a live database directly. This means the database must exist, all tables created and all data must be in a known state prior to the test commencing. Once the test is complete (with a success or failure) the database must then be returned to it’s original known good state. Not only is building the infrastructure required to do this potentially time consuming, so too is the actual execution of such a test. Further, such testing is really no longer a unit test but an integration test, it certainly defeats the goals as stated in the above mentioned extract.

Enter mocks and stubs. In this Code Jam we’ll look at some techniques we can apply to reduce our reliance on external systems. This will be through the application of mocks and stubs. We’ll identify the differences between the two approaches and when one should be used over the other. We’ll also look at a variety of open source mocking frameworks. If time permits we’ll also look at how mocking helps layer an application to aid in low coupling and high cohesion (Vidor Hokstad has written a nice blog entry on this).

So, come along and learn some of the concepts of mocking. While this code jam is aimed at developers anyone who is interested should come along. While it is not necessary, as we tend to pair in these sessions, it would be helpful if you could bring a laptop along if you have access to one. If you don’t have a laptop don’t let that stop you from coming along.

When: 7:30pm, Thursday 9th of October 2008
Where: ThoughtWorks Hong Kong Office
Address: Room 1304, 13/F, Tai Tung Building, 8 Fleming Road, Wanchai
Map: ThoughtWorks Hong Kong

Build Jamming

Posted by Conrad Benham on July 23, 2008

Builds are a fundamental part of any project. They are the bedrock of a project. Done well they make development and maintenance of a project easier. Done poorly and they can increase the time it takes to develop and maintain a project and even make development difficult. A well structured build will even help reduce defects by making continuous integration easier and by ensuring tests are run during each integration cycle. A good build will also aid in the deployment of a system.

In our next Jam we’ll look at build systems. Identify what makes a good build system, looking at how they might be structured for best practice. We’ll also look at various tools that support builds. Specifically we’ll look at tools that support continuous integration, prevent code duplication, bug detection and style checking amongst other tools. This Jam will include both a theoretical and a practical part. Some of the practices introduced in this session will form the basis to some future code jams.

So, dust your laptops off and come along. If you don’t have a laptop (or it doesn’t work) then come along anyway, we’ll work in pairs so there should be every opportunity for you to team up with someone. Don’t forget your laptop charger!

Drinks will be provided.

When: 7:30pm, Tuesday 29th of July 2008
Where: ThoughtWorks Hong Kong Office
Address: Room 1304, 13/F, Tai Tung Building, 8 Fleming Road, Wanchai
Map: ThoughtWorks Hong Kong

Code Jam 2 1

Posted by Conrad Benham on May 09, 2008

Hot on the heels of the “Will Agile work for you?” presentation is our second code jam. In this session, Tom and I will dust off the projector and give a short demonstration on pairing with particular focus given to Test Driven Development. We’ll also try working under time constrained mini-iterations. Duly, we’ll supply the problem specification on the night so you don’t have any preconceptions. This session will be good for developers of all levels. If you are a seasoned TDDer come along and we’ll prepare something of a more challenging nature.

When: 7pm until whenever, Monday, 19th of May
Where: Gecko Lounge
Address: LG/F, Ezra Lane Lower Hollywood Road, Hong Kong
Directions: Gecko is on Ezra Lane which runs between Pottinger St and the Escalator. Ezra lane is below Hollywood Road. If you enter off Pottinger Street you will find the lane is just opposite Soda Bar. If you enter the lane from the escalator you will find it opposite the Hot Dog shop. If you have any problems finding it call the Gecko Lounge on: 2537 4680
Map of Gecko