What do programmers actually do?

Programmers turn specifications into code!  And then they do it again when the specifications change because what they said isn't what they meant.  And then again, when the end users says they want some changes.  And again, when the end users change their mind because they didn't realize to change X you'd also have to change Y.  And again when the users' manager decides that the users aren't using the software right, and it'll be loads more convenient for the manager to get a report and then lock the users out of changing the data the report is on, and then again when the manager finds out that now the end users can't do their jobs.  And, then, finally, you're done with that module, you've got the documentation locked down, and everything in source control is exactly how you want it to be.

Which is when they find out that need to upgrade the platform.