Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase 12345»»»

Be a Craftsman Expand / Collapse
Author
Message
Posted Saturday, August 1, 2009 12:29 PM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: Administrators
Last Login: Yesterday @ 4:10 PM
Points: 33,095, Visits: 15,202
Comments posted to this topic are about the item Be a Craftsman






Follow me on Twitter: @way0utwest

Forum Etiquette: How to post data/code on a forum to get the best help
Post #763643
Posted Saturday, August 1, 2009 2:03 PM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Yesterday @ 8:06 PM
Points: 36,786, Visits: 31,243
Man, you're on a roll with great topics and write-ups about those topics.

In Jeff Attwood's article, he posted "what we do is craftsmanship, not engineering" and I have to take strong exception to that. A lot of folks practice what I call "crapmanship".

The mantra for many GUI programmers has become "If you have to write comments, your code isn't good enough" and then refuse to add even a simple header to explain the purpose of the class or even who wrote it and when. Crapmanship prevails and they've gotten real good at justifying it. Don't get me started on the use of Crapmanship tools like Hibernate and NHibernate... I love it when a GUI Developer justifies the performance problems of an "eager get" that has joins to 32 different tables with functions on the join criteria and also has the nerve to blame the performance problem on SQL Server. I also love the morons that designed the tables in such a fashion as to be a part of the reason the GUI Developer felt it necessary to do an "eager get".

Shifting gears, let's also take a look at the Crapmanship that many writers of SQL practice whether they're GUI programmers or database programmers. Same problems occur there. No documentation, horribly formatted code, the use of all lower case or all upper case code, rampant use of RBAR, etc. I can't speak of programming technique in C# or Java, but if they practice the same Crapmanship there as what they do in T-SQL, the world is in big trouble.

This editorial fits in with your last one... no one considers what will happen in the future even if they practice so called "best practices" because, IMHO, some of the best practices (like not including documentation in code) are wrong.

Is code "experimental" in nature rather than "engineered"? I'd have to say it's certainly swung that way. No one really does any up-front planning at the code level anymore. No one says "Before we decide, can someone show us the impact on performance of these two different methods?" Nah... they say "here's what it should look like on the screen and what we want to see if you push this button." No one tells the developer "Look, dumbass, you can't use NHibernate here because it will crush performance."

Getting back to people who write SQL... just go through this forum and look at the code that some folks offer as solutions to problems. It's quite indicative of what happens in the real world. Crappy to read and crappy performance.

I strongly believe that code shouldn't actually be "engineered" because it stifles creativity and you may miss a wonderful new method of doing things if software design is draconian in nature. But I don't see much in the line of Craftmanship in this world of code. Not only is software engineering mostly dead, but so is the idea of Craftmanship in code because "good enough" will always be shippable in the eyes of management and in the minds of DILIGAF developers that simply want to get things off their plate or don't have the hair to say "No... and here's why".

"In this order, make it work, make it fast, make it pretty... and it ain't done 'til it's pretty." --Jeff Moden, circa 1996


--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."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #763663
Posted Saturday, August 1, 2009 5:14 PM
SSC-Enthusiastic

SSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-Enthusiastic

Group: General Forum Members
Last Login: Saturday, June 8, 2013 9:40 AM
Points: 142, Visits: 286
I'm with Steve and Jeff, but I would frame it differently. I think that computing is still in its infancy and the path towards craftsmanship, or professionalization, is a matter of growth that will take decades or even centuries to achieve. As an example, the first doctors (witchdoctors) screwed things up for many generations before they slowly codified standards of conduct and procedure.

We are in a phase where business pushes for immediate results and, until they have suffered enough startling setbacks, we are going to have to deal with a lot of crappy programming. Are we ready to professionalize the trade? This might be a good time to create analogs to the AMA, medical boards, and mandatory internship programs before we certify someone as an "informatics engineer". But instead of "Microsoft Certified _blank_ Engineer" we would want something more independent, respectable even. Maybe we can spur ACM, IEEE, and academia to get something going?

Wouldn't it be great, some day, to haul a creep in front of the informatics board for writing unmanageable code, despite repeated warnings and fines, then drum him out of the profession?
Post #763682
Posted Saturday, August 1, 2009 6:12 PM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Yesterday @ 8:06 PM
Points: 36,786, Visits: 31,243
So long as Microsoft isn't responsible for the certs. I see no reason to know how to write in C# if I'm going to be a DBA or Database developer. It's a bit like saying that you have to be both a heart surgeon and a brain surgeon even if you only want to work on hearts.

--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."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #763686
Posted Saturday, August 1, 2009 7:09 PM
SSC-Enthusiastic

SSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-Enthusiastic

