Windows Tech Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Thursday, 6 October 2011

Software Development's Biggest Mistakes

Posted on 15:07 by Unknown

The most common and most detrimental mistakes that seem to occur again and again.  I'm not saying you need to "master" all of these, but you should be familiar enough with all of these aspects to be able to explain them to your grandmother.  Hopefully you strive to apply these in your daily work.

Basics_Hero

  • Not Understanding Programming Basics
    • Decision Branching (If / Then / Else / Select /Switch / Cond / ElseIf, etc.)
    • Boolean Logic (And, Not, Or, etc.)
    • Functions, Sub-Routines, Lambda Expressions
    • Iteration and Recursion (While, Do, For, Apply, Mapcar, etc.)
    • Variable Scopes (local, private, global, public, etc.)
    • Not understanding all of the Data Types for a given language
    • Not understanding String Behaviors (for given language)
    • Not understanding File Streams
    • Ignoring ERROR/EXCEPTION HANDLING (Gaa!!!!  GD IT!!!)
    • Not Documenting source code (it ain't just for others, it helps you as well, especially when you go back to fix something a year later)
    • Modularity / Code Reuse
  • Not Understanding Databases
    • Ignorant of Table Structures and Data Types
    • Ignorant of Constraints
    • Normalization !!!!!!!!!  God damn it!  Normalize your fucking tables!!!
    • Views and Stored Procedures
    • Using MS-Access to build applications (GD IT!!!!!!!  teeth gnashing)
    • Excel is NOT a database!
  • Not Understanding User Context
    • Assuming users have administrator rights (kill the developer on sight!)
    • Not understanding Multi-user / Shared computer environments
    • Not understanding Terminal Services / Server Shared environments
    • Not understanding Service / Proxy accounts
  • Not Understanding the Installation (and Uninstall) Process
    • Not following the documented guidelines (TechNet, MSDN)
    • Not providing a Silent/Unattended installation option
    • Not providing a Silent/Unattended Uninstallation option
    • Not using MSI-based installers (Windows only) - a setup bootstrap is ok, but building your own installer is just stupid as shit.  And stop with the no-name bullshit setup packagers, just buy Wise or InstallShield and do it right, mmmkay?
  • Ignoring Cohesion and Consistency
    • Installation scatters crap all over the place, rather than keeping it collocated logically
    • Application stores state data in too many locations (registry and files, and ...)
    • Forgetting to REFACTOR your code (using the rollback method, where you revisit project "A" after finishing product "C" to apply what you learned since)
    • Ignoring common naming conventions.  Name your code files, functions, variables, registry keys, event entries, database names, tables, views, procedures, services and everything CONSISTENTLY!  If you don't care enough to make your code look like it works as an integral army of awesomeness, what else don't you care about?  Making it work properly?!
  • Becoming Locked into One Language
    • Learning and Using ONE language is like eating with only a fork.  No spoon or knife?  It's like trying to rebuild a car engine with only a screw driver.  Languages are tools.  The more you learn and apply, the broader your skills, understanding and wisdom about methods, approaches, and quality.
    • Never assume an "old" language has nothing to offer.  There are still plenty of situations where an "old" BAT script will work more efficiently than VBscript or PowerShell.  Where an INI file will work more efficiently than an XML file or a database table query.
    • Arguing in defense of ONE language above all others.   Within the context of a particular project or contract, this is acceptable.  However, in the global scope of programming, this is the sign of a complete idiot.
    • Buying books on one language before reading books on general programming practices and theory is just stupid.  This is like reading a book on 1001 ways to use a fork to eat.  Why not read up on eating, then learn about the tools, that way you understand why you're using the fork, and not just how to use it.

What can you do about it?

  • Read Books on Programming topics (not just an "Unleashed" book on your favorite language)
  • Read some useful Blogs about programming
  • Go to School (a university, not a for-profit tech school)
  • Join MSDN or TechNet or something similar (and use it!)
  • Meet with other programmers - ESPECIALLY programmers that work with other languages, database engineers and administrators, network engineers, etc.
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in applications, installation, programming, software development | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Voting Time: Help Me Out?
    I need to get a better view of how I should manage this blog if I'm going to keep at it. I'd like to know how you typically discover...
  • A World Without Competition
    Try to imagine what things would be like today had there not been fierce competition in certain key parts of our world.  I’ll give you some ...
  • Book Update
    I posted some gibberish a few weeks ago about another book project.  Well, I'm getting close to wrapping it up, so I thought I'd go ...
  • Cost
    Software technology, like any technology, provides a means to solving problems.  Some big. Some small.  Some that help.  Some that hurt.  An...
  • Windows 7: Default User vs All Users
    A lot of confusion seems to occur with understanding the difference between the "Default User" profile, and the "All Users...
  • Time to Give Props
    With the ever-expanding volume and breadth of information on the Internet today, it's easy to focus on my own thoughts, experiences, ide...
  • Table of Contents (Preliminary)
    Here's the preliminary Table of Contents for my new book "The AutoCAD Network Administrator's Bible - 2013 Edition".  I...
  • The Nicest IT and IT Vendor Folks I Know
    I've ranted many times before how it's unfair to "hate" an entire company, without providing a rationale for it based on s...
  • Windows 8
    Two small, yet irritating things, that I hope Windows 8 addresses with respect to Windows 7: Being able to put the Recycle Bin in the S...
  • Stupid Assumptions
    After years of watching sci-fi TV shows, movies, etc. it's finally come to a point where even the so-called brightest of our authors and...

Categories

  • a
  • activation
  • active directory
  • advertising
  • agile
  • agility
  • amazon
  • american
  • apple
  • application virtualization
  • applications
  • art
  • articles
  • asp
  • augi
  • authors
  • autocad
  • AutoCAD Autodesk
  • autodesk
  • autolisp
  • automation
  • automotive
  • backups
  • batch
  • beer
  • beta
  • blackberry
  • blogs
  • bongloads
  • book
  • books
  • Books writing kindle amazon technology business projects
  • browsers
  • business
  • cad
  • career
  • certification
  • chrome
  • city government
  • civilization
  • cloud services
  • cmd
  • cmmi
  • comedy
  • command
  • community
  • computers
  • conferences
  • config manager
  • consultants
  • consulting
  • contracting
  • cranium drainium
  • crapware
  • culture
  • data center
  • data mining
  • databases
  • deployment
  • directx
  • DLL
  • domains
  • dumb
  • earth
  • economy
  • editor
  • education
  • election
  • elections
  • employment
  • engineering
  • entertainment
  • environment
  • error monitoring
  • events
  • exchange
  • facebook
  • family
  • firefox
  • flexnet
  • fud
  • fun
  • funny
  • games
  • gary vaynerchuk
  • gmail
  • google
  • government
  • group policy
  • hampton roads
  • health
  • history
  • holidays
  • home
  • html5
  • humor
  • hyper-v
  • iis
  • industry
  • infrastructure
  • installation
  • installshield
  • internet
  • internet explorer
  • interviews
  • jobs
  • jtbworld
  • kindle
  • kixtart
  • lab setup
  • languages
  • ldap
  • learning
  • legal
  • licensing
  • life
  • lifecycle
  • linux
  • lisp
  • logging
  • management
  • manufacturing
  • marketing
  • markets
  • mdop
  • mdt
  • medical
  • messaging
  • microsoft
  • microsoft access
  • military
  • mountains
  • movies
  • mozilla
  • music
  • nature
  • network administration
  • news
  • nook
  • nothing
  • office
  • open source
  • openoffice
  • opera
  • operating systems
  • oracle
  • osx
  • packaging
  • patches
  • people
  • photos
  • podcasts
  • policy
  • politics
  • powershell
  • predictions
  • process automation
  • products
  • programming
  • projects
  • psychology
  • publishing
  • rail
  • reading
  • registry
  • religion
  • reporting
  • reviews
  • rsat
  • rss
  • safari
  • safety
  • sales
  • satire
  • sccm
  • scheduling
  • science
  • scripting
  • search
  • security
  • servers
  • services
  • sharepoint
  • shopping
  • sms
  • social stuff
  • society
  • softgrid
  • software assurance
  • software deployment
  • software development
  • software packaging
  • sony
  • speaking
  • sports
  • sql express
  • sql server
  • statistics
  • Statistics news marketing
  • steve jobs
  • stories
  • stuff
  • stupidity
  • symantec
  • sysinternals
  • system center
  • systems architecture
  • t-sql
  • taxes
  • technet
  • technical support
  • technology
  • TED
  • ted talks
  • testing
  • textpad
  • thoughts
  • traffic
  • training
  • transportation
  • travel
  • troubleshooting
  • tutorials
  • twitter
  • ubuntu
  • unattend
  • unemployment
  • updates
  • upfront ezine
  • utilities
  • vacation
  • vba
  • vbscript
  • video
  • virginia
  • virginia beach
  • virtualization
  • visual lisp
  • vmware
  • vmware server
  • voting
  • war
  • weather
  • web
  • web browsers
  • web development
  • web sites
  • windows
  • windows 7
  • windows live
  • windows server
  • windows server 2012
  • windows8
  • winpe
  • wise
  • wmi
  • work
  • writing
  • ws08
  • wsus
  • wwa
  • x64
  • xml
  • ze frank

Blog Archive

  • ►  2013 (37)
    • ►  October (1)
    • ►  September (5)
    • ►  August (8)
    • ►  July (2)
    • ►  June (4)
    • ►  May (4)
    • ►  April (2)
    • ►  March (2)
    • ►  February (8)
    • ►  January (1)
  • ►  2012 (120)
    • ►  December (14)
    • ►  November (12)
    • ►  October (10)
    • ►  September (7)
    • ►  August (3)
    • ►  July (2)
    • ►  June (6)
    • ►  May (6)
    • ►  April (20)
    • ►  March (16)
    • ►  February (18)
    • ►  January (6)
  • ▼  2011 (343)
    • ►  December (15)
    • ►  November (23)
    • ▼  October (27)
      • Campaign Advertising Template
      • Error Handling: An Example
      • The Next Book Project
      • What is It?
      • Thoughts of Autonomous Robotic Combatants
      • One More Time
      • Infographic: Manual Installation vs. Packaged Inst...
      • So, You Wanna Be a Software Repackager?
      • If You Don't Know - SAY You Don't Know
      • A Short Recap of my Career Thus Far
      • Signs of IT Failure
      • AutoCAD: PURGE, AUDIT, RECOVER, Repeat...
      • Children's Guide to Politics and Elections
      • What's Next?
      • Software Development Tips
      • PSEXEC, Computer$ and SYSTEM Access
      • Winding Down, Weekend Brain Dump
      • What if AutoLISP were Unleashed?
      • Because it Was Overdue
      • Amazon Kindle Books: German and French available
      • Self-Assembly is the Future
      • IT Job Openings in Hampton Roads, Virginia
      • When Applications Take a Dump
      • Software Development's Biggest Mistakes
      • The Never-Ending War: Centralized IT vs Department...
      • What Can Fail: Software Deployments
      • Weekend
    • ►  September (35)
    • ►  August (29)
    • ►  July (17)
    • ►  June (23)
    • ►  May (20)
    • ►  April (38)
    • ►  March (61)
    • ►  February (54)
    • ►  January (1)
Powered by Blogger.

About Me

Unknown
View my complete profile