Archive for category mobile
Disrupting Your Web Development Workflow
Posted by fitzgeraldsteele in mobile, programming on March 22, 2013
I had a chance to speak at the Iowa Javascript meetup about Web Development Workflow tools.
There are three things which have really made me reconsider and revise the process by which I organize and deploy code to servers:
- The need to make ideas and concepts available for consumption as quickly as possible.
I work in a lot of collaborative areas, so it is important for me to say “what about this?” in an electronic medium where people can play with it, try it out, see how it feels. So I want to maximize the time I spend building awesome new stuff, and minimize, automate, or delagate some of the operations type considerations. - Cloud and mobile.
The days of deploying a site to one known server, to be viewed on a couple known desktop browsers are gone. You need to be able to scale up your app very quickly, and that’s much easier if you plan for that from the beginning. Plus, platform as a service providers make it so easy to try an experiment with different technology stacks, there’s really no reason not to start with this approach. - Keeping up with the craft.
I need to keep up with the state of the art, so that I can remain vibrant, creative, and competitive in the industry.
So I shared with the group a few tools that have helped me to continue to grow in these areas:
Super Awesome Code Completion
Project Scaffolding
Platform as a Service
Browser-based online IDE
And you can see the slides here:
http://www.haikudeck.com/p/IfEWc0USxR/disrupting-your-web-dev-workflow
Agile, Lean UX — What’s New is Old
Posted by fitzgeraldsteele in agile, mobile, social media, usability, user experience, ux on March 2, 2011
I’ve been interested in recent twitters, posts, and presentations about the emerging and changing role of user experience. Yet we’ve seen some resistance to the new terms or methodologies. I’d like to suggest the current transition in the UX field is similar to revolutions in scientific fields. Science historian Thomas Kuhn would say we’re in a period of crisis or revolution. (Don’t worry, it’s not as bad as it sounds). It’s normal, healthy.
Our field is going through change. Change is normal. I think this change is analagous to the changes and evolution of scientific fields described by Thomas Kuhn in 1962. He showed that scientific fields go through cycles:
- Pre-paradigm—Sort of a bright, green, new field of inquiry. There are no established rules, theories, practices, or paradigms. There might be a number of competing ideas.
- Normal —The field sort of settles on a general worldview (what problems are worth investigating, what tools are techniques are correct, etc). An elite group of guardians usually emerges to lead the field, and determine what ideas are shared or published widely to the field. If processes or findings occur that don’t agree with the established canon of the field, they’re regarded as anomalies.
- Revolutionary—As the anomalies pile up, it becomes harder and harder to reconcile them with the old ways. For awhile, the field is in crisis you have competing theories and processes again. Finally, there is a paradigm shift (the new ideas explain more things more elegantly, or are more useful than old ideas, the old elite guard retires or dies, etc) and the revolution becomes normal. Think of the Copernicus declaring that the Earth revoles around the Sun, or the beginnings of the atomic model of chemistry.
This phased evolution model neatly describes what we’ve been seeing in the user experience field.
Evolution of the UX field
Pre-paradigm UX
Twenty years ago we were talking about interaction design, usability, and user centered design. Computers were for work, graphics were bad, networks were bad, and building and deploying new systems was hard. I remember hating Windows 3.1 because it made me use a mouse…I could do things so much faster in DOS! As usability engineers, if we could improve task completion rates and reduce errors, we were pretty happy.
Normal UX
During the dot com boom and bust of the late 90′s and early 00′s, we talked about User Engineering, and Outside-In Design. I know it was around this time that I stopped being lumped in with the technical, programming team, and started working more with business users and stakeholders. We all agreed to stop using <blink> and <marquee>, and started to focus on not just building software that optimizes performance on a work task, but designing things that people will actually want to use. As we approached the late 00′s, we started building design patterns, and interaction frameworks. We more or less agreed on a set of UX deliverables. In the last two years there has been an explosion of user experience tools, templates, companies, techniques, andservices available. (Those are just a few that I use, that I could think of at the moment…there are hundreds more). In essence, we all now have a robust set of tools and techniques to address our client’s needs.
¡Viva La Revolución!
Today’s new challenges and assumptions that make us reconsider how we approach user experience.
- Networks are fast and ubiquitous (except when they’re not).
- Users are not only generally familiar with standard computing metaphors, but are innundated.
- Websites, webapps, mobiapps are all relatively quick and cheap to stand up and deploy to millions.
- Screen size is variable, and tasks may span screens.
- Apps are social — they know you and help you interact with your friends. Storage is cheap, data is abundant, and is available from the cloud.
- Location and context are unknown, and may not take place behind a desk.
While we’re still responsible for creating usable experiences (time on task, error rates, mental models, Fitt’s law, etc) the bigger challenge today is figure out exactly what provides value and delight to users. Developers need designs before the end of a 2 week sprint, it now may be as fast or faster to build experiences in an integrated team than to do visual comps. So we’re talking about UX in new ways, using new terms: Agile UX, Lean UX. We’re doing more more lo-fi prototyping. We’re doing lots of design workshops, story mapping, ethnography. We’re doing more of everything, however we can, so that our products and designs are things people will actually want to use.
At the end of the day, practitioners are looking for ways to redefine the field, and exploring new ideas to address today’s realities and assumptions. I don’t think we should disparage these efforts. It’s a normal cycle that one sees in healthy, evolving fields.
I’m seeing people on the leading edge of the User Experience field are having some success truly integrating user experience methodology into corporate culture and product development cycles. I don’t work for a startup. I’m not a consultant (anymore). But I’m excited because history tells me the current UX revolution will eventually become normal UX. It will eventually get to my UX team of one, nestled within an excellent team of web designers, in a conservative company, in the midwest.
In a follow up post, we’ll apply some systems thinking to find a way to bridge the old UX and the new.—
Is Mobile Design Really That Different?
Posted by fitzgeraldsteele in confernece, mobile, phone, programming, usability, user experience, ux on December 1, 2010
I’ll be honest. I’ve only dabbled in the mobile app design and development space: one app for fun, one app for work (hopefully to be released in the next couple months). At today’s iPhone Design Conference, Brian Fling argued that mobile design is totally different that web. But I still don’t see how mobile app design and development is that different from traditional software or web development. Mobile devices offer new capabilities and require learning new tools, but the fundamental design and development tasks remain the same.
Mobile design reminds me of designing desktop apps in the late 90s. Multiple platforms, small screen real estate, limited computing resources (although an iPhone would probably

Back in the day, VisualAge for Java provided a way for designers and developers to jointly build "cross-platform apps." It used a drag/drop GUI editor to generate java code. In other news, I'm old.
run circles around my 486). Each application was an island, with little or no way to share information or task flows between them. Users probably didn’t have that much experience with computers. Your job as a designer was to understand the users key tasks and success criteria, and iteratively perform design and development to reduce time on task or errors. You differentiated your product by closely aligning the user interface metaphor with the users’ mental model of the task or process. Back in the day, we called this User Centered Design, and later Usability Engineering. Over the next decade, hard drives got bigger, screens got bigger, processors got faster, and networks and application mashups were everywhere. Users learned what to expect on websites. We designers stopped talking about usability — how well do people get through the task flows we have created — and started talking more about a more holistic User Experience.
Mobile application design exploded with the iPhone. Again, we find ourselves designing around constraints of small screens, multiple platforms, and limited computing resources. This time around, however, we’ve got some additional capabilities. Geolocation, gesture and multitouch interfaces, photo and video streams, anytime/anywhere network availability. We have cloud processing and data storage that we can use to offset device limitations. Even better, we have a generation of millions of users that are eager to embrace new technologies, pretty much willing to pay for and try out whatever we can think up.
But some things haven’t changed.
The basic cognitive and physiological capabilities of people haven’t changed. We’re still resource constrained people, who can only focus on one thing at a time, have relatively shoddy memories. We can only get our fingers to click on something so fast.
We all have the same basic needs.
Because of these basic human traits, designers still have to take care of the same basic interaction design requirements:
- Visibility (also called perceived affordances or signifiers)
- Feedback
- Consistency (also known as standards)
- Non-destructive operations (hence the importance of undo)
- Discoverability: All operations can be discovered by systematic exploration of menus.
- Scalability: The operation should work on all screen sizes, small and large.
- Reliability: Operations should work. Period. And events should not happen randomly.
As Don Norman recently pointed out, we’re not doing a great job with this on gesture interface devices
When we build these interactions, we’re still not doing it by ourselves. We want to continually align our designs with users expectations and developer feedback.
We still need to understand users’ mental model of the task domain first and foremost.
Mobile gives us some new tools in our design toolbox, and we lose the assumption that the user is sitting at a desk, working on a single task by themselves. New device capabilities…natural voice control, natural human gestures, thought controlled interfaces, semantic or linked data…are in active research and will make even more things possible. But the basic job of the UX designer is still the same…to use the resources available to make our users more efficient, effective, safe, and if we’re lucky happier. We still need to work iteratively with developers, business stakeholders to make that happen.
Am I missing something? Am I thinking about it at the wrong level of abstraction?
On a side note, I’ve previously discussed that UX Designer/Developers should have a strong foundation in human factors, psychology, and computer science. I think that (and experience) gives you the background to see beyond the new shiny toys and identify the real trends and innovations. Jared Spool seems to agree.