At a presentation yesterday on new trends in UI Design, designer Drew Davidson provided a surprising maxim: the best UI is no UI. As computers advance to the point of being able to predict exactly what we want to do, instead of providing an interface for our input, the ideal system would simply read our mind and provide what we want or need.
Continue reading
Tag Archives: Software Sagacity
The Importance of Wireframing in Software Development
At each stage of software development, from design, to development, to deployment, there is opportunity for either keeping the status quo, falling behind, or achieving glory. Wireframing plays a crucial role in helping software projects achieve glory, as opposed to simply meeting goals.
First, a quick overview on the nature of wireframing. Similar to CAD drawings or blueprints, wireframes of a software project provide a skeleton outline of how key elements of the system will be laid out on the screen. The wireframing stage generally does not consist of finalized, high-end graphics or pixel-perfect positioning, but is rather focused on the general position of fields, elements, and user interface buttons.
Wireframes can be drawn on paper, however it is more effective to use a software tool such as Balsamiq, Axure, or Visio for the drawings. These design tools can make it easy to implement changes, duplicate repetitive content, and handle versioning. Balsamiq has achieved its own special standing among UI development tools with its quick rise to fame and popularity. Instead of depicting clean lines and elegant results, Balsamiq makes the entire drawing look especially “sketchy”, so that project stakeholders have no illusion that they are looking at a final product. Instead, Balsamiq produces wireframes more akin to something that would be sketched on a whiteboard, as opposed to an elegant CAD drawing. This lets viewers focus on the layout and general concept, instead of on the design elements that may be subject to future change. Regardless of the wireframing software, the end result will be a set of documents that provide a high-level view of the user interface and software functionality.
The key benefit of wireframing is how it provides a bridge between concept and creation. Before wireframing, the software is a fuzzy amalgamation of database entities and software architecture components. Once the wireframes are created, the software takes shape. Similar to sculpting, that first set of blows to “rough out” the software design are often the most critical. Not only do they define the final form of the application, they also provide the opportunity to implement creative ideas or enhancements. While the system is still in the wireframing stage, interesting concepts or UI paradigms can be added relatively easily. Once the system has progressed from wireframing into development, the UI is generally fixed and requires significant rework for any enhancements.
With all the benefits of wireframing, it can still be a challenging task to execute. Out of all the development tasks, wireframing takes the most creativity and inertia. Hewing the system out of rough stone, the architect or UI designer needs to bring everything together: the database, design, layout, and programming workflow. For sizable systems, this is the task that separates the master from the apprentice, and brings the software to life.
Web Development Tips – Disabled Input Elements in Postback
When developing forms for the web, there are two methods to make a form element non-editable – using either the “readonly” or “disabled” attributes. Each method has its benefits and drawbacks, however there is a workaround available to combine the best of both worlds.
Continue reading
Highlight Table Rows using Javascript
When developing web applications with wide tables, it’s often difficult to scroll horizontally and see which row corresponds to which data. This is why most apps limit the width of any table to the width of the page. Still, at times it is necessary to show a large amount of data in a tabular format. This JavaScript scriplet will help add highlight functionality to any HTML table.
Continue reading
Bad Code Good Code
In the previous series on database design principles, we discussed potential pitfalls in software development and ways to solve common database design mistakes. In the past week, while revamping an ASP.NET software application developed by another company, I have had the opportunity to see many of these rules come to life, and see their malpractice wreak havoc on the enhancements.
Continue reading
Can User Interface Design Make the World a Better Place?
When building custom software, a user interface designer will progress through several levels of skill development. Similar to Maslow’s Hierarchy of Needs, each lower level must be fulfilled before a designer can progress to the next plateau. The question is – where does the pyramid end, and where is it right to draw the line as to the responsibility of the UI designer?
Continue reading
Search Engine Challenges – Scanning the Deep Web
During undergrad at Urbana-Champaign, one of the hot topics for search engine scientists was the “Deep Web”. While most of the web was easily accessible through HTML, a large portion of the dynamically generated content, such as PHP and ASP pages, could not be indexed by search engines.
Continue reading
WordPress Development Tricks – Independent Blogs per Category
With its extreme flexibility and proven prowess as a publishing platform, WordPress has become an invaluable tool in the arsenal of most web developers. However, advanced customization is often cumbersome and can be difficult to achieve.
Having spent several hours the past two days fighting against WordPress’ limited support for splitting blogs by category, I’m sharing a few of the insights gained during the arduous process.
Continue reading