Donut-driven development

As a software developer I have been exposed to many different methodologies for managing a project and writing code:  test-driven development is one of the most popular, however there is behaviour-driven development, model-driven development, feature-driven development, and probably a whole lot more.  My current team is not dogmatic enough to force one of these methodologies down everyone’s throat and declare it The One True Way To Write Code, however we do utilize a methodology all our own: donut-driven development. Donut-driven development is a simple concept:  if a developer’s code submission causes one of the team’s automated check-in or nightly builds [... read the rest ...]

I started dabbling with my Web Critters project again yesterday, and had some fun analyzing early “meat eater” strategies.  It looks like successful early-run omnivores and carnivores are cannibalistic, whereas those that evolve later in a simulation tend to specialize in predating species other than themselves.  This makes a lot of sense.  It’s easy to eat your own kind, however you run the risk of eating yourself to extinction, whereas it’s tougher to find a stable second species to chew on, but once you do you can expand without worrying about your own population quite as much. It’s little insights [... read the rest ...]

If you have ever worked on a project of any size you can probably relate to this list: Classic Mistakes Enumerated. Although the list is software-oriented, I am sure that similar problems occur in all fields. Some of my favorites: #8: Unrealistic expectations. One of the most common causes of friction between developers and their customers or managers is unrealistic expectations. In Case Study 3-1, Bill had no reason to think that the Giga-Quote program could be developed in six months except for the fact that the company needed it in that amount of time. Mike’s failure to correct that [... read the rest ...]


Web Critters Comments Off
Feb 172011

I haven’t posted an update on the Web Critters project since October 16th last year, in large part because I have done precious little development on the code base since then.  My last commit was January 25th, and the previous one was all the way back on November 2nd.  There are two main factors that combined to grind work to a halt:  Christmas season, and an office shuffle at work.  The holidays need no explanation, however the office move is a little more interesting.  Up until late last year I had a single office, and so felt comfortable dabbling with [... read the rest ...]

Building the perfect killer

The last couple of weeks of Web Critters development have been among the most fascinating and intellectually challenging to date.  After nailing down the implementation of a level one ECHO simulation and observing the agents in my little complex adaptive system in action I set about trying to understand exactly what they were and how they acted. The first step in that process was to model the concept of a “Species” that could stand apart from the actual agents.  My first implementation of species, while technically correct, absolutely annihilated the performance of the simulation and leaked memory like a sieve.  [... read the rest ...]

Of overpriced handhelds, relativity, and an old friend

My week off is coming to an end, and sadly my home reno project will not be done on time, which is a pain because now it will stretch on for weeks instead of just a few more days.  While I started the week playing a bunch of game demos in my down time, I found myself increasingly obsessed with coding my Web Critters project as the days slipped by.  In particular, I found myself puzzled by the simulation’s inability to produce sustainable carnivores….. but more on that soon. While I have nothing substantial to say on any specific topic, [... read the rest ...]

Sep 182010

I have added the source code for my Web Critters project to github.  Anyone interested in keeping up with my progress at a lower level than what I write on my blog can feel free to explore the source code at their leisure.  If you choose to follow the project on github, I believe that you can choose to receive emails whenever I push new code up to the repository, and even dive in to see exactly what was changed. Also, feel free to download the full source tree and build the application on your own.  Be warned:  you’ll need [... read the rest ...]

On the cusp of life

This week I have been spending most of the time that I usually set aside for blogging to bolt together a basic interface for my Web Critters test implementation.  Since I am not a GUI guy, the end product took far longer than expected and is rather utilitarian.  One of these days I will have to cook something up that allows for easy visualization, but for now I have lists and text boxes. Click to enlarge From left to right the GUI contains: controls to customize a new simulation, a list of the locations within the environment (currently a grid), [... read the rest ...]

Aug 102010
The agent conundrum

Have you ever experienced one of those moments of clarity when you realize that one of the fundamental assumptions that you had been making is false, and that if you’re going to have to do a lot of work to make up for your mistake?  If so then you can relate to what has been going on with the Web Critters project over the past few weeks. When I last wrote an update I was on a roll, pushing through the final stages of a level two complex adaptive system (or so I thought) with my generic CAS engine.  I [... read the rest ...]

Think deeply about your code

Software development is full of choices:  what programming language(s) will you use, what tools will support your effort, what methodology will you follow, which best practices are applicable to your project space, and so on.  Developers, who are primarily geeks by nature, are wont to latch onto a few key technologies and ideals and then defend them to the death, advocating for their use at every turn.  However important decisions like toolset, flavor of syntactic sugar, and choice of development lifecycle are, these bullet points are meaningless if you approach your job in the wrong way. In my professional career [... read the rest ...]

© 2004-2010 - Systemic Babble is created and maintained by Andrew Anderson. Suffusion theme by Sayontan Sinha