Posted by Adrian Smith
on July 07, 2008
Coming from an engineering background, I have seen the issues that well meaning engineers encounter when attempting to develop software.

These include:
- Inappropriate technology or language selection
- Poor architecture and strong coupling between components
- Inadequate or non-existent testing
As a result they often spend much of their time fighting with the software instead of solving the design or research problem. Additionally, the reuse and extensibility of the software is limited, resulting in significant rework.
Software Carpentry provides an excellent online course based on Open Source content intended to give scientists and engineers the fundamentals of software development.
Posted by Adrian Smith
on June 17, 2008
The effectiveness of software application frameworks such as Ruby on Rails, automated build tools like Maven, and architectural design patterns like Model-View-Controller, demonstrate the value of a structured approach to development tasks. For me, the expression “convention over configuration” really sums it up. When I’m developing an application I’m far more interested in the business logic rather than the inner workings of the framework or how I should structure an application.
Ruby on Rails achieves this goal by simplifying web application development and removing configuration decisions so that the developer can focus on solving the business problem. With this in mind I thought there may be value in exploring an equivalent framework for mechanical part and assembly design.
Continue reading…