Sometimes people who design software think a lot about design and fairly little about software.
But if you’re a UI/UX designer, software is your medium, just sculptures use marble. It has its own shape, and it’s own unique constraints. It’s beautiful, ugly, strange, unpredictable, counterintuitive, and even irrational.
Engineers, too, have been living with software. For years, they all have been trying to solve the Big Problem in software, most famously outlined in the book The Mythical Man Month: software is inherently complex, which makes it almost impossibly hard to build on time, on-budget, and at high quality.
Luckily our engineer friends have learned some lessons for us. Frameworks like Agile development and Extreme programming, can help us break down complex projects into useful pieces, reduce complexity, and decrease the risk that a difficult project will go over budget or fail.
Here are a few of my favorite lessons from engineering.