Apps

Software development experience: Is time, depth, or breadth most important?

Answer this one-question poll to let us know what you think is most important when it comes to software development experience: time, depth, or breadth.

I have been hiring folks, and something that sticks out in the process is that there are three major aspects of experience in software development: the amount of time you have been doing something, how deeply you have gone in one skill, and how many different things you have worked with in your career.

I think there is a sweet spot that is unobtainable: too little time in a skill and you do not know it well, too little depth and what you know is not useful, and not enough breadth holds you back from being able to do a lot of things. There just is not enough time in the day to get lots of time, depth, and breadth.

Until the last several years, I had a lot of breadth without depth or time, which was a side effect of being dropped into a lot of projects to clean up issues and then moving on. Now I am a specialist, with a pile of time and depth in one particular tech stack to the detriment of other skills, and I feel like I need to branch out a little more.

J.Ja

Keep your engineering skills up to date by signing up for TechRepublic's free Software Engineer newsletter, delivered each Tuesday.

About

Justin James is the Lead Architect for Conigent.

32 comments
Manju.L
Manju.L

Software development experience: Is time, depth, or breadth most important? Overview There are three major aspects of experience in software development: the amount of time you have been doing something, how deeply you have gone in one skill, and how many different things you have worked with in your career. Why is time –the most important? With vast array of technology ,it can be very difficult to figure out where to invest the best time . Problem solving is the core, without problems there wouldn’t be a need for software. The importance remains here; in what amount of time “can the problem be solved”. Software development is all about describing the metaphysical., that cannot be seen. So how much time does it consume to develop the best software interface counts. Dealing with users is the next; software isn’t developed for alone or oneself, others use it! Unless the software doesn’t effectively respond to the users activities and is slow to stimulus is considered troublesome. The software produced by projects covers a broad application domain, for this reason complexity increases, hence projects consume more time.

xingyu_liu
xingyu_liu

I prefer to focus on one thing if it is possible, but the rest question is I don't know how deep should I go.

StevenDDeacon
StevenDDeacon

To be successful every development project must conform to the Golden Triangle. The Base of the triangle is Breadth. The other two sides are Time and Depth. As the Breadth Base Line increases so does the lines of Time and Depth. However, this is only a two dimensional depiction. The real depiction is that of a three dimensional pyramid. The base of the Pyramid is the Breadth. The four sides are Time, Depth, Tactics, and Logistics.

barrynovak5
barrynovak5

...as you said, is ideal. I think the better route to getting there is breadth. With more experience/exposure to more technologies, you'll spend less time getting up to speed on a new one. You'll see patterns repeat themselves across different languages and platforms, and that will put you in a better position to be productive faster in a new environment.

Pepsi_Coke
Pepsi_Coke

The 3 all are important. But if about choosing just one it deals, then, I would start with depth. In fact, by my own experience, I must state that depth is the main key to achieve the best outcomes. Next, breadth, and finally time. Although, anyway, I would emphasize about those 3 factors as the whole set needed to develop a succesful project. Those 3 things united into a more entire and major thing called: experience (founded within an invisible background called talent)

dogknees
dogknees

I think it's a bit like the old Time vs Space trade-off from development. Agree a bit with Chip. If you learn the fundamentals well and have practice applying them, you can at least get a good start on learning any new system. The individual paradigms or patterns or vernacular in a language or environment do still take time and it helps a lot if you can get talk to someone familiar with the gotcha's that every system has buried somewhere.

mikewor
mikewor

My view is that If you want a walk on water developer, depth is the key (but with some breadth). If you're looking for an analyst/designer, then you need the breadth to be able to glue the various technologies together (with sufficient depth to understand the issues, but not necesssarily solve them).

Tony Hopkinson
Tony Hopkinson

Gives you a chance at depth and breadth. Course you don't have to take it. :( The twos thing nearly forty years of programming / development/ whatever it is what I do is called, is how to broaden and deepen as required. Well three things actually, I always need to do one or the other every day.

