Recently we have seen a rise of "designers" in engineering practices, particularly software engineering. While visual designers and artists were always present in every engineering field - the frescos weren't painted by the architects of the basilicas most of the time - it's strange to see opinions of software engineers taken as "they don't understand design anyway"
Because software IS design.
A software in itself is nothing more than a plan, an explicit, consistent set of thoughts which we give to the computer to build from. The masons of the virtual dreamcastles aren't us, the programmers: we merely give the plans to the computer to build it from bits and bytes as bricks once turned on.
Our thoughts are explicit, because the computer can think only one way.
Our thoughts are consistent, at least, from the computer's perspective. Non-consistent thoughts get a so-called syntax error, and would never start on the user's machine. Any inconsistency means the literal crash of the program.
Design in software engineering is the blood-swearing process of getting an idea consistent and in harmony to its environment.
To the contrary, creating some nice buttons in our terminology is NOT considered design: one of my former bosses called it "masturbation". Creating buttons which are consistent and are in harmony with the user's train of thought and of the application, simplified to the end, but not a single step further IS design, and it's really hard work.
What surprises - and saddens - me if I get a "design" document from a designer which clearly wasn't distilled this way what we call design.