Group: General Forum Members
Last Login: Saturday, June 8, 2013 9:40 AM
Points: 142, Visits: 286
A three year residency could be specialized in things like web development, graphics, databases, or networks. And the more challenging sub-specialties could have a fellowship after the residency.

So, to be a DBA you would probably be done after the residency (hey, it ain't brain surgery!) However, it might not be a bad idea to have some exposure to procedural languages, with respect to RDBMS, because you may end up maintaining CLR routines on SQL Server. And, what if you had landed in the Teradata world? (I just did.) I'm only getting started with it, but it looks like you can't even create a user-defined function without compiling a little C.
Post #763695
Posted Saturday, August 1, 2009 7:28 PM
Hall of Fame

Hall of FameHall of FameHall of FameHall of FameHall of FameHall of FameHall of FameHall of FameHall of Fame

Group: General Forum Members
Last Login: Sunday, July 27, 2014 12:14 PM
Points: 3,433, Visits: 14,423
I can't speak of programming technique in C# or Java, but if they practice the same Crapmanship there as what they do in T-SQL, the world is in big trouble.


Well it is worse in C# that is the reason Microsoft product group developers and the developer forum staff wants stack trace because stack trace shows actually what the developer is doing. I want to see relevant code and relevant is the operative word because I only need to see related code.

But instead of "Microsoft Certified _blank_ Engineer" we would want something more independent, respectable even. Maybe we can spur ACM, IEEE, and academia to get something going?


I think ACM and IEEE had a software developer certification that I think was sub standard compared to Microsoft and Sun developer exams. I looked into taking it, the cost was high but there was no code if I remember right. The current Microsoft exams makes you a developer because the base exam 70-536 is one of the most comprehensive development exam I have seen.

I think software will be craft if there is design, development, testing before deployment, only rich companies pay for such software. So there are very few developers who can take an idea and convert it to a deployed product.



Kind regards,
Gift Peddie
Post #763698
Posted Saturday, August 1, 2009 9:08 PM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: Administrators
Last Login: Yesterday @ 4:10 PM
Points: 33,095, Visits: 15,202
Jeff Moden (8/1/2009)
Man, you're on a roll with great topics and write-ups about those topics.


Glad you like them, and I'll try to keep them going.







Follow me on Twitter: @way0utwest

Forum Etiquette: How to post data/code on a forum to get the best help
Post #763707
Posted Sunday, August 2, 2009 10:03 AM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Yesterday @ 8:06 PM
Points: 36,786, Visits: 31,243
David Korb (8/1/2009)
...because you may end up maintaining CLR routines on SQL Server.


Heh... just having a little fun here... if you know T-SQL well enough, there isn't a need for CLR routines except maybe for a nice little Regex CLR and then you could get a specialist to create one for you. Once written, it needs no maintenance.

And, what if you had landed in the Teradata world? (I just did.) I'm only getting started with it, but it looks like you can't even create a user-defined function without compiling a little C.


That's a bit like asking what if an MD suddenly had to become a Vet (which is just a difficult as being an MD, by the way). If that happened and like anyone else in that situation, I'd certainly take the time to ramp up in C and very quickly. Fortunately, Teradata isn't the only show in town.

Just like a heart specialist, there's nothing wrong with specializing in the world of databases. In fact, there's nothing wrong in specializing in just one. Some will argue with that but consider this... as smart as they are, I probably wouldn't let a human heart specialist maintain the heart of my favorite race horse or vice versa.


--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."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #763748
Posted Sunday, August 2, 2009 11:40 AM
SSC-Enthusiastic

SSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-EnthusiasticSSC-Enthusiastic

Group: General Forum Members
Last Login: Saturday, June 8, 2013 9:40 AM
Points: 142, Visits: 286
I spent about 40 minutes crafting a reply, but when I hit "Preview" received a "The session identity provided has expired or could not be found." message. All the work was lost. Guess I'm done with this thread!
Post #763766
Posted Sunday, August 2, 2009 11:44 AM


SSC-Dedicated

SSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-DedicatedSSC-Dedicated

Group: General Forum Members
Last Login: Yesterday @ 8:06 PM
Points: 36,786, Visits: 31,243
David Korb (8/2/2009)
I spent about 40 minutes crafting a reply, but when I hit "Preview" received a "The session identity provided has expired or could not be found." message. All the work was lost. Guess I'm done with this thread!


Ugh! I know what you mean. That's been a problem on this forum forever. I've been bit by it many times. I've gotten into the habit of copying what I typed before hitting any buttons and it's been a life saver.

40 minutes, eh? What was the gist of it?


--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."

(play on words) "Just because you CAN do something in T-SQL, doesn't mean you SHOULDN'T." --22 Aug 2013

Helpful Links:
How to post code problems
How to post performance problems
Post #763768
« Prev Topic | Next Topic »

Add to briefcase 12345»»»

Permissions Expand / Collapse