While the future may be a mystery, you can design software to accommodate future changes. But how much future-proofing gets in the way of good design?
An essential part of requirements analysis is understanding which quality characteristics are the most important so that designers can address them appropriately.
While computing has changed a lot in the 20 years since the SOLID principles were conceived, they are still the best practices for designing software.
Code quality affects the mental state of a programmer, communication within their team, and the incentives attached to their work. Improve your code and you can improve your organizational health and competence as a whole.
Stretch work assignments are tasks or projects that are a bit beyond an engineer’s current skill or knowledge level and that allow them to improve and learn new things. When done correctly these assignments serve a dual purpose of providing learning opportunities for your engineers, while at the same time completing a project or task that will help your company.
Open source won. Now, the OSS way of working is making inroads into new territories: the corporate engineering department.
It's now been more than 50 years since the first IFIP Conference on Software Engineering, and in that time there have been many different software engineering methodologies, processes, and models proposed to help software developers achieve that predictable and cost-effective process. But 50 years later, we still seem to see the same kinds of problems we always have: late delivery, unsatisfactory results, and complete project failures.