An essay by John Melonakos
Signs of Bad Engineering Practices
We work with some of the brightest software engineer customers in the world doing the most advanced computing. Yet, we are stunned to find that so many critical pieces of software are so haphazardly stitched together. Riding on spit and wishes is what we would say in my rural hometown of Hickory, NC.
Here are some things I’ve heard our engineers grip about that are tell-tale signs of bad engineering practices:
- No documentation or comments
- No unit testing; just qualitative testing; or just testing on a single easy dataset
- No automated building and testing infrastructure
- Bad source code version control
- sometimes non-existent
- other times it’s only given lip service, with files residing in version control but everyone working out of their own separate version control copied directories and no regular merging of files is taking place
- committing extraneous non-source files, like temp files from the build process
- use GIT; it’s the best and trumps CVS and SVN
- Bad formatting of code, including
- bad indentation (e.g. usage of tabs instead of spaces) or mixed indentation standards in different parts of the code
- lack of a proper text editor with useful highlighting and keyboard-only development efficiency (e.g. emacs or vim)
- Bad code organization, including
- the use of massive files which become extraordinarily difficult to detangle
- code redundancy rather than making good function calls
- lack of easy-to-set parameters
- overuse of heuristic parameters
- verbosity leading to code bloat and difficultly in readability/maintainability
Avoiding these common errors makes development much more efficient and will helps productivity skyrocket.
Kudos to James Malcolm who runs engineering at AccelerEyes for driving home excellent standards within our startup.
Does your startup make any of these mistakes?
Related articles
- Version Control’s Role in Software Engineering
- Version control with multiple versions
- Fighting code bloat (C template-style)
- Jump-start Your Career in Software Engineering
- How to start using Git with Github as a Sysadmin
- Dear all Product Managers, you need version control !
- Principles of Software Engineering, Part 1