nate.irvin
nate.irvin

I don't think time really matters - obviously experience and maturity count, but we've all worked with people who've been doing something for years who seem less competent than the average beginner. I had a hard time deciding between breadth and depth but I eventually voted depth. Being well-rounded is important, but I think it's more important to master something. Craftsmanship counts more in my book than mobility. I try in my career to master the skillsets I've chosen/enjoy while still keeping an eye on other technologies and techniques and making sure to dabble in them from time to time.

Tony Hopkinson
Tony Hopkinson

You can always find something you don't understand or you understood wrong or you understood imperfectly. If someone says to you they know everything there is to know about something, it's either trivial, or they are a deluded idiot.

Tony Hopkinson
Tony Hopkinson

For instance everything you knew about basic geometry needs a good refresh. :) I believe you were looking for tetrahedron. Time would be volume... Had to look that up and now I've forgotten how to do Fortran. :p

Tony Hopkinson
Tony Hopkinson

Quite the contrary. Depth is something I see more as pleasing on a personal level. Most of the time it's interpreted to be depth in a product, a very iffy place to be in our game. Not to mention except in very niche market spaces, the chance to apply it is n't what anyone would call a common experience. There's too many assumptions round depth to suit me.

Tony Hopkinson
Tony Hopkinson

One that can only walk on water.... I'd also say "but not necessarily solve them without a bit or learning and research, first"

Tony Hopkinson
Tony Hopkinson

but having a bucket full of experience across a broad range of tools and domains has kept me a in bread and jam too often to risk it. Also knowing more than one way, is just as useful as knowing the "best" way. Am I scared to going to deep , or are you scared of spreading yourself out? Who gives a stuff, if you are getting a decent amount of money for doing something you enjoy. :)

Sterling chip Camden
Sterling chip Camden

Depth in *some* areas makes it possible for you to learn anything. Breadth alone does not do that. A combination of the two makes the new less distressing.

Tony Hopkinson
Tony Hopkinson

The deeper you go the more effort you need to put in to go deeper. Chances of you making use of it in your next cookie cutter CRUD app, are pretty slim as well... :(

Sterling chip Camden
Sterling chip Camden

Time = (Depth * Breadth) + RepetitiveNonsense Given constant Time, the greater the RN, the less the D or B.

dogknees
dogknees

The knowledge of a wide variety of systems/languages/paradigms will always come in handy and often yields ideas those that work in one area will miss.

Tony Hopkinson
Tony Hopkinson

A philosopher ends up knowing less and less about more and more. A scientist ends up knowing more and more about less and less. So the ultimate generalist knows nothing about everything And the utimate expert knows everything about nothing. :D

dogknees
dogknees

The deeper you get the further there is to go and the harder it is to get there.

Tony Hopkinson
Tony Hopkinson

for me then I went back to it about 2003 for a bit.

Sterling chip Camden
Sterling chip Camden

Though my Fortran years were '82-'85, starting with Fortran IV and 5, then moving to 77 -- heh, I guess Microsoft isn't the only one who has trouble numbering versions.

Sterling chip Camden
Sterling chip Camden

They were the only way to convert between numbers and strings (we even used them in F77, not knowing about READ/WRITE with internal files).

Sterling chip Camden
Sterling chip Camden

I agree that confidence in your ability to learn is the biggest benefit.

Tony Hopkinson
Tony Hopkinson

You must stretch yourself by either broadening or deepening. New Domains, new environments, new languages. Not just new as in .net 4.5 or EF etc. Being forced to use VB taught me lot, going back to Fortran made me remember a lot. It's not so much people who don't can't as they aren't confident about it, when it comes to getting opportunities to do new things in new ways, and then doing them, knowing that you can with some effort is a real boon. There's always something new about what you are doing, if you look for it.

Tony Hopkinson
Tony Hopkinson

Want a good experinec in programming and design. Plan and implement a three course meal for eight. You'll learn more about practical programming in that day, than you will from months in the classroom. :p