“Fluency”: A UI Designer for Non-Programmers

“Fluency” is an academic research project, started by Dr. Gregory Rawlins of Indiana University, aimed at creating a user interface designer for non-programmers.  The premise of Fluency is to separate programming and UI design into two non-overlapping domains, so that designers can take the “widgets” that programmers create, and not only lay them out visually on the screen, but also be able to trigger events and pass arguments – all from a graphical user interface, with no code whatsoever!

I worked on Fluency for two semesters – first as a student, then as a manager in charge of five other graduate students. As manager, I set – in consultation with team members – the overall vision for the project, and kept track of team dynamics, progress, and overall workload distribution as I delegated tasks to each of the team members. I conducted weekly meetings with the team as a whole, where we would discuss our weekly priorities and progress. I also met individually with each of the team members: with some, once or twice a week; with others, who preferred to have more guidance, every other day. As manager, I was also responsible for reviewing code as it entered the Subversion repository, ensuring good coding practices and adequate comments.

Over the course of my semester as manager, my team and I made vast improvements to Fluency’s user interface and to the program’s overall stability and efficiency. As Dr. Rawlins pointed out after our final presentation (click here for the PowerPoint slides), Fluency is finally at a stage where it looks usable and friendly to designers – something that the project has edging towards for 10 years!

To see an example program being built with Fluency, please see the the videos below. There is no sound, as we narrated over the videos live during the final presentation – but I did add some YouTube annotations to serve as explanations.

The video cannot be shown at the moment. Please try again later.

The video cannot be shown at the moment. Please try again later.

Managing “Fluency” has been a wonderful experience, both in terms of the students that I worked with, and the lessons in GUI design and project management that I’ve learned. Dr. Rawlins was also pleased with my work (for other reviews, please see the References page):

I had Michael in my Software Engineering class – first as a student, and then as a manager for the class. In both roles, Michael was an enthusiastic programmer, a quick learner, and a responsible and communicative team member.  As manager, he conducted regular code reviews, created instructional handouts for tools like JUnit and Log4J, posted actively on the class mailing list, and was always available to meet with the students outside of class.  As part of managing the class, Michael led a group of five other students in the development of a user interface designer, “Fluency”, where he spearheaded a number of innovative design ideas, and saw those ideas through to their completion.  Michael’s teammates reported him to be enthusiastic, encouraging, easily approachable, and fair; he clearly enjoyed working with the team and helping each member grow as a programmer and a team player. Michael ranks in the top 1% of the students I’ve taught over the past 10 years, and I highly recommend him as an excellent programmer, teammate, and product manager.

Dr. Gregory Rawlins, Associate Professor of Computer Science at Indiana University and Director of Undergraduate Affairs.