• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Question: Re-Engineering Legacy Software - and the Michael Feathers book...

 
Ranch Hand
Posts: 69
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Chris,
The Feathers book is almost 10 years old...
How different the new book you are writing would be...
Ten years is a big time - and things have moved...
Wondering what areas would be covered in detail...

 
Sheriff
Posts: 17644
300
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I think the WELC book is going to stand the test of time and here's why:

1. The mistakes that lead to poorly factored and poorly designed code are usually because of violations of basic design principles and coding practices. All developers will be guilty of these violations now and then. Inexperienced developers are guilty of this all the time. It all depends on how diligent you are in cleaning up after yourself and correcting mistakes or heading off potential problems as early as possible.

2. In my experience, and there is literature out there that supports this, only one out of ten developers are good developers. Rather, the literature out there supports the proposition that 10% of all developers are at least an order of magnitude better than the other 90%. When I interview people for positions on my team, this ratio has been pretty accurate. The last time I hired people, I had to interview 15 to 20 people before I could fill one spot, so excuse me if I have a more cynical view: only one in ten developers are good developers.

3. Technologies change and become obsolete relatively quickly. Principles are like plutonium: they have a very long half-life (does anyone remember the song Plutonium is Forever?)

 
Junilu Lacar
Sheriff
Posts: 17644
300
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
If you're curious about the one out of ten thing, have a look at this: http://blog.codinghorror.com/skill-disparities-in-programming/
 
Bartender
Posts: 3225
34
IntelliJ IDE Oracle Spring Chrome Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Junilu Lacar wrote:only one out of ten developers are good developers



out of curiosity what is the criteria you would use to decide a good developer? Is it the problem solving skills i.e coming up with algorithm to solve complex problems? or this got something to do with disciplined software development?
 
Junilu Lacar
Sheriff
Posts: 17644
300
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Mohamed Sanaulla wrote:what is the criteria you would use to decide a good developer?


It's a combination of a number of things: openness to constructive criticism, critical thinking, coachability, eagerness to learn, attitude, general knowledge of programming concepts, knowledge of design principles and patterns, knowing how to use tools, resourcefulness. I don't do interviews; I do auditions when I hire and I'll spend up to two hours working closely with the candidate to get a sense for these intangibles.

I look more at hiring people, not just declared skills. New techniques and technologies are things that can be taught, given the right person. If you don't have the right person, the effort you put into coaching, mentoring, and trying to help them develop is often wasted and that's frustrating. My success rate with this approach is very high but it also takes a lot of effort on my part, which I don't mind too much since it's really par for the course of my job.
 
Author
Posts: 18
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
First off, let me say that the Feathers book is AWESOME. I've been re-reading a lot recently as research for my own book. As Atul says, it was published 10 years ago, but I don't think it's showing its age at all. The principles it explains (such as finding a seam for introducing tests) are still valid, and the refactoring techniques are applicable to modern OO code.

Please see my comment here for an explanation of how my book is different.
 
atul khot
Ranch Hand
Posts: 69
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks for your note Chris! And yeah - I got the answer by following the link!
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
reply
    Bookmark Topic Watch Topic
  • New Topic