Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Operations: Creating Brittle Infrastructure #176

Open
actionjack opened this issue Oct 24, 2019 · 4 comments
Open

Operations: Creating Brittle Infrastructure #176

actionjack opened this issue Oct 24, 2019 · 4 comments

Comments

@actionjack
Copy link
Owner

No description provided.

@actionjack
Copy link
Owner Author

Broken pane of glass e.g. Jenkins failed jobs.

@actionjack
Copy link
Owner Author

@actionjack
Copy link
Owner Author

https://www.zdnet.com/article/python-programming-language-creator-retires-saying-its-been-an-amazing-ride/

Dropbox said van Rossum has had a major impact on its engineering culture.

"There was a small number of really smart, really young coders who produced a lot of very clever code that only they could understand," said van Rossum. "That is probably the right attitude to have when you're a really small startup."

However, as Dropbox notes, when the company grew, new engineers could not understand the clever but 'short and cryptic' code written by and for earlier developers.

Van Rossum called this "cowboy coding culture" and educated the company about the value of maintainable code.

"When asked, I would give people my opinion that maintainable code is more important than clever code," he said.

"If I encountered clever code that was particularly cryptic, and I had to do some maintenance on it, I would probably rewrite it. So I led by example, and also by talking to other people."

@actionjack
Copy link
Owner Author

Why Maintainable Code is More Important Than Clever Code

In software development, a common temptation is to write code showcasing our technical prowess. Crafting clever, intricate solutions can be intellectually satisfying and often feels like an accomplishment. However, maintainable code is far more valuable in the long run than clever code.

The Case for Maintainable Code

**1. Readability:
Maintainable code is easy to read and understand. This means that other developers (or even you after some time has passed) can quickly grasp what the code does and how it works. When code is readable, it becomes easier to troubleshoot, debug, and enhance.

**2. Consistency:
Consistent coding practices lead to a more predictable and navigable codebase. This consistency is crucial for team-based projects, where multiple developers must collaborate seamlessly. Consistency in naming conventions, structure, and style helps maintain the flow and reduces friction.

**3. Scalability:
Maintainable code is inherently more scalable. As projects grow in complexity and size, straightforward and well-organized code can be scaled and extended with minimal risk of introducing bugs or performance issues. Clever code, on the other hand, often requires significant reworking to accommodate new features or changes.

**4. Collaboration:
When code is maintainable, collaboration becomes more efficient. Developers can contribute to the project without spending excessive time deciphering complex, convoluted solutions. This leads to faster development cycles and more robust code quality, as more eyes can review and improve the work.

**5. Technical Debt:
Clever code can often lead to technical debt. This happens when code is written to prioritize short-term gains over long-term maintainability. The result is a codebase that becomes increasingly difficult to work with over time, requiring extensive refactoring and costly rewrites.

Embracing Maintainable Code

To prioritize maintainable code, consider adopting the following practices:

**1. Simplify:
Strive for simplicity in your code. If a solution can be implemented straightforwardly, choose that approach over a more complex one. Remember, the simplest solution is often the best.

**2. Comment Wisely:
Use comments to explain the why behind your code, not the what. Well-placed comments can provide context and rationale, helping future developers understand the decisions made.

**3. Follow Standards:
Adopt and adhere to coding standards and guidelines. These standards ensure uniformity and predictability across the codebase, making it easier for any developer to contribute.

**4. Refactor Regularly:
Regularly refactor your code to improve readability and maintainability. Refactoring should be an ongoing process, not just something done when the codebase is in trouble.

**5. Review and Collaborate:
Conduct code reviews and encourage collaboration. Peer reviews can catch potential issues early and provide different perspectives on improving the code’s maintainability.

Conclusion

While clever code can be a testament to your skills as a developer, maintainable code is a testament to your professionalism and foresight. It ensures your projects remain robust, scalable, and collaborative, leading to more successful and sustainable software solutions. Prioritize maintainability over cleverness, and your future self—and your team—will thank you.

What do you think about the balance between clever and maintainable code? Share your experiences and insights in the comments below!

#SoftwareDevelopment #Coding #Programming #TechLeadership #CleanCode #MaintainableCode


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant