# Code Smell 227 - Cowboy Coding

## Leave cowboys to Hollywood movies

Oct 15, 2023·

TL;DR: Write code as a team programmer

# Problems

• Unreliable code

• People Management Issues

• Lack of coordination

# Solutions

1. Write professional code

2. Use declarative non-cryptic names

# Context

Cowboy coders don't follow best practices.

Cowboy coding is generally considered an unprofessional and risky approach to software development because it can lead to code that is hard to maintain and prone to errors.

Cowboy Programmers are good people; however, they cannot work in a group.

# Sample Code

## Wrong

``````# Very simple example
# Compute the sum of two numbers without any structure or best practices.

num1 = input("Enter the first number: ")
num2 = input("Enter the second number: ")

# WARNNING!!!! Don't remove the line below !!!!!
# (Unpleasant comment)

res = num1 + num2  # (No data type checking or error handling)

print("The sum is: " + result)  # (No validation or formatting)

# (No good names, no functions, no error handling, no testing, no version control, and no structure.)
``````

## Right

``````def add_numbers():
try:
firstAddend = float(input("Enter the first number: "))
secondAddend = float(input("Enter the second number: "))
return sum
except ValueError:
print("Invalid input. Please enter valid numbers.")
return None

def main():
if sum is not None:
print("The sum is: {:.2f}".format(sum))

if __name__ == "__main__":
main()
``````

# Detection

[X] Manual

You can set environmental rules to prevent these coding practices and enforce team building.

# Exceptions

• Very small personal projects

• Declarative

# Conclusion

Software development is teamwork.

# Disclaimer

Code Smells are my opinion.

# Credits

Photo by Taylor Brandon on Unsplash

The danger from computers is not that they will eventually get as smart as men, but that we will meanwhile agree to meet them halfway.

Bernard Avishai