Archive for the ‘Technology’ Category

August 15, 2013 · by Christian Warden · Technology
In response to a customer’s request for product roadmap details, and not having the project artifacts they expected based on how they manage internal projects, we asked our Director of Software Development Christian Warden to write up a description of the development methodology we use at GreatVines

Axioms of Software Development

The GreatVines development methodology follows from a few high-level axioms,
draws from multiple software development and project management methodologies,
and makes use of modern tools for collaboration.

The axioms:

  1. Requirements Change
  2. Priorities Change
  3. Delivering Useful, Working Software Frequently Is Our Primary Goal
  4. Delivering Updates to our Software is Cheap

The first two items, changing requirements and priorities, are related, and mean that we don’t expect to be able to predict the future more than a few months out. We generally have a good sense of which new features customers want to make use of next month, but not those that will be most useful next year. Additionally, as we deliver new features to customers, requirements for enhancements to these features become apparent as we get feedback from them.

Item 3, delivering quality software, stands on its own. These first three items reflect what we think are the most important principles from the Agile Manifesto.

Item 4, that the delivery of updates is cheap, follows from the fact that we are a software-as-a-service company. The days of shrink-wrapped software are gone, and updates to both our web-based and mobile applications are delivered without end-user intervention. Because delivering updates is cheap and requirements change, we are able to deliver multiple iterations of new features, and adjust requirements as we discover exactly how customers are using our software and how they would like to use it.

Therefore, we aim to deliver useful, working software frequently under theassumptions that requirements and priorities change regularly, and that delivering updates to our software does not impose a large cost on either GreatVines or our customers.

Process

We generally organize releases into three- to four-week cycles, similar to Scrum sprints, but try to keep the next two to three releases planned as well so we’re looking two to three months down the road. Like scrum and kanban, we start from a backlog of features that we would like to implement. We bring together team members from development, support, implementation, and sales when prioritizing the tasks for future releases.

Each release typically has a combination of small tasks, which may already describe a combination of technical requirements and planned implementation details, and larger tasks, the requirements for which need to be further elaborated.

In preparing the bigger tasks for an upcoming release, we work to ensure the requirements are clearly defined so development can proceed. Features that require a new user interface or significant changes to an existing interface are mocked up. There are often a few iterations of mockups, as questions are raised and addressed, and the requirements and mockups updated.

Depending on the feature, we occasionally share the mockups with existing or potential customers, and solicit their input before starting development, but we generally prefer to implement a working interface, then adapt it as we get feedback from real use.

As the requirements are fleshed out, we break them down into development tasks, referencing the mockups and relevant requirements. Each task is estimated by the developer that will be responsible for writing the code.

The tasks within a release are prioritized so if there is any slippage, the highest priority tasks get completed first. The assignment of prioritized tasks to developers ensures that each developer knows which task they should be working on at any time, and helps collaboration by letting all members of the team know who is working on what and how the priorities are defined. As in kanban, it also limits the amount of work-in-progress.

During development, we try to ensure the quality of the software through developer-written tests and peer review. For both our web-based applications running on the Force.com platform, written in Apexand our mobile app, written in javascript, we make extensive use of unit tests. Although we don’t follow a test-driven development process per se, we try to take a test-first approach with bugs; for new features, we typically write tests either in parallel with implementation code or subsequent to it.

We have found that testable code is better code. If it’s hard to test, it’s probably poorly designed, and needs to be decomposed.

During peer review, both the tests and implementation code are reviewed. We look for areas in which the design of the software can be improved as well as ensuring that the code follows our internal coding conventions to ease future maintenance.

With our mobile app, we have started writing automated functional tests as well as unit tests. The goal is to have the tests fully specify the functionality of the application.

When a new version has been released, our release notes are updated.

Tools

There are a couple important tools we use to support our development process. We use LiquidPlanner as our project management tool. Each release is organized as a package. We have our web-based application and mobile applications organized as separate projects,
broken down into broad features using folders within the projects. We pull tasks from both projects into a release package.

Mockups for new interfaces that will be built as part of the release are done at wireframe level like one would do in Balsamiq Mockups. (Our mockups are actually often done as Google Drawings.)

The use of ranged estimates in LiquidPlanner allow us to organize releases with a fair amount of confidence in being able to hit delivery dates. Estimating software development tasks is a continuing challenge, but we find the confidence interval-based approach superior to point estimates often used in project management tools and story-point estimates used in scrum. In the backlog, we often put wide estimates on broadly defined tasks, when it’s not yet clear the value of the information provided by more granular requirements and estimates. When organizing a release, we break down big tasks into smaller ones, generally around one- to six-hours. Smaller tasks are easier to estimate more accurately, and estimates improve with practice.

