It's easy to use for easy things. Fortunately most of what I do is easy. It's harder to do harder things but in most cases it is possible to work within the constraints of the system. The documentation is pretty good once you figure out where it is. ...
Inability to define jobs as code. Everything is declarative, which is great when you're learning but not if you have multiple jobs that share the same properties with small variances.
TeamCity makes it extraordinarily easy to configure individual builds. By far the best feature is its ability to use parameters for builds, which makes it very easy to create generic build configurations that can be used over and over again.
Documentation sucks, and is very difficult to set up and upgrade
It's easy to use for easy things. Fortunately most of what I do is easy. It's harder to do harder things but in most cases it is possible to work within the constraints of the system. The documentation is pretty good once you figure out where it is. ...
TeamCity makes it extraordinarily easy to configure individual builds. By far the best feature is its ability to use parameters for builds, which makes it very easy to create generic build configurations that can be used over and over again.
Inability to define jobs as code. Everything is declarative, which is great when you're learning but not if you have multiple jobs that share the same properties with small variances.
Documentation sucks, and is very difficult to set up and upgrade