Archive for March 2009

Crisis of Confidence and Motivation

March 25, 2009

“You fall for reality,
You’re bruised and defeated,
Then you learn to fall in love with yourself.
That’s motivation”

“That’s Motivation” – David Bowie, from the movie “Absolute Beginners”

It’s been one of those weeks where I feel I’m tottering between brilliance and stupidity.  This is one of the hardest parts of being a solitary developer.  One minute I’m feeling great because I’ve done something I didn’t think I could do, the next, I can’t figure out something that I should easily figure out.

Although I’ve been developing for 13 years now, I’m old enough that I missed out on object oriented development in college and I’m now trying to play catch up.  In my own development project, I’m working on a basic Windows application talking to a database.  It should be straight forward, but I seem to be complicating it for myself.  And I find myself constantly rethinking what I’m doing  – should I use the basic DataConnectors or should I look at making it object oriented?  Should I be doing Object Relational Modeling?  Should I use Access, SQL Server Compact, or Sqlite for the back end database?  All the while I feel like I’m spinning my wheels and redoing work I’ve already done.  Or spend a lot of time on something and scrap it and take a different approach.

This is one of those times when I desperately wish I had an other developer as a reality check and guidance.  So when faced what seems like an endless task, how do I get enough gumption to get going on my development work?

Here’s how I do it:

1) Blog about my troubles– If I get my troubles and feelings down in actual words, they stop rattling around in my head and distracting me like shiny little toys.  Also, feedback from the blog might also point me.

2) Step back and break what I need to do down into tiny tasks – My biggest problem with this step is having enough continual time to look at what I need to just build a to-do list that I can whittle down to nothing.

3) Let it simmer and come up with “brilliant ideas” in the shower and the drive to work – I sometimes comes up with my best ideas here.

4) Just keep swimming – Dori’s mantra from Finding Nemo is a good plan.  You got to keep moving because stopping can be death, especially in development.  Keep moving.  Keep trying something, anything.  Eventually you will figure out what works for you.

So I’m going to make some definitive choices (at least for now) and break this project down into bite sized chunks.  I think I’m overcomplicating things and I really should just evolve back to the KISS (Keep It Simple Stupid) method.

Wish me luck!

“I’ve nothing much to offer,
there’s nothing much to take,
I’m an absolute beginner,
but I’m absolutely sane.”

“Absolute Beginners” – David Bowie, from the movie “Absolute Beginners”

Army of One

March 9, 2009

If this is your first time here, I should say that I am the lone software developer in both my day job as well as in my company.  This is both a blessing and a curse.  It’s like what Uncle Ben said in Spiderman “With great power comes great responsibility”.

What’s Great About Being a Single Developer
Freedom
-You pretty much have the ability to do whatever you want.  If you don’t want to follow a methodology, you don’t have to!  You can build the system any way you want.

Ownership – You own the application.  You know its ins and outs, all the dark places with the twisted code that you took you forever to get right.  It has your stamp on it.  It’s your baby.

Pride – When it’s working and doing exactly what it’s supposed to do, you can sit back knowing that you were the one and only person responsible.  You can enjoy the kudos that your application receives and you think “Man, I’m a great developer”

What’s Horrible About Being a Singe Developer

No Guidance – When you start a project, it’s a little like being pushed out of plane (with a parachute…most of the time) over some wilderness.  When you land, you have to find you’re way back to civilization.  If you’re lucky, you know the terrain or at least have a compass.  Other times, you feel like you’re stuck in the wilderness, just struggling to survive until you can find a trail that will send you back to civilization.  And since you’re alone, there aren’t even kindly strangers you can ask on your way.

Responsibility –   You own the application.  But suddenly, instead of being the paragon of software development, it’s started acting like Frankenstein’s monster crossed with HAL.  And it’s ALL…YOUR…FAULT.  Remember that twisted code in the dark places of the program?   You get to fight that monster all by yourself.

Demoralizing– When you feel like the bug reports are coming in at a rate greater than you could even create them in the first place, you’re saying to yourself “How could I have missed that?”.  With each new bug report, error, or complaint that it doesn’t do what the user wants, you begin to think “Man, I am the worse software developer in the world!  Maybe I should take up a different line of work…”

So Is It Good, Bad, or Somewhere In Between…

My personal feeling it’s neutral to somewhat bad to be a single developer.  The biggest problem for me personally is not being able to bounce ideas off anyone else.  And when you’re treading new technical ground (at least for yourself), it can be frustrating and demoralizing.  When I went to college, object oriented programming was not widely used in industry.  Now, I find myself playing catch up.  I’ve been working on learning object oriented programming because I’m work in languages that require it.  But there are lot’s of things I don’t understand.  I need a mentor or at least someone I can go to for advice.  That’s one of the reasons for this blog; not only is it my chance to document my learning, but to make contacts and learn myself.

Another reason I think that being a single developer is tough is that you can get pegged as being someone who wants to work by himself/herself and can’t work in a group.  I’ve had two interviews where I was asked if I could work other people.  I didn’t get either job, so I have no idea if that was part of the reason or not.  But in my heart, I think it was a factor.  In both my current job and my business, I would LOVE to not be the only one.  But management at my job decided otherwise and I don’t have the money to pay anyone else. 

So Now What?

I plug along.  I follow the best advice I can get from the Web, from books, from magazines, just about any source I can find.  I look at new technologies (.NET with LINQ, Windows Presentation Foundation), new methodologies (Agile), and just good old rules of thumb and I try to adapt them to my own use.  I really think that someone should work to adapt some of the widely used methodologies like Waterfall (yes, I know it’s evil) or Agile and strip them down to what’s manageable to a single developer.  Because I’m sure that I’m not alone out there.  I’m sure there are many developers stuck by themselves, either at a regular job or their own business endeavor.  It can be lonely out there, but to me, in the end, the result is the reward.  Seeing that shiny application in use and hearing a heartfelt thank you from the user is the best result.

In the beginning…

March 4, 2009

So this is it, the first blog post.  I could try to come up with something really witty and astute, but I’m having trouble with that.  So this is what you get instead.

So what’s it all about? I’m hoping Develop North will document my opinions, (mis)adventures, rants, and learnings on trying be a lone software developer in a rural area.  I came up with the name “Develop North” for two reasons:  1) I live in Upstate New York and went to a college about as far north in New York State as you can go before you’re in Canada, and 2) it’s supposedly a clever tie to the name of my software company, Cynosure Software (cynosure means something that acts as a guide; it can mean the North Star or Ursa Minor.  Go ahead, look it up in the dictionary…I’ll wait).

I have a day job as a Systems Analyst for a Fortune 500 company as well as my company.  In both jobs, I’m the single application developer guy which presents its own set of challenges.  I’m hoping to document (and rant about) some of those challenges, things I’ve learned, things that tick me off, and anything else that comes to mind.

So I hope you stick around as I embrace the blogger lifestyle and I look forward to conversations with everyone.