If you are or thinking of getting involved in Software Development Management and the Systems Development Life cycle (SDLC) take a look at the top 20 problems experienced by Software Development Managers and Software Engineers when the SDLC is managed poorly and without training. Untrained staff getting involved in making technical decisions causes the most common problems in struggling and/or failing software development and software engineering projects.
- No time allocated for good design and architecture
- Code becomes unreadable and unmaintainable
- Code is disorganized limiting amount of software engineers and/or changes to be active at any time.
- Makes full and patch releases difficult or impossible without severe downtime or refactoring of code.
- Lack of support for multiple streams i.e. production and new development – versioning. Lack of knowledge how versioning works. Development processes overlap into production processes.
- Simple configuration or system administration requires a code change not variable/parameter change.
- Makes change extremely difficult – not scalable or object orientated.
- Duplication of solutions i.e. not sharing such as application and hardware servers
- Lack of integration with related projects
- Makes releases extremely difficult i.e. No thought how to release the project – to many manual processes in a release. Releases take several hours and even days. Build an object to large to get through the door.
- Lack of necessary documentation or to much unnecessary documentation
- No or very little enterprise development, testing, or security standards
- Crunch testing – development overruns into time allocated for testing, testing reduced.
- Scope creep
- Lack of clear input and output at each step.
- Lack of clear ownership and accountability
- Constantly changing release dates – forward and backward
- Inability to deal with late requests
- Pressure from business to implement change fast. Management scheduling without understanding impact and risk
- Inability of IT to explain and the business to understand the intricate nature of technology projects.
All the above points can be solved by a trained Software Development Manager. Don’t manage what you don’t understand and make the same mistakes – get trained. A Software Development Manager is not just a people manager. They are also the one in the middle who resolves conflicts and maintains relationships and integrations between project managers, product owners, scrum-masters involvement with software development – both technical and people management.
That is why I coach, train, and mentor new and upcoming Software Development Managers. Don’t make the same mistakes that have been made by countless others since the inception of software development and engineering.