Recently, I had a conversation with my TL about selecting a subset of items from a large list of items (100s, 1000s?). The problem we were running into was that displaying all of the items at once was hanging the browser. Specifically, the widget we were using would completely hang IE7 when there is more than 200 items in the widget. I commented that this was a showstopper since we officially support IE7 and that we had to solve this, and the TL just responded with "If IE7 cannot handle such a large number of items, then we can't support this request." At first, I was annoyed at his flippant attitude since this basically meant we weren't going to be supporting a feature that seemed very likely (e.g., supporting a large list of items that needed to be selected), and he was the TL. He was supposed to help me solve this problem! Couldn't we do paging? Maybe we could do some fancy smancy scrolling + AJAX to get data in multiple sections! We could NOT just throw up our hands and say "Oops, this is a problem. Sucks for you."
After adamently arguing for a while, I realized that my TL wasn't really saying what I thought he was saying - which was "Give up." Instead, he was telling me to think outside the box of what the user is actually trying to do. Specifically, it doesn't seem likely that the user would ever want to be shown 100s of items at once so that he can make a selection. If he's looking at 100s of items and only wants to select a few, there must be some sort of criteria that he is using that we could probably leverage to help make his selection easier. By limiting his selection of items based on some filtering criteria, not only do we make the user's life easier (no need to see 100s of items when he only is looking for 3 items), we also completely sidestep the browser constraints when showing 100s of items! Looking at it this way definitely makes much more sense than insisting that "we must support showing 100s of items at once via
some fancy widget!"
I think the main "caveat" of going with this type of solution instead of the "fancy widget" solution is that each developer will now need to figure out how to create a useful filter for the user for each time there is a large data set. There is no way to find a "silver bullet" filter that will correctly (usefully?) filter large data sets in all cases. The "fancy widget" solution would definitely solve the problem with all large data sets since it'll always be able to (somehow) show all of the data, but upon thinking about user goals just a little bit more, it just doesn't make sense to build a fancy widget that does exactly what we think it needs to do, but completely misses the user goal's of why he is looking at this data set in the first case.
Ginger
ReplyDeleteHere’s your chance to make a difference. Do you want to lead the UI development of a hot, new Green-Tech product? There is no hotter topic in the world than Energy. Energy is the future, and you could ride the wave.
Sentilla could be a great play for a few reasons: a) it’s a start-up with large, Fortune 1000, paying customers, b) it’s in a HOT market segment, c) it is well-funded, and d) there has been a flurry of acquisitions in/around this segment (eg. Sentilla has a profitable exit strategy).
Please call me to share your thoughts.
Matt
Matthew Loera
President, Celerity
(415) 508-8361 work
matt@celeritystaff.com
Sentilla - Energy Manager for Data Centers
Search: Front End Software Engineer/Architect
Location: Redwood City, CA
Sentilla Overview:
Currently, the world's data centers use as much energy as the airlines and their energy use is growing faster than any other industry. Sentilla tackles the energy problem in data centers by providing the world’s first software-only solution to actively extract more performance for every Watt used in IT environments. With Sentilla’s products, global enterprises can now track, manage, and reduce that energy consumption. To continue to drive market adoption and product innovation, Sentilla is seeking a Front-End Engineer/Architect that can put to use all of their skills in a fast-paced environment building Sentilla’s enterprise application and tools.
Position Charter/Goals:
• Complete redesign and software rewrite of the entire front-end for Sentilla Energy Manager enterprise application and tools.
• Sentilla’s Front-End engineering tasks range anywhere from tweaking the visual design and layout of a product view using HTML/CSS, to modifying Java-based web API methods to provide the UI (and other users of the product API) with intuitively design functionality.
• As an integral member of the engineering team at a start-up, you’ll be working closely with people working on all different parts of the product, and ensuring that the user-facing portion of Sentilla’s Energy Manager for Data Centers provides a quick, intuitive interface that shows off the power of the product.
Responsibilities:
• Continuously maintain and improve the Django/JavaScript web application.
• Work with product marketing to add new features to the web application
• Work with core engineering team to flesh out customer-facing APIs
Qualifications:
• Bachelor’s Degree in CS/CE
• Extremely intimate knowledge of JavaScript (closures, first-class functions, execution contexts, cross-browser scripts, memory leak risks)
• Have some familiarity with JavaScript libraries: know when to use them, and when not to use them.
• Extreme comfort with Java(EE) and Python.
• A track record at designing consistent, usable user interface, as well as customer-facing APIs
• A love for writing well-organized, reusable software
• Comfort working in a Linux-based environment.
• Familiarity with, or willingness to learn quickly, about Glassfish and Django.
Bonus Qualifications:
• Familiarity with enterprise management systems (SAP, Tivoli, VMWare)
• Familiarity with reporting engines (Jasper Reports, Crystal Reports, ReportLab)