Most developers know how a project should be managed. You should follow the software development life cycle. You should gather requirements and come up with a design beforehand. The code should be nice and readable, and you should follow principles like DYR. The end product should meet most, if not all, of these requirements:
- Development should proceed according to schedule, and deadlines should be met without working long nights.
- All the meta-work like bug tracking and task management should be handled in some sort of system that actually gets used.
- The development environments should be setup properly, with proper version control and deployment procedures.
- People should write documentation for everything.
- There should a proper testing framework in place.
- There should be code reviews.
I could go on.
In my experience, most developers seem to know all, or most, of these "shoulds." They want to do as many of them as they can, and they are upset when they do not, myself included. However, it is also my experience that few, if any, of these "shoulds" ever actually happen in the real world. For whatever reasons, usually relating to deadlines and money, nobody ever has time for these things. Instead, the developers just keep writing code for hours on end until it eventually "works".
At every job I have had, every developer, including myself, wanted to do these things. We wanted bug tracking systems. We wanted to write documentation. We wanted to have very nice task management. Yet, despite our efforts, none of those things ever came to be. The closest we got was to have a nice git repository and a documentation wiki with a handful of pages written in it.
Has anyone in their entire career ever been a part of, or seen, a project that actually did a significant number of these things properly? Is there really a project out there that met a well-estimated deadline? Is there someone who is actually making proper use of task management, bug tracking, and version control all together at once? Did you actually write clean readable code following good principles?
If such a project has ever actually existed, how did it happen? What special something allowed you to avoid just coding a big mess just to get the finished product out the door? Obviously nobody is absolutely perfect, but I've never actually seen anything come even remotely close to good. Has it actually be done, or is the well-managed project just a fantasy?