Pros
1. Good products 2. Wide access to technical documentation
Cons
1. IT is considered inferior to Operations. Operations makes all the decisions. 2. Too much red tape, stifles innovation 3. Seniority-based culture 4. Culture of "Expert Beginner"ism 5. Sucker culture 6. Blame culture 7. Extreme paranoia of change 8. No budget for new tools 9. Always re-inventing the wheel 10. Silo mentality 11. Management (the guys calling the shots) not technically knowledgeable 12. Short-sighted management. Project ROIs never factor in long term benefits. Applications are never built to scale. 13. Fixed and unrealistic project deadlines 14. Scope freezes do not exists. Requirements can be added in even during the testing phase. 15. Management does not believe in Brook's law ("adding manpower to a late software project makes it later") 16. Plenty of grand unrealistic projects doomed to fail from the start, massive waste of resources 17. Lack of documentation (of in-house applications) 18. No job-related training 19. No proper SDLC process 20. No Continuous Integration 21. No automated testing 22. No pair programming 23. No code review 24. No coding standards 25. Best practices are ignored 26. Deep in technical/code debt, but no initiatives whatsoever to reduce it 27. Legacy brownfield Big Ball of Mud code-bases 28. Application owners/leads are just accessories/scapegoats. They have no control/say over the road-map of their applications. </rant>