James Carr | Rants and Musings of an Agile Developer

Archive for March 2008

Mar/08

30

Life Changing Event

Time grabs you by the wrist, directs you where to go

Ever feel like you’re on the threshold of making a decision that will irrevocably change the course of your life, forever?

That life has presented you with choices that, whatever you choose, will irreversibly change your life forever, for better or for worse?
That’s where I’m at right now. I have two days to make a choice that will forever change where things are at, and will forever change the course that my life flows. It’s confusing, difficult, and really pressuring.

All I hope is, whatever choice I make, it’s the right choice.

No tags

Mar/08

29

links for 2008-03-29

No tags

While I was reading through my RSS feeds today I came across a post by David Walsh describing how to make a link to set the current page as the users home page (bad feature) with the remark:

The unfortunate part about creating websites for customers is that no matter what recommendation I make, if they want it, I have to give it.

I smirked a bit as I know I’ve implemented features customers have requested that I KNEW were bad features… but then I thought about it a bit, why do we continue to implement features for customers despite knowledge that such features are wrong?

The Customer is NOT King!

The common adage may be that “The customer is king.” but with software development nothing could be much further from the truth. The role of a software developer is to best realize the customer’s business needs via software. This may even go further for web development… a businesses website reflect their image and brand worldwide and with that in mind, poorly thought out features can tarnish that image.

Blindly following customer demands can be a quick and slippery slope to either project suicide or a bad end result. If we implement annoying and irritating features without questioning why, the customer may lose a lot of potential business. Further, I’ve been guilty in the past of accepting request after request of feature changes (because the customer is king) till the point the project either shipped incomplete or was aborted outright. :(

The Relationship Should Be Collaborative

As a professional, a developer should keep the customer’s best interest in mind and the relationship with the customer and developer should be collaborative rather than hierarchical. In my opinion, if a customer requests a feature that is ill conceived or that is known to be against proper design practices, say it! If they request blinking text to capture the visitor’s attention, tell them the truth… blinking text will irritate the hell out of any visitor and there are better alternatives for drawing attention. Don’t let them blindly dictate poor design decisions.

Work with your customer… find out the why of their feature request. Finding the true root of what they want can allow you to give them better alternatives, or even drill down to what they really want and avoid numerous feature changes in the future. Remember it’s all about collaboration! ;)

So Now What?

We’ve established that the relationship with our customers when developing software should be collaborative, that we should work with them to create the best possible solution. However, I still can’t help but question… why do we continue to implement bad features our customer requests?

I guess in the short run, we just want to get paid. What do you think? ;)

No tags

Mar/08

25

links for 2008-03-25

Mar/08

25

Jelly is Coming Soon to STL

Through a random contact I made on twitter I discovered that something called “Jelly” is coming soon to St.Louis … apparently it’s a day of “co-working” with other software developers (mostly consultants and self-employed). It sounds pretty interesting and I’ll probably definitely check it out to see what it’s like… perhaps soon we’ll be able to sponsor a “Jelly” here in Columbia, MO as well if anyone is interested. ;)

No tags

Recently I’ve been pondering my biggest pet peeve, the biggest burden on my productivity… the dreaded meeting. Or as my favorite QA Jacque calls them, the “M word.” Meetings (pardon my language) are the biggest mind number sometimes. I hate them. Everytime I’m getting productive or about to have a major breakthrough, a meeting takes place that crushes my dreams of accomplishing something. They’re that awkward event that you cannot live without yet can completely drain energy from a developer. Why???

The problem is having meaningful meetings… how often have you found yourself in a meeting that started strong and then quickly dwindled away into a horrible nightmare of empty talk of process or other boring things? I know I’ve attended several that I just kept screaming in my head “please someone just kill me now!” as I watched the clock tick from 2:30pm to 4:30pm. There’s even the time I attended a meeting on “time waste” that really felt like a big waste of time. ARRGGHH!!! It makes me want to pull my hair out!

Of course, as a developer you can’t just sit and code all day long every day (even though that would be absolute bliss) and meeting with customers isn’t just an option, but a requirement. So how do we keep them from being so boring? In my opinion, make every meeting a stand up meeting… no chairs. And no I don’t mean your morning stand up… I mean make EVERY meeting a required stand up, people standing will want to get done ASAP so they can go sit back down, right? Keep it to the point… remember it’s possible to compress any conversation to an absolute minimum by cutting out the cruft and focus on what’s important. It takes work from both customers and developers though.

Developers, be to the point. Discuss business logic and ask for clearification, but please don’t expose technical details. Your customer doesn’t need to know you’re using Very Crappy Fake MVC FrameworkTM or that you’re storing data in Even Crappier RDBMSTM! Would you really like to hear irrelevant details from your customer about product marketing, business processes that don’t even involve you or the software you’re developing for them, or specific procedures used by the legal department ? Of course not! Such details may be involved in their work, but it has nothing to do with you… so why do you think that such details in your work matter to them? Focus only on the relevant details and business logic they care about, not irrelevant techno babble to make their eyes glaze over!

Of course, I don’t really have the answers to everything, and I don’t portray myself as such. I’d just like to say that developers take pride in being creative and accomplishing goals versus spending insane amounts of time in long drawn out meetings. Even worse if it’s a meeting with other developers arguing about god knows what. Ideally, you should converse with your customers so much that the need for in room meetings are seldom and when they are required are short, quick, sweet, and to the point. Just keep it simple! ;)

No tags

Mar/08

21

links for 2008-03-21

Mar/08

20

Twitter

I’ve recently become slightly addicted to twitter. You can follow me at http://twitter.com/jamescarr although you’ll find my updates completely random (I update it from my cell whenever I find myself slightly bored). ;)

No tags

Mar/08

16

links for 2008-03-16

Mar/08

12

links for 2008-03-12

Older posts >>

Theme Design by devolux.nh2.me