Thursday, June 18, 2009 4:51 PM
by
brian
Write 10,000 Lines of Code in 10 Minutes
I received an 'advertisement' in my inbox today from one of my email subscriptions.
This is what is exactly what is wrong with our industry! We have marketing ads like this that imply that more lines of code faster equates to a better product! CIO's and managers who don't know any better think this is great. Just plug it into your database and your done! Why's it taking you so long to code that specification? I thought you just had to use this new tool and you'd be done in 10 minutes?
So yeah, sure if you want an ERD driven, non-intuitive Alan Cooper nightmare, tools like this are a great option. [Note: If you don't know who Alan Cooper is get off my blog now and go read his books because you are robbing yourself of precious knowledge that will take you further in your career than Agile, TDD, DI, or your CS degree will ever come close to doing. (The book 'Slack' falls in this category too, but that's another post.)] But if you want an application that is going to stand the test of time, be flexible to the business needs, not require large amounts of work every time you tweak the database, or have any REAL business logic in it you're going to have to actually turn off the code generator from time to time, if not forever. And by real business logic I'm not talking about a SSN must match the pattern \d{3}-\d{2}-\d{4} or some data validation rule like that but something real like 'if the user has poor credit rating with agency whose web service you use for credit look-ups but has made good payment to your company for the past 12 months then this product should be available to them as part of their service account otherwise a product from this other category should be available based upon how much usage of their service per month they have and whether they pay by automatic debit or send in their payment'. Or: 'The system should allow different product to be available to different customers based upon whether the customer has called a company sales person and is looking for a product or has gone through the company public facing web site', and as a designer you don't want to maintain a whole different set of page or object for any of this. The system should through black box magic 'know' what to do based upon the parameters entered.
As an industry we will never be successful and rid ourselves of much cheaper foreign competitors until we can drive out these folks who think that QUANTITY is what counts and that QUALITY should take a back seat.
As a friend of mine said in response to an email thread about this subject:
I can get more food at Golden Corral but it's certainly not better than a lot of places to eat. I'd rather have a filet any day than a 1 lb sirloin. This sounds like bloatware not software to me. Buy your code in bulk at Sam's