LiquidPlanner also serves as a collaboration tool, minimizing project management overhead. As discussed above, the priority of tasks is unambiguous. We keep estimates of remaining work on tasks up to date, and LiquidPlanner automatically updates the schedule. Discussion about task details happens within LiquidPlanner so if there’s a change to or clarification of requirements, there’s one place to look. (When real-time discussion is required, we generally use Google Hangouts, then record the result of the conversation in LiquidPlanner.) Using LiquidPlanner mostly eliminates the need for “what’s the status?” discussions.

We also track the status of code reviews and whether the code for each task has been merged within LiquidPlanner.

We use git and GitHub for version control. Our use of github follows how most open source projects are organized. We have a greatvines organization, which contains the primary repo, from which we package our software. Each developer has a fork of the repo. Developers create feature branches for individual LiquidPlanner tasks, and open a pull request against the greatvines repo when the code is ready to be reviewed. The pull request is noted in LiquidPlanner and the task is moved to a ready-to-review package, which puts the task on hold (not scheduled for further development).

Peer review is done within GitHub, using inline comments on the open pull request. If the task needs further work, the task is moved out of the ready-to-review folder in LiquidPlanner so it’s scheduled for additional work. When the pull request is merged, the task is marked done.

Future Improvements

There are a couple areas in which we are planning improvements to our development process around testing. We are using jasmine and jasmine-jquery to do some functional testing of our mobile app, but it’s not exhaustive, and we don’t
have anything similar in place for our Visualforce interfaces. Therefore, we augment our automated testing with manual testing. We would like to add more robust automated functional/acceptance testing, perhaps using a browser automation tool like selenium or casperjs.

As we further automate testing, we also plan on introducing continuous integration. Travis CI looks promising here, with tight integration with GitHub, and extensive use among open source projects already.

There are a couple areas in which we might experiment with changes in process in the future. One is in choosing which features should go into each release. We currently use a consensus building approach in which we informally consider
the value of possible enhancements to our customers. I’d like to investigate whether there might be gains to be had from the use of more formal Decision Analysis practices.

We might also experiment with scrum-style user stories for documenting requirements. For the most part, our lack of a formal requirements documentation structure has not been a problem, and we are able to turn requirements into technical designs easily. But in cases where requirements are very broadly defined, the “As a user, I want” structure may prove valuable. Using a standard structure may also ease on-boarding of new employees and coordination with any contract or outsource developers with which
we work.

January 4, 2013 · by Tim Jones · General, Sales Strategy, Technology

I loved Richard Branson’s recent article, “Why aren’t more business leaders online?” While he is mostly referring to executives aversion to social media (only 16% of executives are using social media), he also indicates the lack of ambition by these executives to utilize technology in general. There is a “surprising lethargy about using the online tools already available”. In his opinion, and mine, this is a big mistake. If your answer to the question “How am I using the latest technology to improve my business?” is, “I check my email on my iPhone”, then you are missing the boat. State of the art cloud computing systems and mobile business applications can make your business much more efficient, collaborative and productive. And, the tools are here NOW. As Branson says, “Anyone who thinks new technology isn’t going to keep changing the world has got their head in the sand”. Don’t be late to the game.

Link: http://www.linkedin.com/today/post/article/20121019130632-204068115-why-aren-t-more-business-leaders-online?trk=mp-details-rr-rmpost

September 21, 2011 · by Tim Jones · Chatter, Mobile, Technology

“Social networking-type applications will become as ubiquitous in the workplace as Microsoft Office tools and will likely replace e-mail as the dominant form of corporate communications.” — Bill Gates

Chatter is changing the way employees collaborate with one another. New, young sales reps grew up on the internet. This is how they communicate. This is how the world communicates. Now available for your business. Contact GreatVines to learn how Chatter from Salesforce.com is an integral part of the GreatVines user experience, from real-time team collaboration, to triggered alerts and shared content. Let your data talk to you!

Whether you know it or not (or even like it) websites like Facebook and Twitter are shaping the way we think about data and communication. No longer do you need to search through piles of disparate, disconnected information sources – today the data you need comes to you! We all have strong feelings about how Facebook connects us or who it connects us to, or how Twitter overwhelms us; but you can not dispute the power of information within a business. At one level or another, you are probably on this website because of a need for a CRM solution – relationship management, and relationships are founded on communication.

The great news for all GreatVines customers is that Chatter is embedded fully within our application and available today  - and you can now enable Chatter access for all employees in your organization for free, including mobile support! Please check out this powerful video (also displayed below) and contact us to discuss your collaboration needs.

