There is much debate about splitting computer science and
software engineering. Computer science being the theoretical
stuff and software engineering the practical, but is that
feasible? We probably agree that software development should be
engineering. Building a software application should be like
building a bridge. The problem is that it is not. Joel Spolsky
talks about three phases in software development: - Design needs
an artist - Building needs an engineer - Debugging needs a
scientist When the building part is already engineering, we just
need to figure out, whether design and debugging can be made
engineering or (mostly) optional. If you use a framework like
Rails, you don’t need to design (apart from CSS and URLs). Type
checking and verification could help to make debugging
disappear. A software developer describes the requirements for a
job as a software developer: - communication skills “The best
developers are often the ones who can explain problems and
solutions the most clearly to others” - tea