A Failed Second Development Experience | Remote IT Concierge Startup Weekly (13)
Hi, I’m Xianmin, your Remote IT Concierge, and this is my startup weekly journal.
This Week’s Actions
Before May Day holiday, I took on a 4,000 yuan project for a cross-platform desktop application. The client needed it urgently, so I promised to deliver within a week, which meant working through the holiday.
The biggest challenge with cross-platform applications is compatibility issues. I primarily develop on Windows, so I continuously developed and tested on Windows. For MacOS, I compiled and tested once in the middle of development, and everything seemed fine. However, when I finished the functionality and compiled it again for testing, it wouldn’t open and showed errors. I fed the error messages to AI, but it made random changes without finding the actual source of the bug. Between working and not working, there were about 30 commits. I wasn’t sure which step introduced the problem. At this point, I could only use binary search to locate which commit caused the error. After about four rollbacks, I found it. It turned out to be just one line of code that wasn’t supported on MacOS, yet it compiled successfully but crashed when the program opened. Compilation was time-consuming, and it took about half a day to fix this bug. After that, I successfully delivered the project.
A Failed Case
During the May Day holiday, I also took on a second development project. The client demonstrated it remotely, and most of the basic functionality was already complete with just three points needing modification. I briefly looked at the source code - the frontend used React and the backend used Python, both of which I’m familiar with, so I accepted the project.
When I actually started making changes, I realized I had been careless. One of the core files that needed modification had nearly 2,000 lines of code. State values were scattered throughout, making it difficult to know where to begin. I thought it would be simple - I had AI, so I’d have it help me refactor, split it into multiple components, and manage everything with context.
When the refactoring was mostly complete and I was ready to start working, I discovered that the client’s requirements were inconsistent with the original code logic. To implement what the client wanted would require a completely different operational logic and further refactoring. In the end, I gave up, wasting two days.
- For second development projects, always pay attention to the original code standards. If there are multiple files exceeding 1,000 lines, be cautious - the code is likely messy.
- For projects with chaotic code, adding one or two features without changing the original logic might be manageable. But if refactoring is needed, completely rewriting from scratch might actually be more efficient.
- Legacy projects from long ago, like Vue 2 projects from 6-7 years ago or Node.js projects below version 12, can also be particularly painful to work with.
Conclusion
Have you ever had a failed second development experience?
Author Xianmin
LastMod 2025-05-11
License 原创文章,如需转载请注明文章作者和出处。谢谢!