Archive for the ‘Consulting’ Category
Fixing the little things.
When your developing, enhancing, evolving your software you will introduce bugs which range from trivial UI issues to “Show Stopping” issue in business logic that will drive your customers away.
Its pretty easy to prioritize these bugs as tasks for your development team by making the “Show Stoppers” #1 priority and so on… and this list of priorities is often geared around the customer, we make sure the issues that the customer will react to the most are sorted out first and then we get to the other “trivial” issues later (if ever).
While this method of prioritization works well in theory I have observed that developers who are not allowed to fix bugs that annoy them or are “easy” to fix, often loose motivation and interest in fixing those bugs that are not so easy to fix.
I have myself worked on projects where the PM has taken exception to me spending an hour to fix and test a bug because I felt that it was worth doing even thought the “Plan” didn’t express this.
Its so important to let your development team cherry pick issues to fix as well as prioritizing the “Show Stoppers”.

Why?
Developers love marking tasks as “Dev Complete”, it gives us a sense of achievement that motivates us to crack on with the next task at hand.
“Wasting” (if your a PM) an hour on a task that isn’t the most pressing one at the time can have a profound impact on your teams productivity, letting the developers mould the shape of the product by picking the issues, tasks to work on gives them a sense of ownership which brings with it a sense of determination to deliver.
I liken this to the Broken Window (Tip 4) theory expressed in The Pragmatic Programmer by Andrew Hunt and David Thomas.
Profound #1
An Investment in knowledge always pays the best interest.
Benjamin Franklin
Daily Dose #4
Bourbon Creams and Bananas are not a balanced diet.
Phusion Passenger on Amazon EC2
Some useful stuff relating to Phusion Passenger (mod_rails) on Amazons Elastic Computing Cloud.
Moving from Java to C#
A senior ThoughtWorker talks about his first C# project 10 years after he first tasted the Java bean.
IPhone GUI PSD
Some photoshop goodies for mocking up IPhone UI’s.
Rails in the Enterprise
I love Rails and use it all the time, fortunately the company i work for builds web products that lend them selves to the Rails way, however we also do consultancy work for larger Enterprise companies where Rails doesn’t lend itself so well.
I’d love to see Rails include features that would ease its adoption within the enterprise, here are a few things that i’d like to see:
Better support for Windows
Now it hurts me to say this as everybody here loves OS X and our products are built for OS X or linux deployment but many (i’m inclined to think most) enterprises use Windows for deployment of internal intranet apps.
With the release of Mod_rails, deploying ruby apps into production is now only easy its reliable, Enterprises organizations need both of these things, but i think they need them on windows too.
Support for Stored Procs
Now i now its pretty easy to add this support (and i will get to that later) but having Stored Procs support baked into Rails would make using Rails in a enterprise environment so much easier.
We have been to many large companies to build large internal intranet applications and in every one of them we have had to interface with legacy systems via APIs that are exposed by stored procs.
Telling a client that you are going to use Rails in this environment consistently produces a look of horror from the clients technical guys and follows with a Rails can only do Object Relational Mapping discussion.
Any (that i have met) technical architect in the corporate work will dismiss rails for its (perceived) lack of Stored Proc support.
I’d like to see this functionality baked in to rails and advertised as a “Feature”.
Integrated Development Environment
Right now i can think of at least 6 IDE’s that support rails and thats not including TextMate (which i use).
Of all the IDE’s that i have tried NetBeans is the best, it has good all round support for rails but even still, its miles away from what a corporate developer would consider a good IDE for rails development.
Developers need refactoring tools in any language but the need for good refactoring is greater with dynamic languages, netbeans has one refactoring option enable when using rails “Rename” and even that doesn’t safely rename.
Now i’m not suggesting we need Resharper for rails before corporate developers adopt rails but somewhere in between resharper and what we have now would be a good start.
Address the Scaffolding Myths.
Every rails developer knows that scaffolding was (pre rails v2.x) pretty useless but served a good purpose in helping to increase the Buzz around rails with the promise of one click application stubs.
In rails 2.0 scaffolding is Slightly more useful in that it creates nice Restful controllers and some pages to help you get going with the first few resources in your application however, the Rails community needs to address the perception thats rails is all about scaffolding.
So many times i have had conversations with Tech Leads, Development Managers, Developers, etc about rails being more than scaffolding, usually they are amazed to hear that most rails developers don’t even use scaffolding in there apps.
Its as if this great little feature of rails is holding it back in the minds of “serious” corporate developers, who don’t see scaffolding for what it is.
Database Support
Active Resource is an amazing piece of work, I often go through the Code Base to see how certain things are done and find myself gushing over the code in there its amazing…
However, since Rails v1.2.6 the core team seem to have lost interest in Databases other than sqlite and mysql, which is all good and well for the the Web 2.0 community, however corporate guys need Oracle and/or Microsoft SQL Server support out of the box, and it seems that using either of these engines now requires extra gems and some hacking around. I have had many conversations with devs who “tried” to use rails but couldn’t get it to connect to Oracle. After looking around the web they often got frustrated by the contradicting and out of dat solutions to this problem and gave up.
If rails is living on its promise to give database independence and Rapid development thought active records object relational mapping magic it can’t force corporate developers down a wild goose chasing for gems, it need to work - Out of the box.
The Solution…
Well rails is young and i’m certain that these issues will be resolved given time, however i think its the responsability of all rails developers to increase its presence in the Corporate world when and where ever we can.
As such I’m going to start a Rails in the Enterprise site where issues such as the ones i have highlighted can be discussed, resolved and communicated to the corperate world.
I’m like to see this site become a one stop resource for corporate developers who are trying to use rails.
Internet Radio on iTunes
Today I realized that I have become totally dependent on the Internet Radio support in iTunes when coding at night!
I spend a good amount of time in the office when the other guys have gone home (dedication ey?) and having a random (usually Dance Music) internet radio station blasting out from across the office creates a fantastic coding environment.
Although, I guess you do need to be the sort of person who likes to code to Music.
I’ve spent the last 4 hours listening to a station called Puls which is the sort of non stop dance music that makes you smile ![]()
Try it…