February 4, 2011 · by Jim Thompson · Chatter, Mobile, Salesforce.com, Technology

Chatter Collaboration Cloud

We at GreatVines have been very excited about the rollout and promotion of Chatter on the Force.com platform. If you watched Superbowl XLV and the Halftime show, you saw animated videos featuring will.i.am, the Black Eyed Peas and Chatter.

The time has come to change (no, revolutionize) how we collaborate and communicate within an organization. Beverage companies are no different. We struggle with multiple data points and a lack of clear communication, particularly between various product, sales and marketing teams.

Whether you know it or not (or even like it) websites like Facebook and Twitter are shaping the way we think about data and communication. No longer do you need to search through piles of disparate, disconnected information sources – today the data you need comes to you! We all have strong feelings about how Facebook connects us or who it connects us to, or how Twitter overwhelms us; but you can not dispute the power of information within a business. At one level or another, you are probably on this website because of a need for a CRM solution – relationship management, and relationships are founded on communication.

The great news for all GreatVines customers is that Chatter is embedded fully within our application and available today  - and you can now enable Chatter access for all employees in your organization for free, including mobile support! Please check out this powerful video and contact us to discuss your collaboration needs.

December 15, 2010 · by John Collins · Events, Salesforce.com, Technology

In early December I had the chance to attend Dreamforce 2010. Not having been to salesforce.com’s Dreamforce event before, I really didn’t know what to expect.  I’ve been to plenty of big trade shows in the past, including COMDEX in Las Vegas back in it’s heyday, and Oracle OpenWorld which fills every hotel in San Francisco.

Somehow I was expecting more hubris and fanfare from this event and I wasn’t really disappointed.  30,000ish attendees was a huge uptick from 20,000ish attendees the year prior.  That much growth in interest for the platform is staggering.  I’m no analyst but I think this year’s record profits will not stay the high water mark for long.  Mark Benioff was entertaining and his potshots at Oracle and Microsoft were predictable and pretty funny.  He sounded a lot like his former mentor Larry, even when poking at Larry.

The conference is everything Cloud, with some exhibitors having nothing to do with salesforce.com or force.com, simply being cloud was enough.  Even the plastic show badges were shaped like clouds.  GreatVines had a nice presence for our size, as we were featured at a press event, Jim demo’ed the Craft Brewers Alliance version of HopVines, and Tim was on the closed circuit TV with Scott from CBA.

The big announcements from salesforce.com were interesting and of high potential impact to salesforce.com.  They continue to expand on their platform as a service offerings, by bundling development and database tools to allow partners like us to continue expanding our offerings.

One announcement we had hoped for was the hinted at improvements to the bundled analytics platform within force.com, but we will all have to wait a bit longer it seems.  Watch this space….

Overall, a great time and a good opportunity for us to bond as an ever growing team, we had 4 of our 6 full time employees present (watch this space also).

Oh, and congratulations to our own Jeff Huth, who passed the onsite Developer Exam and is now certified.  There is a rumor that he got the highest score ever taken on the exam, not sure we will ever know.

John Collins, CEO
GreatVines LLC

September 21, 2010 · by Tim Jones · Sales Strategy, Technology

It’s all about market share.  Here is how I learned that.  I “grew up” in the wine & spirits industry in New York, working for and with some of the biggest and best companies, brands and distributors in the business.  I was groomed by some incredible people from the old Charmer Industries in New York.  While I spent most of my time in meetings and offices, I learned the most important lessons while on the street working directly with key accounts and with distributor sales reps.  There are lots of acronyms used in this business, BDN, IRC, ROI, and of course the infamous RIP, however one acronym that was NEVER used was CRM.  I didn’t know what it was until I saw brand managers including CRM programs in their consumer marketing plans.  That got me thinking about how we could use CRM to drive sales to the trade.  15 years later, we finally have a platform to deliver a CRM tool that wine & spirits sales reps can leverage to sell more cases.  It’s called GreatVines.

The most important thing I learned in my time selling on the streets was that your relationships were the most important factor in how many cases you sold.  There was a direct correlation between the strength of your relationship with a buyer and how many cases he would buy from you.  What most marketers and executives didn’t realize was that the consumer demand for a particular product was actually not the most important factor in the sale, but the second.  Sure a retailer has to carry the category leader, but he doesn’t need to promote it.

Distributors are in front of buyers all day long.  How are they using technology to manage their customers, their relationships, their business. Distributors need more than just an order entry app. It’s time for real CRM in beverage alcohol distribution.  It’s time for GreatVines.  Those distributors that adopt this approach will gain a competitive advantage and increase their market share.

Please complete the form below and one of our experts will contact you. Or you're welcome to call us directly at (503) 820-0091.