The 10X Programmer

  • djackson 22568 (9/21/2016)


    Jeff Moden (9/21/2016)


    Steve Jones - SSC Editor (9/21/2016)


    Jeff Moden (9/19/2016)


    To be honest, I've yet to run into a supposed 10X programmer that's worth their salt.

    Look in the mirror

    Thank you for the compliment but I'm definitely not a 10X programmer. In fact, I'm sub 1X because it takes me a bit extra time to do testing so the QA doesn't have to kick it back for some reason.

    Which is why I agree with Steve. It isn't how much you do, it is how good you do.

    Think of it this way, if you spend an extra hour doing testing, and it eliminates 10 hours of testing in QA, isn't that better?

    Heh... no doubt there and fully agreed! It's just not what most people would expect as a 10X programmer. Most people think 10X is quantity and I guess that's what I meant by my initial comment.

    And, unfortunately, some shops don't believe in the quality and bug free thing. All they can think of is deadlines that someone determined while riding in an elevator or on the golf course.

    One of my mantra's is "Just because you want it real bad doesn't mean that I'll ever give it to them that way... even if it doesn't meet their unreasonable deadline to push out bad product". 😀

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Steve Jones - SSC Editor (9/21/2016)


    10X doesn't mean more code. It doesn't mean more functions or features. It doesn't mean 1/10th the time. It means 10x in terms of effectiveness and value.

    I agree. I've also worked for some folks that don't. I wish more managers and the developers that work for them understood that rework usually weighs in at 8 times longer than doing it right the first time. "Meet the schedule" is frequently the only goal and those same shops have unreasonable schedule expectations.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Jeff Moden (9/21/2016)


    Steve Jones - SSC Editor (9/21/2016)


    10X doesn't mean more code. It doesn't mean more functions or features. It doesn't mean 1/10th the time. It means 10x in terms of effectiveness and value.

    I agree. I've also worked for some folks that don't. I wish more managers and the developers that work for them understood that rework usually weighs in at 8 times longer than doing it right the first time. "Meet the schedule" is frequently the only goal and those same shops have unreasonable schedule expectations.

    It is changing, albeit slowly. More and more companies are starting to care about quality (still a overwhelming minority) as well as speed.

  • Steve Jones - SSC Editor (9/21/2016)


    Jeff Moden (9/21/2016)


    Steve Jones - SSC Editor (9/21/2016)


    10X doesn't mean more code. It doesn't mean more functions or features. It doesn't mean 1/10th the time. It means 10x in terms of effectiveness and value.

    I agree. I've also worked for some folks that don't. I wish more managers and the developers that work for them understood that rework usually weighs in at 8 times longer than doing it right the first time. "Meet the schedule" is frequently the only goal and those same shops have unreasonable schedule expectations.

    It is changing, albeit slowly. More and more companies are starting to care about quality (still a overwhelming minority) as well as speed.

    I'd say that you can't have true speed without quality.

    Gaz

    -- Stop your grinnin' and drop your linen...they're everywhere!!!

  • agree

  • I wonder how attractive a 10x programmer (or DBA in this case) would be to a manager. Sure, it's great to have a person that does the work of 10. For complex work on a big project they are invaluable, but there is a good chance that they would get bored with the mundane, day-to-day stuff. Then there is the very real risk that the super-programmer would be snatched up by a bigger company with deeper pockets. Brilliance is good but impermanence is bad.

    What I would rather have is specialisation. If you have a team of 4 DBAs, have one, say, specialise in performance tuning and the DB-Engine, one in reports, cubes and all of that stuff, one in the business logic and the complex queries that is demanded of the company and one in the new features that come around every 2 years with every new version of SQL Server. Then every year or two, rotate the people in a tuition-style arrangement so that one adds breath to their knowledge as well as depth. Needless to say, there is also day-to-day work to be done.

    So, rather than have one person who can do everything really quickly and well, I'd rather have a team that has these skillsets amongst them — that is, one who can implement a cube-based report based on a client's or a manager's wishes quickly and well and another who can optimise a mediocre-performing SP quickly and well and another who has practical experience of Master Data Services, Log-Shipping, In-Memory-OLTP, Columnstore Indexes, Azure and so on.

    And, on a final note, the fora here are designed to allow people to expose their ignorance [1] with the intention of improving themselves [2], of getting a problem solved. I have seen problems posted that make me wonder. However, I was surely that poster 17 years' ago when I was starting out, making the transition from FileMaker Pro to SQL Server 7. I am very thankful to the people who have helped me along the way. To some extent, it is like riding a bike, until you can do it it is hard, then, once you can do it, is easy. While you learning, you need help and you need to apply yourself in practicing.

    [1] Although I just seem to rant about entity framework all of the time.

    [2] or possibly getting their homework done.

  • Jeff Moden (9/21/2016)


    Steve Jones - SSC Editor (9/21/2016)


    Jeff Moden (9/19/2016)


    To be honest, I've yet to run into a supposed 10X programmer that's worth their salt.

    Look in the mirror

    Thank you for the compliment but I'm definitely not a 10X programmer. In fact, I'm sub 1X because it takes me a bit extra time to do testing so the QA doesn't have to kick it back for some reason.

    Of course, spending a little time upfront to unit test our work means not having our work kicked back from QA and avoiding the additional status meetings and desk side interruptions regarding such. That's ultimately a big time saver. Real productivity shouldn't be measured by how fast we can but rather how fast we can push complete and solid code from concept to production.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

  • Sean Redmond (9/22/2016)


    I wonder how attractive a 10x programmer (or DBA in this case) would be to a manager. Sure, it's great to have a person that does the work of 10. For complex work on a big project they are invaluable, but there is a good chance that they would get bored with the mundane, day-to-day stuff. Then there is the very real risk that the super-programmer would be snatched up by a bigger company with deeper pockets. Brilliance is good but impermanence is bad.

    What I would rather have is specialisation. If you have a team of 4 DBAs, have one, say, specialise in performance tuning and the DB-Engine, one in reports, cubes and all of that stuff, one in the business logic and the complex queries that is demanded of the company and one in the new features that come around every 2 years with every new version of SQL Server. Then every year or two, rotate the people in a tuition-style arrangement so that one adds breath to their knowledge as well as depth. Needless to say, there is also day-to-day work to be done.

    So, rather than have one person who can do everything really quickly and well, I'd rather have a team that has these skillsets amongst them — that is, one who can implement a cube-based report based on a client's or a manager's wishes quickly and well and another who can optimise a mediocre-performing SP quickly and well and another who has practical experience of Master Data Services, Log-Shipping, In-Memory-OLTP, Columnstore Indexes, Azure and so on.

    And, on a final note, the fora here are designed to allow people to expose their ignorance [1] with the intention of improving themselves [2], of getting a problem solved. I have seen problems posted that make me wonder. However, I was surely that poster 17 years' ago when I was starting out, making the transition from FileMaker Pro to SQL Server 7. I am very thankful to the people who have helped me along the way. To some extent, it is like riding a bike, until you can do it it is hard, then, once you can do it, is easy. While you learning, you need help and you need to apply yourself in practicing.

    [1] Although I just seem to rant about entity framework all of the time.

    [2] or possibly getting their homework done.

    I think that anyone that's considered to be a 10X, or even a "mere" 2-3X is incredibly valuable if they also do one thing that many do not and that is to mentor others. I teach in house courses on technique and methods and I use every peer review of code as a teaching opportunity. I sit in the middle of the Front-End Developers and very close to the Database Developers so that I can "hear" if they've having a problem that I can help with (heh... I also protect them from drive-by shootings by users and managers). As a result, their database and front end functionality has improved a huge amount and they're tickled about it. They've even started bragging about the "killer" improvement they made or the new code that runs so very fast and... even better... they've learned enough to help each other science out difficult code. I could leave and they'd survive quite nicely. It gives me time to do the System DBA thing, find and fix code that might not be doing so well, and provide a helping hand on some of the larger database projects.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Jeff Moden (9/22/2016)


    Sean Redmond (9/22/2016)


    I wonder how attractive a 10x programmer (or DBA in this case) would be to a manager. Sure, it's great to have a person that does the work of 10. For complex work on a big project they are invaluable, but there is a good chance that they would get bored with the mundane, day-to-day stuff. Then there is the very real risk that the super-programmer would be snatched up by a bigger company with deeper pockets. Brilliance is good but impermanence is bad.

    What I would rather have is specialisation. If you have a team of 4 DBAs, have one, say, specialise in performance tuning and the DB-Engine, one in reports, cubes and all of that stuff, one in the business logic and the complex queries that is demanded of the company and one in the new features that come around every 2 years with every new version of SQL Server. Then every year or two, rotate the people in a tuition-style arrangement so that one adds breath to their knowledge as well as depth. Needless to say, there is also day-to-day work to be done.

    So, rather than have one person who can do everything really quickly and well, I'd rather have a team that has these skillsets amongst them — that is, one who can implement a cube-based report based on a client's or a manager's wishes quickly and well and another who can optimise a mediocre-performing SP quickly and well and another who has practical experience of Master Data Services, Log-Shipping, In-Memory-OLTP, Columnstore Indexes, Azure and so on.

    And, on a final note, the fora here are designed to allow people to expose their ignorance [1] with the intention of improving themselves [2], of getting a problem solved. I have seen problems posted that make me wonder. However, I was surely that poster 17 years' ago when I was starting out, making the transition from FileMaker Pro to SQL Server 7. I am very thankful to the people who have helped me along the way. To some extent, it is like riding a bike, until you can do it it is hard, then, once you can do it, is easy. While you learning, you need help and you need to apply yourself in practicing.

    [1] Although I just seem to rant about entity framework all of the time.

    [2] or possibly getting their homework done.

    I think that anyone that's considered to be a 10X, or even a "mere" 2-3X is incredibly valuable if they also do one thing that many do not and that is to mentor others. I teach in house courses on technique and methods and I use every peer review of code as a teaching opportunity. I sit in the middle of the Front-End Developers and very close to the Database Developers so that I can "hear" if they've having a problem that I can help with (heh... I also protect them from drive-by shootings by users and managers). As a result, their database and front end functionality has improved a huge amount and they're tickled about it. They've even started bragging about the "killer" improvement they made or the new code that runs so very fast and... even better... they've learned enough to help each other science out difficult code. I could leave and they'd survive quite nicely. It gives me time to do the System DBA thing, find and fix code that might not be doing so well, and provide a helping hand on some of the larger database projects.

    That is an uplifting story. I applaud what you are doing, and hope you continue to have that opportunity.

    I am training someone right now, and he seems to really appreciate what I am doing. I enjoy that most of all. One nice thing is when I can publicly compliment him for a job well done. Nobody recognizes my involvement - but it is more important to me that he does well since that means he is more likely to stay - which of course makes my job easier.

    People don't always recognize that doing things like you are doing end up paying back more than it costs us.

    Dave

  • Jeff Moden (9/21/2016)


    djackson 22568 (9/21/2016)


    Jeff Moden (9/21/2016)


    Steve Jones - SSC Editor (9/21/2016)


    Jeff Moden (9/19/2016)


    To be honest, I've yet to run into a supposed 10X programmer that's worth their salt.

    Look in the mirror

    Thank you for the compliment but I'm definitely not a 10X programmer. In fact, I'm sub 1X because it takes me a bit extra time to do testing so the QA doesn't have to kick it back for some reason.

    Which is why I agree with Steve. It isn't how much you do, it is how good you do.

    Think of it this way, if you spend an extra hour doing testing, and it eliminates 10 hours of testing in QA, isn't that better?

    Heh... no doubt there and fully agreed! It's just not what most people would expect as a 10X programmer. Most people think 10X is quantity and I guess that's what I meant by my initial comment.

    And, unfortunately, some shops don't believe in the quality and bug free thing. All they can think of is deadlines that someone determined while riding in an elevator or on the golf course.

    One of my mantra's is "Just because you want it real bad doesn't mean that I'll ever give it to them that way... even if it doesn't meet their unreasonable deadline to push out bad product". 😀

    Jeff, I think you've made a very good point here, one which I didn't think of when Steve first wrote the article upon which this thread is based. The point you've made is that meeting deadlines isn't the single greatest metric that we should use for good software, but that it still is to a large extent, the only metric that many companies/agencies use. I'm not saying deadlines should always be ignored. I'm just saying that single minded allegiance to deadlines alone will lead to people writing over other people's code, in an effort to get things done ASAP.

    Kindest Regards, Rod Connect with me on LinkedIn.

  • Sean Redmond (9/22/2016)


    ...but there is a good chance that they would get bored with the mundane, day-to-day stuff. Then there is the very real risk that the super-programmer would be snatched up by a bigger company with deeper pockets. Brilliance is good but impermanence is bad.

    Rarely happens. Far, far too companies actively pursue individuals, or are even aware of them. If people are happy with their job, then they don't look or appear to recruiters.

    You always can have impermanence. That's the nature of open workplaces. Not sure this is worth avoiding a great worker.

    What I would rather have is specialisation. If you have a team of 4 DBAs, have one, say, specialise in performance tuning and the DB-Engine, one in reports, cubes and all of that stuff, one in the business logic and the complex queries that is demanded of the company and one in the new features that come around every 2 years with every new version of SQL Server. Then every year or two, rotate the people in a tuition-style arrangement so that one adds breath to their knowledge as well as depth. Needless to say, there is also day-to-day work to be done.

    A great worker has nothing to do with being specialized or not. You're conflating and assuming things. As Jeff mentioned, a 10xer might improve the average, perhaps lowering their advantage over others, but maybe not. Maybe they continue to improve.

    There's not mention, nor thought to me, that a 10xer doesn't do day to day work. Someone can be much, much more productive than others at mundane tasks. I used to be able to separate a person from the company (change accounts, remove security, archive, etc.) in minutes. Others took over an hour.

    And, on a final note, the fora here are designed to allow people to expose their ignorance [1] with the intention of improving themselves [2], of getting a problem solved. I have seen problems posted that make me wonder. However, I was surely that poster 17 years' ago when I was starting out, making the transition from FileMaker Pro to SQL Server 7. I am very thankful to the people who have helped me along the way. To some extent, it is like riding a bike, until you can do it it is hard, then, once you can do it, is easy. While you learning, you need help and you need to apply yourself in practicing.

    [1] Although I just seem to rant about entity framework all of the time.

    [2] or possibly getting their homework done.

    Absolutely. There is no complaint about people writing poor T-SQL code because of ignorance. I'm thrilled they ask questions here to get better, or find better solutions. I'm dismayed they weren't taught more before getting a job, but that's the way of the world. It's why this site exists. We want to improve people's skills.

  • Rod at work (9/22/2016)


    Jeff Moden (9/21/2016)


    djackson 22568 (9/21/2016)


    Jeff Moden (9/21/2016)


    Steve Jones - SSC Editor (9/21/2016)


    Jeff Moden (9/19/2016)


    To be honest, I've yet to run into a supposed 10X programmer that's worth their salt.

    Look in the mirror

    Thank you for the compliment but I'm definitely not a 10X programmer. In fact, I'm sub 1X because it takes me a bit extra time to do testing so the QA doesn't have to kick it back for some reason.

    Which is why I agree with Steve. It isn't how much you do, it is how good you do.

    Think of it this way, if you spend an extra hour doing testing, and it eliminates 10 hours of testing in QA, isn't that better?

    Heh... no doubt there and fully agreed! It's just not what most people would expect as a 10X programmer. Most people think 10X is quantity and I guess that's what I meant by my initial comment.

    And, unfortunately, some shops don't believe in the quality and bug free thing. All they can think of is deadlines that someone determined while riding in an elevator or on the golf course.

    One of my mantra's is "Just because you want it real bad doesn't mean that I'll ever give it to them that way... even if it doesn't meet their unreasonable deadline to push out bad product". 😀

    Jeff, I think you've made a very good point here, one which I didn't think of when Steve first wrote the article upon which this thread is based. The point you've made is that meeting deadlines isn't the single greatest metric that we should use for good software, but that it still is to a large extent, the only metric that many companies/agencies use. I'm not saying deadlines should always be ignored. I'm just saying that single minded allegiance to deadlines alone will lead to people writing over other people's code, in an effort to get things done ASAP.

    Exactly. Thanks for the feedback, Rod.

    To continue, deadlines are, in fact, important. I just don't believe in meeting a deadline by delivering "dead" code or dying trying to hit it with the right code. A lot of "bad code" is because people with kids are trying to keep their jobs and so believe that pleasing a manager that regularly schedules over-aggressively and totally inflexibly need to change their ways, especially if it's a "7 Red Lines" project.

    The Expert and 7 Red Lines (if you haven't seen this before, then caution... you might die watching it either laughing or crying because it's oh so true) 😛

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • I think I have met one 10x developer in my life.

    Started learning Apache Cassandra on Monday had a pull request accepted to fix a bug in it in the next working week.  He picked things up incredibly quickly and was was demonstratively competent.  What he learned stuck.

    What made him a 10x developer for me was that he loved to teach and had a natural talent for making everything seem easy.  I found I was almost absorbing knowledge from him through skin absorption.  He was a catalyst for making 10 other programmers better.

    As to advertising for a 10x developer, these days we probably wouldn't.  What we know is that if we have a 50:50 gender split of equally skilled programmers and ask them to rank themselves the women will rank themselves low.  They are less likely to apply for a position advertised as such even though they are qualified to do so.

     

  • The greatest danger of a '10x programmer' or a 'superstar programmer' is WHO THINKS THEY ARE SUCH.

    • This reply was modified 3 years, 7 months ago by  skeleton567.

    Rick
    Disaster Recovery = Backup ( Backup ( Your Backup ) )

  • skeleton567 wrote:

    The greatest danger of a '10x programmer' or a 'superstar programmer' is WHO THINKS THEY ARE SUCH.

    +1 Billion for that comment!!!

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

Viewing 15 posts - 31 through 45 (of 49 total)

You must be logged in to reply to this topic. Login to reply