As my grade 10 ComSci teacher said, the world of programming and software developement revolve around a triangle where only 2 out of the three sides are true at any given time. The three sides are budget, time and function. If the project is finished under budget and on time, it won't work properly, if the project is on time and works, it'll be over budget and if the project works and is within the budget, it'll be finished late
