Pros
- Several years ago, they had some fairly innovative assessment products for the education sector. The future seemed bright. - Generally nice coworkers - Opportunities to learn some new tech and attend conferences
Cons
- Development teams have a rigid form of agile imposed on them. This involves constant 2-week sprints with a half to full day of sprint demo, retro, and planning. This led to a short-term boost in productivity by creating a sense of urgency. However, it had negative long-term consequences for system stability due to a lot of hastily thrown together software building up over the years. It also had a psychological effect of shrinking everyone's time horizon to 2 weeks and obsessing over the number of points completed as opposed to building good systems and adding value for the customers. - On the systems side, the developers received little guidance in terms of architecture, security, design, or business requirements. This often led to developers jumping right into coding and making a lot of judgement calls while scrambling to meet the micro-deadlines. - Extraordinarily high management and employee turnover made it difficult to accomplish objectives. This led to a lot of initiatives being started and then abandoned before completion. One reason for the turnover is that the raises tended to be small to nonexistent, so good talent would jump ship for a 20% pay hike. - Unstable systems required a lot of manual intervention and bug fixes to keep them operational. There were problems during almost every peak usage period. - Some employees got away with doing little to no work with no consequences for long periods of time. There was some abuse of the work from home policy. - Massive underinvestment in basic technology infrastructure such as configuration management, server virtualization, and software release processes. Developers had to act as devops in many cases to get things done.