3 contraversial things that I believe
-
Programs/applications can be completed and stand on their own: (Accomplish a feature set that a customer finds value in and do not allow scope creep outside of that feature set. This is crucial to be able to build software without handcuffing yourself with legacy code. If your career was an endless list of technical debt it would only ever increase and you would constantly be disappointing by dropping support throughout your career. This does happen but we should design our software especially open source software so that it can stand on its own.)
-
Tasks can be impossible (You can have a dependency that says you cant have that thing and does not give you access)
-
Something can be explored completely: (Something can be deemed logically complete by exploring all options available, or proving that the task is not solvable. I watched a video once that mentioned humans are unique in being able to prove things are not solvable instead of solving them which is often done in mathematics.)