Software Apprenticeship

The biggest mistake I've seen people make when taking a new software development job is to stay quiet when they really should be asking a ton of questions. This applies to people fresh out of college just as much as it does to people with decades of experience.

Many companies like to give their new developers some kind of maintenance task -- perhaps cleaning up some code, or adding a relatively small feature to an existing code base. This gives the new person the chance to get familiar with the existing code and development practices, without risking any of the more important projects.

When this happens, some people (especially people with very little experience) think that their goal should be to produce bug-free code while asking as for as little help as possible. I think this is a bad habit that many people develop while in school. Maybe you think that by not asking questions, you're giving the impression that you're already competent at this. Maybe you think that the people with more experience than you are working on more important tasks, and you don't want to bother them or waste their time.

That's not the way it works in industry. We expect people to work together to get stuff done quickly. In school if you tried to help someone, it was usually called "cheating". In industry, it's called being a good member of the team.

When you get a new job in industry, you're working with some of the people who invented the system you're working on. Each software system is unique, and you aren't expected to already be familiar with it. There isn't a structured curriculum designed to help you learn it in an efficient way. Usually the best way to prove you're a kick-ass developer is to ask as many questions as you need in order to get your task done as quickly as possible, with a reasonably low bug count.

Don't worry about annoying people. Sure, sometimes someone will have bad days and they'll snap at you. But most of the time they won't, and even if they do, they usually won't think anything of it the next day.

Don't think you're wasting people's time. Don't think they have better, more important things to be doing. The reason they hired you is to train you to the point where you can help them get their job done -- or maybe take over some of the tasks that they're no longer interested in doing. In order for that to happen, you need to learn as fast as you can. By asking them questions, you are helping them be more productive in the long run -- and they know it.

Don't try to produce absolutely bug-free code before sharing it with anyone. The fact that you're unfamiliar with the bigger picture means that you'll probably get something wrong that you would never realize until someone else pointed it out. Do keep your code neat and tidy at all times (if you have to clean it up before you feel comfortable sharing it, that's not good), but don't worry about getting it perfect.

Finally, a warning. If you don't work closely with people at the beginning, it will either slow you down, or cause you to build something that isn't quite what people wanted. And if that happens, then people will start underestimating your abilities. You'll be given boring tasks that are irrelevant to the success of the company. You won't be invited to meetings where the future of the product is discussed. Your opinion about how to design things will be discounted. If you allow people's impression of you sink to this level, the easiest solution is to leave for a different company, and hope you don't repeat the experience.

So go ahead and be a pest. Your coworkers will appreciate it after a few short months. Just be sure to never ask the same question twice.

Posted on August 27, 2006 08:33 PM
More management articles

Comments

Why not use pair programming? Wouldn't that make this explicit?

Posted by: Shae Erisson at August 28, 2006 04:13 AM

I think that "asking questions" is a large part of the _teacher's_ responsibility as well. In school, the teacher pushes out the information and hopes the student catches on; if not, oh well, it is the student's money being wasted. However, just like the student's role changes when moving to industry, so does the teacher's. It is the teacher's _responsibility_ to ensure that the student is progressing. Otherwise, it is the _company's_ money being wasted. Both the student and the teacher need to take on new responsibilities once school is past.

Posted by: Tanton Gibbs at August 28, 2006 09:15 AM

Shae, that's a very good suggestion. Unfortunately I've never worked anywhere where pair programming was the norm. Have you?

Tanton, I agree that it's the responsibility of the mentor to solicit questions. I also think it's the responsibility of the manager to make sure that the mentor is doing this, and to check in with new hires frequently. I always encourage new people to ask questions, but they don't always believe me. I'm kind of hoping that by writing this down, I'll at least be able to help others -- some people believe what they read more than what they hear.

Posted by: Kim at August 28, 2006 05:35 PM

Kim,
I work at ThoughtWorks and most of our projects tend to use pair programming most of the time. It works quite well in ensuring new team-members have at least one person who is always available to answer their questions. It also gives them someone who can introduce them to the rest of the team/organisation in a informal manner. The other big advantage is that effective pair programming relies on good and constant communication which means that there's less chance of the new team-member getting stuck on a problem and keeping quiet for several days.

If you're in interested in applying apprenticeship and related ideas to software then you should take a look at a book I'm working on with Dave Hoover. It's, currently, called "From Apprentice to Journeyman" and some of it is online at: http://redsquirrel.com/dave/work/a2j/

Feel free to ask us questions or chip in with your own suggestions.

--ade

Posted by: ade at August 29, 2006 02:15 PM

Ade, I fully believe that pair-programming helps with getting new team members up to speed. But I'm less convinced that it works as a general policy for all developers. I also wonder how well it works for developers who end up paired with new developers.

How has pair-programming worked out for you in the rest of development? Or do you only do it with new members? If so, how long is someone considered "new"?

Posted by: Kim at August 30, 2006 09:57 PM

