3 ms·
I think there are a few really big problems. First is that nobody really knows how to build reliable software. Well, maybe somebody somewhere does, but there
by jbritton 10y ago
I think there are a few really big problems. First is that nobody really knows how to build reliable software. Well, maybe somebody somewhere does, but there is no standard established method that can be studied and is known to work. Second, software is a set of instructions to accomplish something. There really is no method to design for a set of unknown instructions. Third, this leads to massive confusion over what design even means with respect to software. Ask 100 software developers what they think design means, and you will get 100 different answers. Fourth, many software projects are reliant on a massive stack of APIs to accomplish anything. It is often not known if these APIs are bug free, or exactly how they are supposed to be used. There are frequently unexpected complications using APIs. Sometimes just using third party APIs becomes a research and development effort. How we build anything is rapidly changing, because the community is still trying to figure out how to do it better. User Interfaces on the web is the most glaringly example. Nothing seems to survive for more than a year or two in this space. Many in the community worked extremely hard to get degrees in Computer Science or something similar and it is not enough. If there was knowledge that worked, wouldn't it be imparted through a college curriculum? In my experience, the upper level managers know nothing about software development and create deadlines that are impossible to meet. Software is something not amenable to being rushed. Code of any quality takes a lot of thought, time, consideration, care, analysis, testing, documenting. It all goes out the window when management starts dictating that the code must ship.