Hours are long and workload is large. It's not a good work/life balance.
People sometimes get shuffled round against their will into different teams. Your experience in a team can depend a lot on the luck of who your manager is. Some managers are great, others get put into managerial positions because they were good programmers but don't necessarily have any people skills.
Review process is somewhat opaque.
Atmosphere on development floor is very quiet - you may find this a plus, I found that it doesn't give a strong sense of belonging to a team as most people are working independently. This can also lead to disjointed projects.
Most programming teams have their own business department, so if you like interacting with clients on the creative side of coming up with a new product then you might find your opportunity to be involved in this a bit limited.