Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Programming

How To Develop Unmaintainable Software 211

jones_supa writes "Greg Jorgensen specializes in debugging, fixing, maintaining, and extending legacy software systems. His typical client has a web site or internal application that works, more or less, but the original developer isn't available. Greg lists some things you can do in your own software projects to keep him in business. In summary, the list goes as follows: Customize your development environment a lot, don't make it easy for the next programmer to start working on the code. Create an elaborate build and deployment environment and remember to leave out the documentation. Don't bother with a testing/staging server but instead have secret logins and backdoor URLs to test new features, and mix test data with real data in your database. Don't bother with a well-understood framework, write everything from scratch instead. Add dependencies to specific versions of libraries and resources, but don't protect or document those dependencies. For the icing of the cake, use the coolest mix of cutting-edge programming languages."
This discussion has been archived. No new comments can be posted.

How To Develop Unmaintainable Software

Comments Filter:
  • by TempleOS ( 3394245 ) on Tuesday October 15, 2013 @07:01PM (#45137723)
    You will never find good code in a project. All code is awful. Every programmer who looks at a project says it's shit.
  • by ClassicASP ( 1791116 ) on Tuesday October 15, 2013 @07:17PM (#45137847)
    Use long looong looooooooong stored procedures (20,000+ lines long) with lots of spaghetti SQL code and very little documentation. And never use identities and primary keys; instead just get the max ID number on the fly and use source code to get the next integer-up for the next record insertion to a given table. Make sure the table and field names have almost no relevance to the data they hold. use views liberally, and query one view on top of another view on top of another view on top of another view. If possible try and work something out to where there simply isn't any relational design to the database at all, and instead just use redundancy everywhere. Or, if you really want to be nasty, you could go the opposite route and figure out some kind of a mindbending rubix-cube-like puzzle where there is only one table with only 3 fields in the entire database, and nearly all table data of any sort is stored in one field in that table, and just rely on a myriad of SQL joins to emulate the behavior of relational database design.
  • by Beardo the Bearded ( 321478 ) on Tuesday October 15, 2013 @07:20PM (#45137865)

    In all fairness, outsourcing it to Canada made sense. We're cheaper, we have health care already, and speak English with an approximate degree of usefulness.*

    So, on behalf of our country, I apologize for any inconveniences you have suffered from the sheer shittiness of the ACA software. As a measure of our sincerity, you may pick up one(1) bottle of maple syrup from our strategic reserve.

    *offre non valable au Québec

  • by crunchygranola ( 1954152 ) on Tuesday October 15, 2013 @07:54PM (#45138117)

    Well, maybe you should try this much more venerable, thorough, and entertaining encyclopedia of unmaintainable code tips [mindprod.com]. Should make you as immovable as the CEO's firstborn.

    He has an unfair advantage in the area of unmaintainable code since he is writing about C/C++.

  • by Jeremi ( 14640 ) on Tuesday October 15, 2013 @10:56PM (#45139539) Homepage

    You fool! That code is critical, it's the speedup loop. For the v2.0 release you delete some of those loops, and presto, your app is significantly faster -- everybody will think you're an optimizing genius.

    Be careful to include some calls to rand() or similar in your loops, though, otherwise the optimizer in your compiler might screw you over by removing the loops in v1.0, denying you your speedup in the new version.

Happiness is twin floppies.

Working...