This guy is not a very good developer.
You have a skewed perception of the job of the engineer. Why doesn't the engineer understand the business side? They deal with it every day. They are constantly in different stages of the cycle. I do not understand this reasoning.
Because you don't understand what I mean when I say the Business side. You are focusing on being a good programmer and foreseeing programming concerns and problems... not BUSINESS concerns and problems. Developing software does not make you an expert on the business your software is supporting.
A software engineer for a car company, making computers for automobiles doesn't understand (or likely even know about) Transportation Cabinet requirements that now add further complexity to their task. They don't keep up to speed with new legal requirements or developments within Congress, and so wind up with last-minute complications because they didn't take this into account when the original project was scoped.
A software engineer for training software doesn't realize that halfway through migrating their entire suite of training programs to a new platform, a new set of teaching requirements is added for an obscure certification program. Because they are focused on completing the migration and not on the individual components of some of their smaller services, the training program is worthless upon moving to the new platform, resulting in complaints about quality and demands for refunds.
A software engineer perfectly plans staffing and resource allocation for a large project that will require the assistance from a support unit in Marketing once the project nears completion. Because this is a special project and a department not usually associated with the development team, meetings are held at the beginning of the project to level-set expectations. Sixteen months later, when the Marketing team is needed, there has been a reorganization and most of the unit's work has been outsourced. Due to no one properly informing the unrelated development team about HR decisions that didn't directly affect their business, the project is delayed because the work cannot be completed by an outside vendor due to security restrictions.
These aren't bad software engineers - they are people who are experts at the programming and development aspects of their job who can't possibly be expected to manage their complex work while also monitoring dozens, if not hundreds, of other potential downstream impacts that have NOTHING to do with software or development cycles, at least not directly. Unless you expect a Software Engineer to be on top of every government regulation for every possible project in the works, every organization and staffing change that occurs across the company, every product update that could occur between each line of business or any vendor support lines of business, all while ALSO doing their job of developing software/managing a team of people who develop software... I'm sorry, that's just not realistic.
Whether your company is manufacturing, SaaS, AaaS or any number of other service models, it still just does not work to have your developers try to be the Masters of the Universe. It sets terrible long-term expectations and opens the door wide open for all types of communication and managerial failures. Instead, having one person for each project coordinate the experts across the board on a myriad of subjects to make sure everyone is working on a cohesive, solid goal is much more logical. A (good) project manager doesn't just collect requirements, regurgitate them to development in the appropriate Project Management form template and then watch a checklist tick itself off... they communicate, plan and constantly reaffirm that there is no potential for misunderstandings or problems. That's the entire point - to save any one department from trying to carry the entire load of responsibility, since it will inevitably result in them carrying the entire load of guilt when something breaks due to one (obvious in retrospect) mistake.





Retour en haut







