In software development, the deliberate act of creating obfuscated code to make it difficult for humans to understand and conceal its purpose or its logic, to prevent tampering, deter reverse engineering, or as a puzzle or recreational challenge for someone reading the source code.