Overengineering is often identified with design choices that increase
safety, add functionality, or overcome a perceived design flaw that most users would not notice or would accept. It can be hard to avoid when safety or performance is critical (e.g. in
aerospace vehicles and
luxury road vehicles), or when extremely broad functionality is required (e.g. diagnostic and medical tools,
power users of products). Overengineering often occurs in high-end products and specialized markets. A product may be
overbuilt with performance far in excess of expected normal operation such as a city car with top speed of 300 km/h, or a home video recorder with a lifespan of 100 years. Such products may be more expensive, bulkier, and heavier than necessary. A product may be
overcomplicated with functions that are not necessary, and reduce the
usability of the product by overwhelming
users which is sometimes called feature fatigue. Sometimes overengineering occurs over time in the form of
feature creep. Overengineering can decrease the
productivity of a development team because even though the team produces product, the value realized might be less than if the team was producing only what the user needs and wants. Overengineering can consist of
premature optimization, potentially to the detriment of the project due to
diminishing returns on time and effort invested in the design process. == Cultural references ==