Hacker News new | ask | show | jobs
by Fanmade 1095 days ago
I know several developers, myself included, who are significantly more productive in their personal projects than in their main jobs. This discrepancy can be attributed largely to unnecessary bureaucracy. I have a lot of examples to illustrate this point. In one instance, we found ourselves in a meeting with nearly 30 people, spending close to an hour discussing how long it would take to implement a particular topic. In a typical project, this implementation would have been completed within half a day, employing TDD and incorporating feedback cycles, no shortcuts or hasty work. However, due to the need to navigate through a chaotic development process, involving for examples over 20 microservices managed by a three-person team, this task is projected to span multiple two-week sprints.

Another example: Over a year ago, I decided to explore programming with Python. At work, we encountered the problem of our web-based software requiring users to download PDFs to read them. As a personal project, I set out to build a Python application that would generate individual image files for each page of the PDFs, providing both a preview image and a higher resolution version. I dedicated a few evenings and two Saturdays to the project, and after approximately two weeks, it was successfully completed. Additionally, I created a simple GUI using Vue.js, enabling file uploads and displaying the resulting images. An experienced Python developer could likely achieve the same task in just one or two hours, with an additional two hours for the frontend.

Months later, the company decided to embark on a similar project but with additional extended OCR (Optical Character Recognition), incorporating machine learning to extract structured data from the PDFs. Initially, the prototype aimed solely at uploading the PDFs, with the machine learning aspects simulated. Months were spent discussing, conceptualizing, refining, and revising before the implementation phase commenced. Over a year later (though I have since left the company, I remain in contact with current employees), the first prototype was completed. Users can upload PDFs, and the system generates images from individual pages. The frontend simulates a progress bar, as the microservices run in the background without a built-in monitoring system. One of the more experienced developers foresaw this issue from the start, but management hindered his efforts until he eventually resigned. To date, the machine learning component remains unimplemented.

My last example for now: I recall a situation where the best developer I know was hired by a large corporation as external support. Within a few weeks, he was assigned an easy standard task that any competent developer could handle with ease. Believing it to be a sample project for the standard onboarding process, he promptly and efficiently completed it in less than a week. When he delivered the finished result, his clients were astonished. They had planned this to be his sole project for the next six months and had expected it to take a significant amount of time.

In summary, it is not uncommon for companies to invest months of work and millions of dollars into projects that a reasonably skilled developer could accomplish in a day. Never underestimate the incompetence of some organizations.