Why we suck at estimation

Yesterday it happened again. On my Twitter timeline. Someone angrily posted “developers should finally learn how to estimate better.” Another case of work not being done at the end of a sprint. Or worse, another project that didn’t make its deadlines.  There isn’t a single developer out there who hasn’t run into similar experiences.  After another deadline is not met, […]

A glimmer of hope

In September 2003 I visited the friendly city of Arhus in Denmark to deliver a talk at the JAOO conference. At that time, JAOO was an established software development conference, with well-known speakers such as Martin Fowler, Kent Beck, Linda Rising, and Erich Gamma. And me. When I arrived at the venue, one of the organizers offered to give me […]

Monoliths, microservices and boiling frogs

Microservices is a hot topic. There is a plethora of opinions, conference talks and blog posts about microservices. I started doing microservices myself three-and-a-half years ago, when I was designing a system for an insurance company. Since then I have done many talks on the topic, published articles and presented training courses. Usually, I ask my attendees if they have […]

Features en kwaliteit

Stel. Je wordt wakker met een goed idee. Je pakt je laptop en begint te programmeren in de taal die je het beste ligt. Visual Basic for Applications. PHP. Javascript. Niet heel veel later is je applicatie klaar. Je toont de applicatie aan een vriend wiens probleem ermee is opgelost. Je eerste tevreden klant is binnen. Vervolgens geef je her […]

Verplicht leuk doen

Verplicht leuk doen Enkele maanden geleden had een goede vriend een kennismakingsgesprek bij een gerenommeerde webwinkel. Het grotendeels blauw ingerichte kantoorpand viel op. Vrijwel alles was gelabeld. De koelkast, de snoepautomaat, de koffieautomaat. Als een aanleunflat van een Alzheimer-patient. Maar er was meer. Alle labels werden ook nog eens begeleid door kwieke one-liners. Allemaal onder het motto: kijk eens hoe […]

Agile beyond refinements

Even though the year is still young and still cold, I have already presented two training courses. One on microservices for a transportation company. And one on agile for teachers at a high school who want to adopt agile techniques to their classes. Although the topics were quite different, attendees at both courses had a similar background in doing agile: […]

Yes, microservices implies a distributed system

In September 2016 I will do the closing keynote for SwanseaCon in Swansea, Wales. Although my talk will evaluate agile after twenty years, InfoQ interviewed me preceeding the conference on one of my other favorite topis, microservices. Here’s the answers to InfoQ’s questions. InfoQ: What are the biggest problems that organizations have with monolithic software products? Monolithical systems, written in […]

Why the project metaphor doesn’t fit software development

In 2009 I hired a building contractor to build a house. Together with an architect and the contractor I worked out the features. We wanted a basement, we carefully picked the materials, the location of the windows, the placement of the rooms, the bathroom, the attic and everything the contractor needed to come up with a price and a delivery […]

What is agile architecture anyway? The red pill and the blue pill

Having coached many teams, projects and organizations on both software architecture and agile, one of the questions I’ve been asked a lot over the past fifteen years is: what is agile architecture?  Unfortunately, there is no easy answer to this question. There is no simple truth out there. What agile architecture really is considered to be is different from organization […]

Microservices Q&A

In September I will run a masterclass on microservices at Luxoft in Moscow, Russia, see www.luxoft-training.ru/master-class/sander. In preparation of this masterclass, here’s a short Q & A on microservices. Is it worth applying microservices? Q: In your article Microservices. The Good, the Bad, and the Ugly you described different aspects of development. Readers may think that using a microservices architecture […]

Microservices. The good, the bad and the ugly

Back in 1988, when I was first employed by a company for writing software, the world was fairly simple. The development environment we had was character-based, the database was integrated and traversed with cursors, and we built a whole new administrative system covering everything but the kitchen sink. It took us five years to complete the project, basically because the […]

Limit Tags to Labels

Recently we’ve introduced Tags for work items on www.speedbird9.com . You can add tags either from the menu when you create an item in Work Items | New, or from the Edit Work Item feature. Tags are replacing Labels because we’ve received many requests for allowing multiple Labels or Tags with work items, whereas it was only possible to add […]

Failing fast

There is an intriguing question that pops up frequently in organizations developing software in projects: when is a project successful? For sure, one of the most (mis)used resources on the subject is the Standish Group. In their frequently renewed CHAOS Report they define a project successful if it delivers on time, on budget, and with all planned features. For a […]

Agile anti-patterns at CodeMotion Madrid

Many organizations turn towards agile to escape failing traditional software development. Due to this increase in popularity, many newcomers enter the field. Without the necessary real-life experience but proudly waving certificates from two days of training. During a challenging talk I did at the CodeMotion conference in Madrid, in October 2013, I tried to show what happens to projects that […]

Agile doesn’t deal with x

While writing this post, I am on an airplane to Helsinki. Nice sunny city. And lucky for me it is about 50 degrees Celsius warmer than the last time I visited it. In Helsinki I will have look at a couple of projects that use a distributed agile approach, but fail to deliver on-time and on-budget. When I get back […]

Offshore Agile Software Development: Does It Work?

Due to the ever-rising demand for seasoned software developers in the nineties, offshore software development became a compelling alternative to in-house development for many organizations. Despite the cultural, language and time differences and the geographical distance involved, more and more projects were executed with offshore development and testing, benefiting from lower rates of cost and the high availability of people, […]

The changing interpretation of agile

For as long as I can remember I have been evangelizing, promoting, practicing, coaching, and training agile. For me as a developer the goals for applying agile approaches and techniques are pretty clear. I want to make better software. Higher quality, better suited for use, and possibly also faster. And from my own empirical evidence I can certainly state agile […]

Validating sending mail messages in smart use case unit tests

When building applications with the Adf framework, smart use cases are implemented in task classes. Quite regularly mail messages are sent from tasks. To do so we use the MailManager class. Using this class mail messages are usually build up as in the following code example. To send mail messages, the MailManager plugs in an implementation of the IMailProvider interface. […]

Adding specific validation messages to value objects

One of the requests we often get in projects that use the Adf.Net framework is to be able to get specific validation messages, especially when during persisting panels to domain objects, properties that have value objects as their type fail to persist, usually during call such as below. protected void lbOpslaan_Click(object sender, EventArgs e) { BindManager.Persist(Persoonsgegevens, panelPersoonsgegevens); MyTask.OpslaanPersoonsgegevens(); } I […]

Agile business intelligence

Het besparen van kosten is een veelgenoemde aanleiding voor Business Intelligence (BI) projecten. Zo wilde een bekende overheidsinstantie weten hoe effectief de bestrijding van uitkeringsfraude was. Het onderzoeken van mogelijke fraude kost de instantie geld, maar het vinden van fraudeurs levert echter direct geld op. En dus ging zoekt de instantie naar de optimale verhouding tussen het aantallen onderzoeken en […]

Illustrating the Dit Is Agile book

This month I hope to round off the work on my new book Dit Is Agile (in Dutch). Last reviews are coming in, and I’m very happy with the results of my hand-drawn illustration for this new book. The idea of drawing the illustrations by hand instead of using PowerPoint or Visio is working out fine, and also allows me […]

What could the Dutch football learn from agile?

After a series of very disappointing games the Dutch national football team was eliminated during the preliminary rounds of the European Championships. Comments weren’t mild. The most heard comments largely focused on the lack of team spirit and mental fitness. Not uncommon to Dutch national football teams. Earlier this week an interesting broadcast of the Dutch sports program Studio Sport […]

Agile anti-patterns. Yes you agile projects can and will fail too

Over the years I have noticed a lot of agile anti-patterns during projects. Wrongly used agile approaches, dogmatic use of agile approaches, agile-in-name-only. Recently I have presented a talk at a number of agile and software development conferences that demonstrates patterns of agile misuse. These conferences include Agile Open Holland (Dieren), Camp Digital (Manchester), GIDS (Bangalore), ACCU (Oxford) and Jazoon […]

How to kill your estimates

It must have been about twenty five years ago. I was working for a large international consultancy firm. One of the reliable ones. The ones that you would think that had everything worked out. But I guess this was merely the product of my imagination. At one time two colleagues and I were working on an estimate for a bid […]

Evolving agile

Without any doubt agile is the biggest evolution in software development approaches since the introduction of waterfall back in the early seventies. And yes. Agile is an evolution rather than a revolution. The best practices and techniques in agile didn’t just pop-up. Rather they emerged from years of hard-working, real-life experience in succeeding and failing in projects. So working in […]

A short notice about object relational mapping framework generated queries…

I guess object relational mapping is an accepted paradigm for exchanging data between an object oriented domain layer and underlying databases. For most applications object relational mapping is more than sufficient. And if not, perhaps command query responsibility segregation might contribute well to your solution. Being a more than frequent user, this very short blog post is not meant to […]

Added GetOrDefault() extension methods for state providers

In the framework ADF.NET state can be temporarily stored by calling the StateManager. The StateManager is an static façade that holds three different instances of the IStateProvider interface. These instances are: Personal. State that is stored somewhere for personal use of the current user of the application. Usually in web applications an implementation is plugged in to use the Session […]

Flower-Power Agile Fluffiness

To all the dear people in the agile community and to the faint-hearted: this will not be an easy blog post. There was a time when being a software developer was a decent craft, requiring decent craftsmanship and yes also a lot of creativity, some communication, some collaboration. Still it was a decent craft. The waterfall-ish methodologies we used weren’t […]