January 30th, 2012
Adam Menzies, Solution Architect, CRM Practice
Salesforce will officially put the Spring ‘12 release into the wild in early February. We’ve reviewed the official release notes in detail (get your own copy here).
As the release approaches we’ve hit the
button on five of the top features. This list is written from a user and administrator perspective for people who both use and configure Salesforce systems on a daily basis. Be sure to add the features you’re looking forward to most in the comments section. Enjoy and happy Spring ‘12!
Continue Reading
January 23rd, 2012
Jeff Zapotoczny, Consultant
A lot of folks have used the Spring framework to build applications - and what’s not to love? It’s allowed us to solve enterprise problems with a minimum of tedium. And the framework has evolved to address criticisms, for example the continued reduction in need for lengthy XML configuration in application contexts in favor of ever more terse syntax and support for code annotations.
The framework as-packaged includes facilities to help with many common aspects of contemporary application development, from a Model-View-Controller (MVC) framework to integration with persistence managers and elegant transaction management. But it doesn’t necessarily cover every need. One example of a gap is batch processing.
Continue Reading
January 4th, 2012
Ben Northrop, Consultant
In part 1 of this series, I discussed the benefits of usability testing on enterprise software projects and outlined a general approach for integrating the practice of usability testing into a typical Scrum project (see diagram below). In this post, I’ll lay out a 3-step process for performing a usability test on an enterprise project, and highlight how it can can hook into the standard elements of Scrum (e.g. burndown, backlog, etc.). Here we go…
Continue Reading
December 19th, 2011
Adrian Wright, Consultant
Agile software development is about team code ownership, collaboration, and sharing ideas to get stuff done. You want to ride the Agile wave, but half your team is in one city and the rest are in another. How can you get your guys and gals to collaborate over the wire? Recently I’ve been working on a project like this and I’ve found a few things that can make your team efficient, collaborative, and successful in an Agile environment.
Continue Reading
December 12th, 2011
Zack Mance, Consultant
The Holidays are here! Soon snow will be falling, presents will be wrapped, and kids will be in line for Santa at the mall. I thought to myself, in this stressful/wonderful time of the year I would write a little light reading for the blog! I know that sometimes technical blogging can be a little on the strenuous side, so sit back, relax, and hum the tune with me! I know that you know it!
Continue Reading
December 5th, 2011
Prem Nagrath, Consultant
Here are four things in Java that might surprise you:
Polymorphism doesn’t work the way you might expect. For example, consider subtype polymorphism with Generics. To elaborate, even though B is a subtype of A, and it is perfectly valid to say:
Continue Reading
November 28th, 2011
Steve Ayers, Consultant
There is an episode of the sitcom Friends where Joey is approached by a travelling encyclopedia salesman, offering to peddle him the entire collection of his wares, the complete Encyclopedia Britannica. Being a struggling actor and lacking the money, Joey opts to simply buy a single volume of the collection: the book focusing on the letter V. Joey, thinking back, realizes that there are many instances throughout his life where he sits dumbfounded as the other friends carry on conversations on subjects about which Joey has no knowledge. So, instead, he nods convincingly, pretending he understands. This V volume will allow him to participate intelligently, he thinks. However, much to his dismay, the first time he gets to exhibit his new knowledge, the conversation swings from a proposed topic of Joey’s (Vietnam) to something related, but starting with another letter: the Korean War. Since Joey doesn’t own the K volume, he again has to sit there, crestfallen, while the conversation carries on without him.
Admittedly, functional programming has been my K volume. I spent years learning the ins and outs of object-oriented programming, stammering through explanations of polymorphism and encapsulation, regurgitating the Gang of Four design patterns whenever applicable. I was ready, I thought. When that conversation eventually started in Central Perk, I was going to be prepared. But, just when I thought I knew all there was to know, everyone went and shifted the damn letter on me.
Continue Reading
November 20th, 2011
Ben Northrop, Consultant
It is not enough that we deliver systems that are merely functional, they must also be usable. Paraphrasing from usability expert Jeff Attwood, to the users of the system, “the interface is the application”; it is their most visible window into our work. Whether we finish on time, on budget, or in scope can be immaterial if the final deliverable is frustrating or inefficient to use.
On most enterprise applications, in my experience, usability is promoted via a number of low-cost methods: following usability standards, deferring to user interface specialists, trusting our intuitions, or simply conferring with customers and business owners. And while these methods are sufficient in most cases, when usability is a high priority, there is simply no substitute for actually watching people, without interference, use the software we build. This is the practice of usability testing.
Continue Reading
November 10th, 2011
Via Tsuji, Consultant
All technologies go through the life cycle of maturity and adoption. For most technologies, over-enthusiasm or “hype” and subsequent disappointment precedes mainstream adoption and realization of how the technology solves real business problems. Gartner has modeled this evolution in the Hype Cycle and identified distinct key phases (Gartner).
Business Rule Management Systems (BRMS) began the descent towards the “Trough of Disillusionment” in 2011 (Dixon & Jones, 2011), wherein many implementations fail to deliver what businesses expected it could.
The focus of this series is to provide guidelines for truly reaping the benefits of a business rule management system. It clarifies certain implementation steps, debunks unrealistic expectations, and warns of common pitfalls to a BRMS implementation.
The first part of this series tackles the common pitfalls related to unrealistic expectations of BRMS, how to avoid them and distinguishing the true benefits of a BRMS implementation from the market hype.
Continue Reading
October 10th, 2011
James Cox, Consultant
The Page Objects design pattern is outlined in the Selenium wiki, but to summarize, Page Objects are meant to encapsulate the messy internal state of a page. Changes in the presentation code should only require changes only to the Page Objects, not to the actual test code. Using a Page Object promotes consistency; there may be five different ways to legitimately determine that you are on the login page, but adhering to the one definition in the Page Object will prevent you from having to maintain the other variants.
Page Objects should be ignorant of an application’s business logic, they should only be aware of page state and how to interact with it. By clearly delineating the test code from the page objects, you will be able to use the same page objects in a variety of tests cases and achieve code re-use.
Continue Reading
October 4th, 2011
Brian Gray, Consultant
One of the “softer” sides of development is time management. We do this on both a macro scale (project planning, estimates, what goes into the Sprint, etc.) and a micro scale (what am I going to work on today?). Most developers on most days are concerned with micro time management — and many good project managers realize a lot of important decisions get made there as well (”it seemed like it would be a quick to fix so I went in and did it” or “Gina came over and asked me about this defect so I fixed it.”). This is especially true of programmers on many projects, a few teams, and with some maintenance and support involved in their work.
I do not profess to have a solution — I thought I would share three strategies that I have tried over my career (I am sure there have been others). If you want to try one of these, great! Let me know how it goes! If you have another approach, please share or email!
Continue Reading
September 28th, 2011
Karen Colson, Director of Marketing
September 2011 marks Summa’s 15th Anniversary and we have a lot of exciting things happening at the company. We’ve received accolades locally and nationally for our sales and employee growth, along with recognition of Summa as a great place to work.
Continue Reading
September 12th, 2011
Steve Ayers, Consultant
When last we saw our hero, he was riding off into the sunset with Hibernate, his newfound love. The blogosphere was all abuzz. Would this new relationship blossom into something so well-known, tabloids would invent a new name for it? (HibeAyersnate? JBAyers?). Or would the union crash and burn, a steaming wreck amidst so many Hollywood romances? (I’m looking at you, J-Lo).
Well, neither really, faithful reader. Our hero is neither smitten nor inflamed with that finicky ORM. There are still times when he hears of Hibernate arrogantly committing data merely because it felt like it, while other times, he simply joins two tables through a simple line in XML. It’s a slippery slope. Who said true love was easy?
Continue Reading
September 6th, 2011
Prem Nagrath, Consultant
Most of an enterprise application developer’s exposure to the database is primarily restricted to basic DDL, CRUD operations and occasional SQL tuning. So when I recently got a chance to use some not-so-common Oracle functions/statements in a data-migration project, I thought they might be worth sharing.
Continue Reading
July 29th, 2011
Mitch Goldstein, Consultant
When using the Java Persistence Architecture (JPA) to perform object-relational mapping, it can become difficult to manage entities with complex keys. Having a unique identifier is a keystone of the mapping approach, and complex keys can make coding awkward and difficult. An alternative is to create entities with sequential unique numeric keys, and use the capabilities of the query facility to identify unique entities within the relational store.
JPA has several techniques to generate unique keys for entity objects. This article focuses on one technique: using a database table to keep track of an incremental ID. The @TableGenerator annotation is used to facilitate this feature.
Continue Reading
Previous Posts