Private Offices

18 years, 6 months ago
[ Office Gossip ]

Joel‘s always been on about the advantages of having private offices for developers. This is one advantage of us all having our own home offices is that we certainly have private offices. The piece we have to work harder at is the face to face meetings.

Having spent many previous lives in various forms of ‘open’ offices, I’m completely on Joel’s side of the fence on this one. The worst of which was an office where I sat near a meeting room. The result being I could hear every damn meeting held there and had to buy large headphones in order to have any chance at being productive.

Intellisense Sticks It’s Nose In

18 years, 7 months ago
[ Geek ]

It’s no secret that my love/hate relationship with intellisense is heavily weighted to the hate side. Well now intellisense has gone too far as it’s now crammed it’s face into actual development.

“use the reversed English syntax in naming methods, objects and properties: name,verb; eg. StatusCreate, StatusModify rather than CreateStatus, ModifyStatus.”

First off, is this an actual naming convention? I wasn’t able to find anything in searches for reversed english. Second, the only defense I can think of for this approach is because of intellisense. The idea being to force the sort order of intellisense to place all the “Status” items together. Is there another reason?

I’m not one for taking petty stands (or am I?) but this is garbage. An IDE feature, that individual developers may or may not use, should not dictate naming conventions. If this is an issue then fix the actual problem, intellisense.

Allow the option for entries to be sorted in the order they appear in the file instead of alphabetical. Or the option to sort by the postfix word based on the camelCasing so that CreateStatus and ModifyStatus will appear together.

It makes no sense that developer’s are now having to work around MS’s poorly written IDE features?

Flash, Done Right

18 years, 7 months ago
[ General ]

Tad, Rudi, Mark and storystream kids have a new site. I’ve never been a fan of flash based sites but they deserve credit for building a flash site that isn’t completely obnoxious. Even though the navigation is unique in each area, it’s still simple to figure out and use.

I know they’ve done something right when they have me considering using flash on our site. Considering I said.

Parameter Naming Conventions

18 years, 7 months ago
[ Geek ]

MSDN’s suggested naming conventions for parameter naming never really worked for me. My problem is that using camel case for parameters conflicts with their method level variable naming convention. That makes it difficult to easily distinguish between the two.

public void DoSomething(int someInt)

Which is great until you define a method level variable using the standard conventions:

int anotherInt;

Then later in the method, set it:

anotherInt = someInt;

It’s not readily apparent that one of these is a parameter passed into the method rather than a method scoped variable. While I can’t stand the way it looks I’ve been dabbling with prefixing all parameters with “p”:

public void DoSomething(int pSomeInt)

Resulting in this statement:

anotherInt = pSomeInt;

Now it’s quite clear what’s happening here, a method scope variable is being assigned a value that was passed in as a parameter. It works and solves this issue, however, I really really can’t stand the way the “p” prefix looks.

Agile’s Hard

18 years, 7 months ago
[ Software Development ]

Nice quick read sent over by Bobby, Why Is Agile Development Hard?

Don’t let the title of this fool you. While some people may view it that way, this is not an article about why agile processes suck. This is a great little endorsement article about why you want agile if you’re a business owner. To do that, however, you need a team that can actually be successful in an agile process. You’ll only find failure if you take an existing team working in a traditional process and shuffle them over to agile. It won’t work.

Agile is much more difficult. Ultimately it’s about the people. Agile requires intelligent people who are intrinsically motivated and self-managing. You need technical people who are willing to act like business owners. Traditional processes can be simpler and requires less thought, well I think the author summed it up…

“YOU HAVE TO USE YOUR BRAIN!”

His other points:

  • Don’t Mistake Activity for Progress
  • Show Me Working Features
  • Learn to Say “No”
  • You Must Lay the Proper Groundwork to Be Agile
  • Agile Is a State of Mind!

“In agile development, you (and everyone else) are charged with the rather difficult responsibility of always challenging yourself to ensure you are doing the smartest thing possible that will bring about the best solution for the current project (and within its context).”

While we are far from being agile bigots, we certainly are an agile software company, based on these tenets. We value working deliverable software over activity.

This places a big burden at the front of our funnel during our hiring process. We have to ensure we only bring in people that want to use their brain today and three years from now in the middle of a long project.

