share
Stack OverflowTips for a lone developer (not a lonely developer)
[+66] [10] Matt Warren
[2008-09-04 12:11:56]
[ career-development lonedeveloper ]
[ http://stackoverflow.com/questions/43587] [DELETED]

I'm the only developer in the (small) company that I work for, although I'm fortunate that my boss is very technical. What tips do other people in a similar situation have.

I'm wondering about how you handle some of the following issues:

I'm not really looking for pointers to technical/on-line resources, I'm looking for practical suggestions.

[+51] [2008-09-04 12:35:11] Al. [ACCEPTED]

I was a lone developer for 4 years at my previous job. At first I was really enjoying the flexibility in making my own decisions and the speed with which I could do things without having to wait for group approval. But after a year or so I started to worry about the impact my developing on my lone island would have on my career. This is what I did to address my worries:

To counter the lack of other software dev input I started following tons of blogs on software development (although at the time they were more essays as opposed to quick blog format of today). I also bought books on software development methodologies and included their advice in my work to get a feel for their effectiveness.

To stay fresh and not isolate myself I kept trying to push new technologies (languages, frameworks, etc) into my work projects. That kept me both excited about what I was doing at work and also kept me on the cutting edge of tech. I was fortunate enough that I got flexibility to do that at work, provided I had a decent reason to use said new technologies.

I tried contributing to open source projects. Personally, I had a couple of bad experiences there and haven't tried it again since. But it's something to consider since obviously thousands of developers do it regularly and I'm sure they benefit from it.

In the end, I left my job to look for more interaction with other developers. I'm not sure if this was a result of the type of company I picked or not, but I found that technically I was ahead of the curve because of the constant diet of tech news/blogs I had fed myself on. But there definitely is great value to the questioning you get from other developers to your designs or implementation techniques. Not to mention experiencing first hand the politics of working in a group environment and the necessary techniques to navigate all that.

So if this is your first solo job, enjoy the benefits to the fullest and it will make you a better developer. But don't stick around for too long or you'll lose out on the other social aspects of development that are also just as important.


(1) I've had my current, sole developer position for 2 years now and the things you describe are precisely what I've been trying to do. Glad to know I'm on the right track. - tj111
Wow. Mirrors the way I'm going about things too. Either a "great minds..." situation, or a "fools seldom..." situation but whichever very spooky to see an answer that mirrors my thoughts on how to deal with this exactly. - bert
1
[+29] [2008-09-04 12:17:21] Mendelt

Just some ideas.

  • Try to get the best internet connection possible and use tools like Twitter, IM tools and sites like this one to get in touch with other developers.
  • Go to usergroup-meetings, developer conferences etc to meet up with people. Try to keep in touch with them.
  • Read books, magazines, listen to podcasts, read rss-feeds etc to keep up-to-date.
  • Try to get involved in some OSS projects to work together with other people.
  • Start a blog to get feedback on your ideas from readers.

2
[+6] [2008-09-04 12:21:32] Rob Cooper

I experienced the very same issue in my previous job. So first off, my sympathies, I know it can be frustrating.

My 10 bits:

  • Network with as many geeks as possible. I have learned a great deal from a lot of good people through Twitter [1] and the like.
  • Criticise yourself A LOT. Not to the point where you want to kill yourself, but readily accept you need to take responsibility for your work and always play devil's advocate in your mind. Its hard because you want to be proud of you work, but you need to be objective.
  • Expand your mind. Yeah, we should all be doing this, but it can be easy when flying solo to become tunnel-visioned, ensure you are open to as much as possible thats going on in the software world. This way you can investigate/research new things.
  • Be determined. Getting in to new things such as TDD, creating a build process etc. Can take much longer and be a lot more frustrating when you are on your own. A good network really helps here. But if you improve and hone you development process/strategy, you will be able to streamline yourself to exactly how you work. A lot of us in teams dont have that luxury! It can also be more scary approaching these issues with your boss on your own (ahh the flipside!).
  • I say again, NETWORK! If you dont have people with you, get connected to people! That way you can bounce ideas of other people and get a different take on it.
  • Use StackOverflow! This has become a great resource for all of us. Use it! This should be set up on your launcher/bookmarks and ready to go!
  • As for being geeky, hell thats a social problem we're all still trying to deal with ;)

Best of luck, if you need anything else, please ask :)

[1] http://www.twitter.com

3
[+5] [2008-09-04 12:27:53] Serge

I've been working in a similar way for the last two years. Here are my advices:

  • Blogs and books are good mentors.
  • Try to join local programming community to share thoughts, ask advices etc.
  • If you don't know whether your solution for a particular problem is good, try to find some open source projects which deal with similar problem and compare their solutions.
  • Check reddit [1] or similar sites to be up to date.

And yes, it's very bad when there is no one to review your code and save you from a stupid mistake... but on the bright side you'll learn how to make right decisions and what it means to be responsible for a project.

And now you have stackoverflow! Good luck!

[1] http://programming.reddit.com/

4
[+3] [2008-09-04 12:20:54] kenny

I've had many years of experience working on my own, but currently I mostly work onsite at a company with many developers.

  • getting advice and mentoring (from a person)
  • developing in a vacumn, i.e. not meeting other developers

I would suggest finding local user groups.

  • not having another coder to run a solution past
  • having no one to tell you if your idea/solution is rubbish

Review a lot of code online and learn from what others are doing. Consider talking to your boss about hiring a consultant to code review your efforts periodically.

  • no one being as geeky as you!!

Try to hide it.


5
[+2] [2008-09-04 12:22:45] Jon Limjap

You might want to look at a similar question I posed: Best practices when "going dark" (or going solo) [1]

The only difference between you and me is that you're already in that position: I on the other hand am "still on my way".

As for your questions:

  • Advice and mentoring is only as far as StackOverflow. Not as good as person-to-person advise I know, but SO along with other forums are your best bet for these kinds of things
  • I'm in a quandary as to your second point as well. It's not easy to show others your code, especially if you're talking about proprietary, company-owned code :(
  • You can meet other developers in your local UG. Try to be active, and maybe you can find your mentors there -- or friends at least.
  • I think StackOverflow is good at this.
  • Now that really sucks sometimes -- at the point of being misunderstood

You are fortunate that you have a techie boss. At least you know you can talk to him.

And yes, Twitter [2] is your friend! I actually got into the StackOverflow beta because of it.

[1] http://stackoverflow.com/questions/35662/best-practices-when-going-dark-or-going-solo
[2] http://twitter.com

6
[+2] [2008-09-04 12:37:22] David Sykes

I find being a member of accu [1] is an excellent way of being part of a sizeable quality development community, and like StackOverflow it is populated largely by people who care about programming. However it is organised more as a community of developers rather than a question and answer forum.

They have a very lively set of email lists [2], on which you can discuss pretty much any topic and you will get a good response to.

They also do a superb annual conference in Oxford [3] that I managed to get to a couple of years ago, and would love to get to again. There are also regular get-togethers around the country that might be accessible to you.

You can join the accu general mailing list [4] without being a member, this would give you a chance to check it out.

[1] http://accu.org/index.php
[2] http://accu.org/index.php/mailinglists
[3] http://accu.org/index.php/conferences
[4] http://accu.org/mailman/listinfo/accu-general

7
[+2] [2008-09-04 16:25:27] Matt Warren

thanks for all the really helpful answers, to sum up:

  • Join a local user group
  • Read blogs/SO/Reddit/books
  • Get help/advice from SO or Twitter
  • Get a new job in a company with a dev team!!

8
[0] [2008-12-02 15:44:08] hash

I am currently in the exact situation and yes my boss too is a bit techi. But of all these tips, I am already following most of them :). Thanks Guys for sharing your experiences and I will also try to get into local meetups etc.


9
[0] [2008-09-04 12:16:00] Thomas Owens

I'm curious - if you were working on a difficult project, how hard would it be to share your source code in some format to get advice on a specific problem? I think that's one of the best things of working in a team, outside of the social aspects - the ability to have someone else look at what you are doing and come up with a different or better solution that you didn't think of.

If you can't share your code, I would try to come up with a solution that will allow you to seek help from and learn from others. Perhaps your company uses an OSS solution and you could contribute code to that project that would also help your company - you might be able to find a mentor on the project.


10