I agree that pair programming isn't the best approach in all situations for all developers. However it is a useful tool to have in situations where you need improved knowledge transfer and continuous code/design review. On my current project we've tended to work alone for most things with a casual transition to pairing when dealing with difficult/far-reaching design decisions or bringing in new people. That's because the team is very small so we can't afford to have one person be the only one who knows a particular sub-system.

Developers who get paired with new team members do end up losing some productivity as a result but it's up to the project's management to make sure that the new team member delivers enough additional value to make up for that loss in the long run. Sometimes there have been occasions though when the new team member has been able to start making significant contributions straight away because they've had the assistance of someone who already knows the business domain and existing codebase. So it usually balances out.

When pairing has worked well it's helped us ensure that everybody owns the entire codebase and can change any part of it. It's helped us create systems that were better than any one team member could have achieved on their own. It's helped achieve lower defect rates and increased quality (although I can't prove it was the only cause). It's helped spread (both business and technical) knowledge around teams which has meant that we've been able to have more consistent codebases. This has helped us with both long-term maintenance of projects and scaling teams up.

When pairing hasn't worked well then time has been wasted as people who don't work well together have achieved less than either could have done alone. Since it's just another tool we've usually adapted to that situation by doing less pairing or by rotating pairs more frequently.

The effectiveness of pairing depends on what kind of people you have on your team and the nature of the project. There are lots of developers who find the very concept of pairing painful. This is either because they're not used to explaining what they do as they do it or simply because they prefer to spend more time thinking deeply before doing anything or because they don't like working closely with other people or because they think that pairing with someone less knowledgeable slows them down or because they've never learned what it takes to make pairing work well. Sometimes this changes when they're shown how to use pairing effectively and sometimes this doesn't change.

Personally I just try to make sure our use of pairing takes into account the attitudes of people on the team as well as the cost/benefit of pairing in any given situation.

--ade

Posted by: ade at September 1, 2006 01:48 AM

I am completing my C-DAC in mumbai in month up to 31 Jan 2009
I am B.E.engineer from pune university

Posted by: jitendra at January 28, 2009 03:25 AM

I am B.E.engineer , doing C-DAC from mumbai,from mumbai,course will end 31 st Jan 2009

Posted by: Jitendra at January 28, 2009 03:28 AM

Great post dude, keep it up.

Posted by: free online games at October 25, 2009 04:11 PM

Love this man. Great stuff, great prices, free shipping. Email him if you cant find what you are looking for and he will look for you. Good customer service.louis vuittonSomeone who is knowledgeable in louis vuitton.Another guy from hong Kong (Largest louis vuitton second hand city, I believe) he has great stuff at fair prices but his shipping is insane

Posted by: louis vuitton at October 29, 2009 10:22 AM

Eliminating the need for the extra trouble to wear ugg boots uk
ugg boots saleuggs, in the extreme sports, look for happiness in life, with UGG Classic boots and nike sb showed off your tall body, do not worry about being laughed at, dancing new style ugg australia and nike sb dunk . The flavor of life that is colorful, there are Christian Louboutincheap nike dunksUGG cardy boots、and nike sb for sale also used fear to creep away money from your pocket Mody ? Love beauty, you might even love UGG Classic tall bootsUGG Nightfall bootsUGG Classic short bootsnew nike sb。There are an infinite high power drivers of popular front ugg boots saleugg saleuggsnike dunkdiscount ugg bootsnike dunk sb, our website also have UGG Nightfall bootsbutton ugg bootsbailey button uggugg button bootsbailey button bootsnike dunk midnike dunk highChristian Louboutin Boots, pick your favorite, do not hesitate!

Posted by: ugg boots sale at November 12, 2009 04:07 AM

To be able to get the best post-graduate education course there are a few things you need to do. For once, you need to make certain that you know exactly what degree and major you want. Or else you will take forever to find the right one. Second, stick to the most authoritative providers since you need a valid degree, not something you can throw down the drain. And third.... budget, budget, budget!

Posted by: educator at November 13, 2009 10:23 AM

Uggs on sale now.UGG Classic Cardy Boot makes me different form the other

girls. The UGG Bailey Button Boot is a good choice for female.

Posted by: ugg classic cardy boots at November 17, 2009 12:02 AM

Louis Vuitton , commonly referred to as Discount Louis Vuitton and Louis Vuitton Backpack, or sometimes shortened to Louis Vuitton Sale has become one of the most Louis Vuitton Sale Agendas luxurybrands Louis Vuitton Store.

Posted by: 1 at November 17, 2009 01:38 AM

UGG Bailey Button bootsis a new style in 2009.The classic cardy uggs boots is another hot boots that worth of buying.And the classic tall ugg boots will make your winter amusing.And now uggs on sale,if you are looking for such a boot,the ugg boots is good choice this year.

Posted by: UGG Bailey Button Boots at November 17, 2009 01:46 AM

I love Women's UGG Classic Cardy Boot 5819 very much. And the new style UGG Mayfaire Boots is aslo a good choice this year.

Posted by: UGG Bailey Button Fancy Boots at November 17, 2009 03:19 AM

