Agile Dysfuctions


Agile development has been around for maybe close to 15 years now. Tim Ottinger and I started talking about “Take Back Agile“. My incentive for this was frustration and shame with what we have achieved in all those years.

The success stories about agile development often seem exaggerated. Most implementations of agile do not come close to what the stories tells us.

Joshua Kerievsky moved to Anzen. With Anzen we are looking at software development from a safety perspective. Safetely for customers, users, investors, developers, basically anyone who deals with software.

The advantage of being in the agile development professional for so many years is that it is easy to see patterns of success and failure. Unfortunately the latter still prospers despite agile development.

This post is the first in a serie that I am about to write.

I will start posting about red flags, problems, failure modes and defenses we have come to know over the years. My intention is to share this knowledge so you can use it to practice safer software development.

Using PostgreSQL with Ruby on Rails (and RubyMine)


Everything when I start a new Ruby on Rails project on a new machine I am running into issues getting everything to work with Postgresql. This is not a Postgresql issue, but simply a memory problem. I don’t do this that often, so I simply forget. This has lead me to write this blog, because it will be my ‘extended memory’ next time I need it.

This blogpost was written while using the following tools:

  • Postgresql 9.3 configured on localhost on port 5432
  • Ruby 2.0.0-p0
  • Rails 3.2.13 (nope… not the latest)
  • RubyMine 6

The purpose of this blogpost is to give you a workflow that will help you do the least amount of work to get your new Rails app working with Postgresql. My assumption is that you have installed Postgresql and are sure it is properly running. I use pgAdmin to check that.

Step 1 – First create a new role in Login Roles. In this example we’ll call the role TestProject.

Step 2 – In the tab Role privileges check Can create database

Login_Role_TestProject_and_Edit_Post_‹_Ruud_s_Thoughts_—_WordPress_1

Step 3 – Create a new Ruby on Rails project in RubyMine. This step will also run rake and try to create databases. This will fail for three reasons:

By default RubyMine does not have the Postgresql driver installed. You’ll need to do that manually using the database menus in RubyMine. Later more about that.

Postgresql allows you to create new roles without setting a password, but this is misleading, because it won’t allow connections without a password login. You have to set a password  in the Definition tab. Warning: once you do that the Account expires field will be set to the current date. As a result of that you may still not be able to use the new role. Make sure to set the date to a future date.

Login_Role_TestProject_and_Edit_Post_‹_Ruud_s_Thoughts_—_WordPress

You may receive this error:

could not connect to server: Permission denied
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

Using Google Search you’ll find suggestions that require messing around with file system soft links or moving files. Don’t do that! That won’t be necessary. Just add host: localhost to each database configuration  in database.yml and that will do the job. Your configuration should now look something like depicted below.

database_yml_-_TestProject_-____RubymineProjects_TestProject_

Step 4 – Run rake db:setup followed by rake db:migrate. This will create both your development database and your test database. This will leave the production database untouched for obvious reasons.

You are now set to go and start developing your application and use the regular database migration steps from Rails.

Skype Premium – Is it worth it?


I make regular international calls to both land lines and cell phones. Additionally I heavily use video conference calls with often five or more participants. This combination seemed to make it worth an experiment with a one year Skype Premium subscription. I was well aware of the Google Hangout alternative at the time, but I had not yet ran into many business people using a Google account..

Some context

I think it is relevant to know that I have a business internet connection with a bandwidth of 150 Mb/s downstream and 15 Mb/s upstream. I have been using this internet service for many years now and seldom found my internet connection to be the cause of trouble. For those occasions where my connection was the problem, I have an SLA that assures it gets fixed without hours.

About video conferencing

I can be pretty direct about this. Besides that Skype Premium claims that you can have video calls up to five people I can’t say it ever worked properly. This was the biggest disappointment right from the start. It is clear that a good video call depends on the quality of the connection of all participants, but I did not expect it not to work at all most of the time. Even when those with a poor connection limit the call to just voice, it did not work properly for me.

Phone calls

Phone calls to any of the countries, even cell phone calls, work fine. Even calls to India that regularly can be a challenge have always worked out fine for me.

The final verdict

This won’t be a surprise. The answer is: “No”. I have cancelled my subscription during the subscription period. Besides that I have tried to convince business people to use Google Hangout with reasonable success. Google Hangout is also not perfect, but if you rely on video conferencing for collaboration like I do, it is a much much better alternative to Skype Premium. And the best thing is, it is for free!