This video below from Kevlin Henney really sums up the way I feel about how software development works, or sometimes does not. Kevlin also dips back through the history of computing touching on things I experienced first hand when they were new. Which adds a fun and very relevant dimension to a fantastic lecture.
Watch it, its great.
GeeCON 2014: Kevlin Henney – Worse Is Better, for Better or for Worse
I went along to an Agile Testing in Finance session run by Gojoko Adzic. The session was entitled: Executable Documentation – The Remix. Always a good gig attended by intelligent folk who realised that there is much more to be done to mature the process of software development.
You can find some detail on Gojoko’s website and this post is not so much about the tools presented, but in a nutshell:
Chris Agmen-Smith talked about Pettswood, an attempt to make executable documentation accessible by business users.
Matt Wynne – Relish, an extension to the cucumber project to bring the specifications alive on a very presentable html report.
Cirilo Wortel – Xebium, Which I thought of as bringing FitNess up to date and giving it a modern UX.
So my take on all this? It seems to me that the most important thing is forming a good team around a key business user. That client team should have people from development a product owner, possibly a BA and at least one senior business user. Bring the requirements discussion, and priority right out into the open involving the business as much as possible.
Then tools like the ones discussed this week can be used to bring alive the tests in a format that the business can view and edit. Which just leaves the easy bit…. implementation. (I jest)
If you can’t form a Client team, there is little point exploring BDD or live documentation, as the important part is that conversation and interaction that the client team has over the specifications.
This Video by Adam Wiggins of Heroku (the guys who wrote their own cloud platform) is a brilliant introduction to the concepts behind a cloud platform. It’s an excellent way to come quickly up to speed.
This page has a breakdown of the main nosql technologies and a feature comparison. Very helpful to reduce the number of projects to investigate further.
Links to some of the technologies mentioned to save you searching.
Sometime back now I posted an article on building .NET and dependency management.
I have come to learn that there are several ways. Here are my favorites.
- Build your own maven plugin to build .NET projects. Package 3rd party products as zips and put them in maven. Write a plugin that reads solution and project files and calls MSBuild with the appropriate flags. Advantage, maximum flexibility. Disadvantage, lots of effort.
- Use the existing maven-dotnet-plugin. Advantage, does a lot for you including various types of test and coverage systems, plus it can run sonar. Disadvantage, Hard to get it to work on complex silverlight projects. In fact hard full stop. The docs are not great.
- Use NuGet. Advantages, it has .NET pedigree and Microsoft Backing. Adoption amongst .net developers is probably an easier sell than a java utility. Disadvantages, Very early days for the project, as yet unproven.
- Finally npanday. Advantages, nice integration with Visual Studio. Disadvantages, very hard to get it to work with silverlight. Impossible in fact as MS have kindly removed the command line baml compile utility.
So in summary. There are ways to do this now. There is hope for .NET dependency management!