Good day! Thx for your great post and Im thinking about how to introduce my ugg boots to you cos Im not sure if u like this. Many people who live in the cold area like the ugg boots, especially the north-europe. Our uggshare.co.uk supply the cheapest classic cardy ugg boots, class tall ugg boots, classic short ugg boots and other series of uggs, hope my words didn’t trouble u, cy!

Posted by: ugg boots at November 17, 2009 09:22 PM

lxjuan08ed hardyis a famous ed hardy store which sell directly ed hardy clothing, shoes, boots, swim suit and other cheap ed hardy.

Browse through our catalogue of hundreds of ed hardy clothing,Ed hardy Shirt,Ed hardy ... Buy Ed Hardy today for a gift, for a friend, or for yourself.

ED HARDY Online Shop,Ed Hardy Store by Christian Audigier,coach handbags,rolex watches.We supply cheapest Newest ed hardy discount 2009 Commodity New styles.


ed hardy sale

Posted by: ed hardy at November 18, 2009 08:20 PM

We are the best online sales for the china wholesale . Here you can have a large of choices of kinds Ugg Boots,Converse Shoes,Timberland Boots,puma shoes,Nike Shox Shoes ,Nike Dunk SB Shoes,Nike Air Max,Links Of London,Tiffany Jewelry,Dior Handbags?,jimmy choo handbags ,Cartier Watches, 8GB Mp4 Players,Bluetooth Car DVDs. All our cheap online cheap goods are high quality and original packages, and best service. We offer our customers the best service, 7 days arrive at your door.Enjoy your easy and happy shopping with us.

Posted by: cheap goods sale. at November 19, 2009 10:08 PM

Do you like sports? If you like it,the NIke Air Max TN and Nike Air Max 360 is a good choice for you.And now the there is a good news,CheapNike Air Max running Shoes is waiting for you.I think The New Nike Air MAX 2009 Running Shoes makes you great comfortable.

Posted by: Nike Air Max shoes at November 20, 2009 03:34 AM

Your article is write very well, I like it very much ~
ghd Hair Straightener
ghd Hair Straighteners
ghd straighteners
GHD
hair straighteners
bose in ear headphones
bose on ear headphones
bose headphones
nike sb dunks
nike dunks
I wish you have a wonderful day!Thank you.

Posted by: ghd straighteners at November 22, 2009 08:35 PM

Laptop Battery Laptop Battery Laptop Batteries
Laptop Batteries discount laptop battery
discount laptop battery
notebook battery notebook battery
computer battery computer battery
replacement laptop battery replacement laptop battery
notebook batteries notebook batteries

Posted by: Laptop Battery at November 25, 2009 12:04 AM

People all over the world know the abercrombie and fitch,but not everyone really knows how fashion the abercrombie is,hollister is the Legend maker. Everybody wears the hollister clothing would be the abercrombie mens and the abercrombie womens, if you want know you can search the Ruehl No.925 or abercrombie outlet in the www.google.com .

Posted by: fitch at November 25, 2009 09:57 PM

chaoying nfl jerseys
Giants Jerseys
Patriots Jerseys

Posted by: jerseysleague at November 29, 2009 04:10 AM

Paul Smith has been collaborating with a few different organizations recently and his latest venture sees him teaming up with Japanese bicycle saddle, Paul Smith bag, on a limited edition leather saddle. The release features Smith’s signature stripes where only 20 will be available at Paul Smith Clothing store in Japan and 8 at the Floral Street store in London. Get on it quick

Posted by: fsaf at November 29, 2009 11:42 AM

market to find a good job. And many young female think that marrying a good husband is better than finding a good job. Why these young people have such kind of thoughts. Their aims of their life are only to marry a good man. Different Louis Vuitton Neverfull MM people have different opinion. Some persons think that it is quite right for these girls to find a good husband. With the hot competition in this society, hunting for a job is not so easy now. But there also a lot of people think that girls Louis Vuitton Neverfull MM Replica should become independent and should not totally rely on the men. Can girls live well without men? Of course they can but only when they want. Girls should cheer up and they will live better.

Posted by: fanqin at December 1, 2009 02:06 AM

Thank you for the great job!In order to welcome to Christmas, recently,our company is on ugg boots promotional sales and the prices of all products such as ugg sundance II boots or ugg bailey button boots are lower than any time!And the biggest surprise is that you can buy one get one free,that is once you buy an ugg mayfaire boots , ugg coquette, or ugg classic crochet,you can get one gift for free.Don't hesitate, to get a free present, check it on http://www.uggsnowbootsbest.com/

Posted by: uggsnowbootsbest at December 1, 2009 04:05 AM

ugg boots sale at a time when large heat has set off a winter 08/09 to Ewha.Outlines the

warm wool winter fashion degree to wool crocheted wool ugg boots uk to join after the

body does not stimulate your skin soft, soft comfort UP. Fashion can not without
ugg boots presence in Winter.and ugg boots have many series.such as:
ugg classic
UGG Bailey Button boots
ugg nightfall
ugg kids

Posted by: uggboots at December 2, 2009 08:41 PM
Post a comment









Remember info?




Prove you're human. Type "human":