I was part of an acquisition 3 years ago that was using cutting-edge technology (e.g. Docker in production), had a culture that favored Trust and Influence over Control, and utilized Agile development practices to deliver regularly to our customers. Enter the Realpage world of tickets, approvals, wait times, quarterly releases, etc. It takes a long time to get things done here which ends up in everything being urgent.
Cons - Company Processes
- Quarterly releases are favored over shipping often
- Engineers are required to send an email to a central system (called "The Orbs") each time we switch a task, feature or enhancement including a description and screenshot. This is displayed on TVs for upper management (and potentially others?) to see. If you miss too many updates, your card becomes engulfed in flames. This system has been in place for over a year so far. In what kind of world is this acceptable?
- Company decisions are very top-down including the tooling developers use, processes in place, etc.
- The company is quick to form new teams, but slow to empower them to achieve their objectives (e.g. - teams need a budget, IT resources, etc.). I've been on several teams that weren't ever empowered to achieve our goal, leading to a LOT of wasted time.
- Pair programming, code reviews, automated testing and other modern coding standards are classified as "if I have time" and are not active objectives of the engineering division throughout the company.
- The company avoids the cloud at all costs, spending millions on custom data centers and treats cloud providers as if they can't be trusted. As a result their practices are behind the times and adoption of new technology is extremely slow.
As a result of several of these cons, about 75% of what I've worked on over the past 2-3 years was not utilized/never shipped.
Cons - Compensation
- Poor raise/promotion pay structure rewards new hires over staying for the long haul. I've heard managers literally tell their team they would get paid more if they left the company and came back (on 3 separate occasions, 3 separate managers). Me and my co-workers appreciate management's honesty in this area.
- The 401k match for a given year is decided in the first quarter of the following year. So you lose a potential 1 year's earnings on any matched dollars. Over time, this could be a significant loss as you're delayed up to a year on being able to invest that money. In 2016 they matched "30% up to 6%" which is the equivalent of a 1.8% match. In 2017 the match was "32% up to 6%". You really never know what you're going to get. That can be good, but can be bad. I personally dislike the guessing game.
- If you're fortunate enough to get stock options/rewards (I was) then the 401k is made up for with that... but otherwise you just miss out and aren't taken care of.
- No parental leave, so if you plan on expanding your family, expect to use vacation time.
- Vacation time isn't paid out when leaving, so it's really in your best interest (for your new job) to take a 2-3 week vacation and quit the day you get back than to provide a 2 week notice (effectively forfeiting any vacation you have). Unfortunately I learned this after putting in my notice.
The company doesn't seem to think there are many issues. Even on some Glassdoor posts you can see Kurt (doing his job well, mind you) touting RP as one the Fortune Most Admired companies.
The company survey appears to also get good feedback, though it's largely driven by very generic questions, understandably so. Perhaps a good solution would be to run a unique survey for different roles in the company (.e.g - Engineering, Customer Support, etc.) to pinpoint pockets of dissatisfaction. Using team leads (NOT managers) in those departments to help come up with the survey contents may be a good approach as well.
Most devs I've encountered aren't excited to be here, but it pays the bills and they aren't unhappy enough to leave.