If you work in a traditional software process and find yourself pissed off because the process prevents you from doing what you know is right for the business, well email me your resume because we’ve all been there and we’re looking for you.

Simplifying Windows

18 years, 7 months ago
[ Geek ]

I’m not sure whether I’ll see any impact but I shut off a lot of the services talked about in this Guide to Useless Windows Services article. Windows certainly tries to be everything to everyone and in doing so has to have a lot of services running that the average user may never ever call. In theory, shutting those off has the potential to reduce startup time, free up some memory, and speed up your machine in general.

VIM tutorials?

18 years, 7 months ago
[ General ]

In reading this, the vim tutorial part surprised me:

“Feedback overhead on irc from Damian’s vim tutorial: hardwarehank: ahhh the vim tut is friggin aawesome. Damian said someone leapt up after the third vim technique and testified: “WOO! This was worth the tutorial cost alone!”. I love it when I follow my gut and the instinct pays off: who would have thought that he’d have about a hundred people in a tutorial room for a tutorial on vi?!”

It’s easy to assume everyone else knows what you know, or more. While I’m far from being advanced, I do understand how to use some of the more advanced vim capabilities referred to in this tutorial. Would anyone be interested in some straight forward tutorials on them being posted here?

Smackberry

18 years, 7 months ago
[ Geek ]

Chris has a great idea that’s a spinoff of the smacbook pro. I play hockey with a bunch of those RIM boys and I know at least one of them reads this site the odd time, can we inject this idea over there at the RIM borg?

This is an idea I’d actually pay for.

Ruby On Rails versus .Net/Java

18 years, 7 months ago
[ Software Development ]

I was recently asked about Ruby On Rails(ROR) versus .net or java. Specifically, a CEO of a startup is planning to use ROR, in what situation would we use ROR? First off, I have essentially no experience actually developing in ROR so I should really keep my yap shut. Having said that, this is all best guess, big grain of salt stuff. Some of my response is below:

Here’s some specifics to go with that….

ROR is impressive at first look, big ‘shock and awe’ value. This is what sucks people in. My question is what’s it like to work in when it’s a large, long-running codebase, multiple developers, etc. ROR sucks people in because you can prototype really fast, and again that makes it impressive when watching demos etc. There’s nothing cool looking about demonstrating how a well architected java or .net app makes working in a multiple developer, large code base scenario more managable. That’s just boring but which does a particular client need?

As far as I know, ror isn’t a strongly typed language which presents some major issues. In the end, if I was building an application that I wanted to have staying power, ie I plan on the codebase lasting a while, then I would use java or .net along with a whack of available frameworks like spring, hibernate, etc to accelerate development time. In that light I’m not sure ror has much of an advantage. If you’ve never used those frameworks or a good O/R mapper then ror would be even more impressive because that’s a big piece of the shock and awe value you’re getting. I think the piece that impresses most people is it’s built in O/R mapper.

The real question is why? What does that CEO feel he’s getting by using ror? Cheaper developers? Better technology? No licensing costs? Better scalability? Faster development?

“After my run with RoR, I played around with ASP.NET 2.0. My thought the whole time was similar … where are the blog in 2 min (or 5 or 10 or w/e the RoR demo was) demos on this? Cause really, its a whole lot easier with ASP.NET 2.0 than in RoR. Its practically no code – all the controls are drag and droppable. Now, the biggest thing is that when you want to come back and do a real app in ASP.NET 2.0 after the initial wowing, you still can! You are the ones writing the SQL statements for the data sources (with tools to make it quick) and caching is very easy to implement. A lot of the plumbing is there for logins, user management, site navigation, etc, etc. And with all of it, if you need to, the provider model is easy to customize as you like.

That definitely sounds biased but thats how I honestly feel about it: They’ve done good with RoR’s marketing (the “demos”) but beyond basics, it really disappoints. Not so with ASP.NET 2.0 – only thing is maybe someone should do the 2-5 min “demo” for ASP.NET 2.0.”

Above quote from comments here.

vi(m) 101

18 years, 7 months ago
[ General ]

If you don’t use vi(m) and were intriqued by my previous post, take a peek at this and join the cult.