Avoid pull requests

Pull requests are a common way to integrate your changes in another repository or branch in an Open Source project. They allow the receiver of the pull request to easily view and review the changes you made. Pull requests are great, especially when your team is not colocated, but also in different time zones. It seems that their popularity has extended to enterprise projects as well, even when the team is co-located.

Beyond Event Storming

On 1st and 2nd of December, the last edition of Conferencia Agile Spain was held in Vitoria. I was part of the oragnisation and both as a organiser and as attendee I think it was awesome (post with some of the internals will come soon). I held a workshop about Event Storming there, which went great. Chris Matts did the opening keynote and he attended my workshop too. In the middle of the workshop he approached to me and told me: “If you want, after the workshop I can explain you how can you join Event Storming and Real Options.

Partial classification active pattern

Pattern matching is a powerful and amazing characteristic of F#. Actually, is so amazing that Microsoft is starting to port it to C#. There are different kinds of pattern matching. In this post we’re going to take a look at a partial classification active pattern that takes an argument and returns a value. As its name denotes, is a pattern that partially classificates what you match with it. That means that doesn’t try to define all possible options but just one.

Running NUnit3 tests using fake

When you have some unit tests developed using NUnit 2.x your FAKE script looks like something like this: Target "RunUnitTests" (fun _ -> !! (testDir + "/*.Tests.dll") |> NUnit (fun p -> {p with ToolPath = "packages/NUnit.Runners/tools/"}) ) But NUnit3 works slightly different. Instead of having a single NUnit.Runners package, that package references some other packages (runner, extensions, etc). One of those packages is NUnit.ConsoleRunner that has the exe inside the tools folder.

Deadlines are not that bad

In my current project we had a hard deadline: we had to go to public beta on August and finish the transition of all users to the new system by the end of August. When we knew those dates our first reaction was this one: Depending on the environment you work the reaction to these news are usually some combination of a lot of pressure from management, working a lot of hours, drop the quality of your code, hysteria, etc.

RPG Combat Kata

A couple of weeks ago I saw these tweets (in Spanish): Hoy en la ofi hemos empezado la mañana con la RPG Combat kata de @SuuiGD que hicimos en el #scpna :-D https://t.co/vsK0OucncD — Xabi Sáez de Ocáriz (@ziraco) June 22, 2016 @SuuiGD @ziraco a mi me flipó tanto que estoy haciendo la versión "Extended".si sigo así, le pongo UI y al store! ;) — Modesto San Juan (@msanjuan) June 22, 2016

Extracting information from your code repository using F# – Part 2: Basic statistics

In the previous article we've seen how to parse a git log file. We ended up having an array of commits: TODO: Raw content of a Gist file. Let's start extracting some useful statistics from it. The first thing that can come into our mind is to know how many commits we have done to the repository. That's pretty easy to do: As you can see, we are using the pipe forward operator (|>) and the Array.

Extracting information from your code repository using F# - Part 1: parsing the log file

I've recently read the excellent book Your Code as Crime Scene by Adam Tornhill. In this book, Adam explain several techniques to extract very useful information from the commits in the code repository to help you to understand your code, your dependencies and your organisation. If you haven't read the book, please do yourself a favor and get a copy as a Christmas present. On the othe hand, this week I've attended the fantastic Progressive F# Tutorials at Skills Matter.

Dealing with forms in ASP.Net MVC without using JavaScript

In the era of JavaScript it's a good idea to support users that aren't getting JavaScript enhancements, specially if you work for UK's goverment. If you are using simple forms you don't have any problems, but as long as you start adding complexity to your page supporting this scenario can be a bit tricky. Obviously your first thought should be: "Can I provide a similar experience using a less complex view?

XP Day 2015

Yesterday I attended XPDay 2015, an event organized by the people of the eXtreme Tuesday club. It was the first time I was there and it was great to share a day with such a bunch of talented people like Allan Kelly, Nat Pryce, Steve Freeman, Giovanni Asproni or Liz Keogh among others. In this time where a lot of people talk about agile hangover and say that agile doesn't work it's good to return to the origins and talk about eXtreme Programming.