Team: Paul Williams (sponsor), Keith Alphonso, Mark Thibodeaux, Bryan Joseph, Michael Boudreaux.
Concept: Every day Geocent employees learn things about our customers and competitors during their normal process of doing business. This information can be useful to us in that it provides valuable intel on opportunities and threats for Geocent. We wanted to create an easy to use mechanism for employees to share this information within the company so that we can better serve our customers and grow our business. Currently this is done with ad-hoc mechanisms and side conversations.
Our idea was to create a system that included both a mobile application, web interface and email interface to easily document information that may be useful. Paul Williams decided to sponsor a Mad Dash to develop this capability.
Design: The design is simple, a 1 page form that allows employees to submit information, and some management forms that will allow the information to be properly disseminated to the right people in the organization. Other web-based forms are used to manage the information that is received. Finally, an email interface would be created whereby anyone can simply send an email (to for example “email@example.com”) and that could be used to get information into the system.
The Dash: During the dash we were able to accomplish the following:
- Develop an HTML5 user interface
- Develop a Spring framework for persisting the data
- Develop an email interface
- Develop a service interface to persisting intel data
The following is our working whiteboard used during the dash:
We kept a rolling list of “What we sucked at” (top right), which was great as it functioned as an ongoing retrospective during the dash. On the whiteboard we mocked up the UI (top left), developed the architecture (bottom left), developed the data model (bottom right), and did some use case analysis (bottom center).
The Web/Mobile UI: We decided on an HTML5 UI so that it could be used both by mobile devices and the web. The following image shows our UI developed:
New Opportunty Submission Page – This page is an easy to use form to submit information into the system.
Submitted Opportunities Listing Page – This page lists all the opportunties submitted, and allows the user to click on an opportuntiy to work with it.
Opportunity Management Page – This page allows someone to enter some more information, and in the future associate it with an opportunity within CRM.
Dashboard page – This page shows opportunities submitted by person, allowing us to view who is participating in the program, and potentially provide rewards for submitting.
The email Interface: An email interface was developed that will periodically poll a configurable email server and download any emails sent to that address. In the dash we created a gmail account for this, but this can be changed to any email server supporting IMAP or SMTP. The email interface downloads the email, uses the subject as the “Title’ of the intel, and the body as the “Description”. The email address is used to determine the submitter of the data.
The Persistence Engine: We leveraged Spring/Hibernate for our persistence layer, which provided rapid development as well as the ability to switch out the back-end database as needed. For the dash we used Postgres as the back-end.
The Service Interface: We developed a SOAP service interface that will allow apps to integrate with the system.
The CRM Interface: We researched the utilization of the CRM interface to tie this system into that system. While integration was outside of the scope of the dash, we wanted to research the possibilities. We learned a good bit about the CRM interface.
Retrospective: Unfortunately, the dash was not a 100% success. The lack of success primarily had to do with a lack of planning on our part. We want to document this so future Mad Dashers don’t run into this same problem. First, we didn’t decide on a development platform until the day of the dash. Many of the tools used (Maven, NetBeans, etc) were unfamiliar to some of the developers, causing some of the more experienced developers to spend time teaching and coaching rather than developing. We also initially were going to develop the system in a heterogeneous environment, with some developers using Eclipse and others NetBeans. The Eclipse users had numerous problems and mostly abandoned Eclipse in favor of NetBeans. This held us up quite a bit as we needed to install the development environment on several systems. In addition, we didn’t have a database established, which limited our ability to implement the system properly. Additionally, not everyone had GIT setup, which was the source code management tool of choice. We also did not secure web service access to the CRM server before the dash, causing us to lose some time as well. The end result of these delays caused us to run out of time at the end, resulting in all of the components being developed, but not fully integrated.
Even with these “Things we sucked at” it was altogether a very successful dash.