Home avatar

Thoughts and code

Ruby

I would like to learn Ruby for .NET (I think it’s out there). But I am also addicted to BDD development style. Can anyone recommend a good book that will teach Ruby through testing?

Strict Mocks - Thoughts

Today we had a discussion about having strict mocks for all of our dependencies in code. Reason - to force the tests to serve as a safety net for production code. I will try to explain pros  and cons of this approach from the point of view myself is found.

Why not to have strict mocks all over the place?

  • Too much of intimacy with production code - test becomes the production code line by line
  • Painful refactoring - how many times the same code is invoked, etc
  • Behaviour Driven Development becomes impossible (single observation rather than multiple ones)

Why would one like to have all mocks as strict mocks?

Agile Stickies Board – Part 2 - Colors

In my previous post I talked about efficiency of whiteboard with stickies as a tracking tool for a project progress. During last iteration, our PM has suggested to “color code” features with different color stikies. Boy it worked great. Apparently, this is a great way to ease progress reading for a specific feature.

To make it possible, we put the name of the feature with the appropriate color sticky on the top of the whiteboard. The rest – picture will prove it.

BDD - AND Specifications

The current project I am involved in, we are using BDD style of testing, where our specifications (tests) are both designing force and documentation for the implementation. One of the interesting cases we are running into, is when we need to express some complex conditions. For example

When a component is asked to perform some action on some object

  • Should do A

  • Should do B

Then we add complexity by trying to look into what is going to happen when

Agile Stickies Board

While we are not yet in the era of “Minority Report”, a regular White Board and stikies are good 25022009100enough. This is how we started on our current project - the classic way. An interesting observation I’ve made while going through several attempts to track the progress of a project at several companies - an attempt to “modernize” stickies and get rid of the board. Ways are multiple, from virtualization of the board, to going back to a file based tracking (Excel/Word).

Am I Agile? No. Will I Be? Yes.

Being a developer for 8 years, I went through the classic path of a green newbie knowing nothing, to a more mature developer aware of the flaws, till the current stage where I realize that I wasted too much time on too many things that are not important, when important things are not new and shiny, but old and proved by the time. Waterfall, Spiral, Agile – all titles, what I want to share is the experience I had for the past a year+.

Baha’is in Iran

This is political, skip it if it’s not what you normally would like to read.

Today I learned about Baha’i leaders in Iran being charged for spying in favor of Israel, insulting religious sanctities and propaganda against the Islamic Republic. My reaction was – what a bull. Besides the fact that the country is running like a show, this type of accusation is just ridiculous. Where’s the logic? If someone would spy in favor of Israel, would they spread propaganda against the Islamic Republic? Don’t think so…

“Light Weight” Base Classes

Base classes are a touchy subject. Some might advocate for it, some will against it.

Personally, I am not a big fan of base classes. There are several reasons for that, but most important to me, is the baggage you get to carry around once extend a base class. Saying this, I’ve noticed, that a “light-weight” base classes make sense for a very specific and narrowed scope job. To be short, an example – we started to leverage Fluent NHibernate to do our mappings. It’s simple and nice, but extremely repetitive. A typical mapping would look like this: