As @franklinchen points out, the word “pragmatic” has negative connotations because people use it as an excuse to do whatever is convenient to them at the moment.
“Pragmatic” does not mean “convenient.” It means carefully considering the balance of time spent now vs time spent later. It means picking your fights, and fighting hard for the right hill. It means picking the fights most important to the particular situation.
In contrast, extreme idealism fights the same fight all the time, no matter what. The pragmatist is always improving. The particular improvements vary.
In politics, that means calling your US Congressperson to support free speech sometimes, and volunteering for a local candidate that supports midwifery sometimes. It means voting by candidate rather than party.
In programming, pragmatism means writing wickedly detailed tests when it’s critical, and skeletal ones other days. It means hitting the points in the code review that help the whole team grow. It means refusing to release incomplete features that will screw up the product, and other times delaying the release until critical features are complete. It means using our brains to make decisions, taking responsibility for those, but not beating ourselves up when the outcome is one we could not have predicted. As Franklin put it, “a real pragmatist isn’t negative all the time about change or risk, but confronts it head on and looks at all sides.”