Pros
- team successes are rewarded with team lunches. - the dev team is not held captive to the sales team but works to its own priorities. - all managers give shoutouts to high performers on Friday afternoon company-wide meetings. - free beer and video games on Friday afternoons after work. - free soft drink and snacks all week. - free geeky tee-shirts. - socialising at Friday afternoon company meetings spans different business areas. - friendly peers. - refurbished office feels fresh and exciting. - new customers are celebrated. - devs can customise their own workstations.
Cons
- the codebase is predominantly monolithic and is overly complex. Some parts are very fragile. Horrible legacy code refuses to die. - code deployments to production are infrequent, large, and high-risk. - the code review process is slow and bureaucratic, subjective, perfectionistic, inconsistent, and unfair. It often includes additional work and scope creep. - the dev team is authoritarian and hierarchical, with its own politburo. - dev team leaders get the glory, juniors get the blame. - new ideas are not tolerated in the dev team. - senior devs gaslight lower ranking developers to protect both their own position and their favourite colleagues. - computer hardware is under-resourced. - some projects are half-baked and create more needless complexity - the company runs on fear. Mistakes are punished. Occasionally an employee will vanish and never return.