Some thoughts about the differences of software developers.

Some thoughts about the differences of software developers.
http://delphisorcery.blogspot.com/2014/05/software-developers-and-generation-gap.html

Comments

  1. Well said. I consider the hipster and the dinosaur as the two extremes. If you think of it like a spectrum of developer personality types they'd be on opposite ends. While the hipster is constantly distracted by shiny objects the dinosaur buried his head in the sand years ago and never looked back. I'd like to think most developers fall somewhere between the two.

    ReplyDelete
  2. <-- Dinosaur with golden handcuffs.

    ReplyDelete
  3. Never had a chance to work with a "dinosaur" to be honest, though I did work with "hipsters" before. Both indeed can be quite detrimental to you overall goal. Regarding optimisations - the golden rule is: deliver then optimize.

    ReplyDelete
  4. Oh yeah, and I do not believe in "generation gap". It's personality issues.

    ReplyDelete
  5. Alexandru Ciobanu That is why I wrote "it's not about age, its about the mindset." in the article.
    I don't agree with your golden rule because I have seen delivered things that had abysmal performance and were practically unusable and the "then" never followed or was way to late because the damage was already done.

    Kenneth Cochran Fortunately I don't work with either of the extremes but in the Delphi/Pascal community I met some of those dinosaur types over the years.

    ReplyDelete
  6. Alexandru Ciobanu Optimization cannot be simply taken away from development process and be left out for later. Quite often design choices have great impact on speed and memory consumption. In such cases optimizing equals redesigning large parts of code. 

    What you can leave for later are localized optimizations in well encapsulated code.

    Also when it comes to core libraries and frameworks, optimization is far more important and in some cases not optimized code can be treated the same as non-functional code.

    ReplyDelete
  7. Dalija Prasnikar Agreed. However when I wrote about unnecessary optimizations I was rather talking about these kind of "writing some routine with pointers or asm because its X% faster when I use it with data that is bigger then X" which will never happen because the data never gets that big (YAGNI). We had source in our application that was written with PChar because someone once read that this is faster than string. Well it turned out in our cases it was not faster but we had to look through that code to make it unicode compatible and eventually even found bugs.
    Just because you can do low level things in Delphi does not mean you have to. And that is also why core libraries (i.e. RTL) and the compiler need to be optimized. Because then you can use them and don't need to invent your own optimized versions.

    ReplyDelete
  8. Stefan Glienke I absolutely agree. I understood what you wrote well. 

    My reply was meant to cover "golden rule" Alexandru Ciobanu mentioned. I don't like rules of any kind (in blank statements without explanations) because you will almost always have exceptions, and less skilled people tend to hang on to rules until they sink.

    ReplyDelete
  9. Dalija Prasnikar I think we all had to suffer from the application of that golden rule numerous times in the past. ;)

    ReplyDelete
  10. Stefan Glienke That is why I am so touchy about it ;-)

    ReplyDelete
  11. Dalija Prasnikar As with so many things, knowledge and experience must guide your decisions. There are other times when you need a profiler to help with optimization. 

    I now spend most of my time in legacy code, and have few concerns there about optimization -- the much larger issue is the need for refactoring, renaming, logic reduction, and whatnot. In general, correcting for someone whose knowledge and experience were insufficient.

    ReplyDelete
  12. I knew a developer that had been working on the same application for 20 years. He knew it like the back of his hand but that was the extent of his knowledge. He'd never made any attempt to improve his programming skills. He once bragged to me about a new feature he'd been working on for two months. He was very proud of his accomplishment. As he showed it to me I didn't have the heart to tell him he had reinvented the observer pattern.

    ReplyDelete
  13. As an indie, with a small suite of products, I'm in a constant battle between doing stuff "right" with how long it takes with the return of investment. What Bill Meyer said really resonates with me. Also, the goal as Alexandru Ciobanu is to deliver, then optimize and sometimes the later doesn't adequate attention. I've been on a quest the past 6 months to integrate other hire-able languages and frameworks to my products. Shoving the core Delphi code below a web-ui layer, it's helped to expand the diet of an old herbivore dinosaur.

    ReplyDelete
  14. Lol for the singleton. How proud was I the day that I discovered that some parts of my code were famous patterns! Facade, adaptor... what great inventions :) (sarcastic too)

    ReplyDelete

Post a Comment