Communication is completely missing. Often decisions are made from the top-level, and never communicated down to the team until the very last minute. It is easy to feel out of the loop, and confused at what the right direction is to take. Feedback on how the product is performing, or on code stability is nonexistent. Teams often release only once or twice a year, and engineers are left scrambling to hotfix certain clients with untested features.
Things that could be seen as pros at many other companies are abused here. An employee can set his/her own hours, and deadlines when he/she are able to get things done. Some employees run with this, but others see it as an opportunity to do less work.
There is no attention to quality...it is completely thrown out the window in order to get things up and run quickly. Products are often built and rebuilt for a demo, or one specific client, and the technical debt adds up quickly. Instead of clearing it out, the answer is usually to restart in few years in a "new" framework that no one really understands. Some teams are very hardworking and do a great job, but the lack of quality developers leads to a very poor and fragmented code base.
Some managers are almost abusive with their feedback, setting unrealistic deadlines and making promises to customers that could only be achieved by duct tape and gorilla glue. At Yardi, the squeakiest wheel always gets the oil even if the others are quietly falling off.
The company is very reactive and most new ideas don't come from internal sources, but from what clients or competitors are advocating for. This can sometimes be great for our clients as they often get exactly what they are asking for, but it hurts the overall vision of a product. Many features of a product start off intuitive and simple, but (for example) one client could ask for a specific button or input, and then a different client could ask for the same thing, but on the right instead of the left, and then another client could ask for the a different button/input above what the first client asked for. Yardi succumbs to almost all client requests, and eventually you end up with a Frankenstein style product that is too complicated for any one client/user to understand.