Digital transformation through an attorney’s eyes

Digital transformation through an attorney’s eyes

Like many of my colleagues at Shockoe, I began writing computer code in a high school classroom.  However, in my case, the school was particularly advanced for its time in offering such a course, and our “computer” was a keyboard, dot-matrix printer, and a modem connection to the University of Virginia, where the actual computer occupied an entire floor of a large building.  And while most of those colleagues went on a path that brought them relatively quickly to Shockoe, I spent two decades working as an attorney in New York, Seoul, and Virginia.

Now in my third year of software development I have felt particularly happy to be at Shockoe because I believe it addresses needs that I often saw during my time working as an attorney, needs that I am certain are shared by many industries.

In my experience, the following was typical of the manner in which law firms implement technology.  First, the decisions are made by senior partners who, being busy with the representation of clients, have little time to keep up-to-date with what is available or most desirable in technology.  This leads either to an “if it ain’t broke, don’t fix it” mentality, or an attempt to take care of the problem in one fell swoop with a package solution that may or may not fit comfortably with the way they have set up their practice.  In the latter case, the acquired technology may go unused, or used only to the extent required by the firm.  For example, if a time-tracking application is difficult to use, an attorney may keep track of his time on post-it notes as she always did before, then have her secretary type it all into the application at the end of the week.

In either case, what then happens is that employees begin finding their own solutions. Each attorney and his or her assistants devise their own system, piecing together hardware and applications as they see fit.  Depending on their level of technological sophistication, they may, or may not, arrive at a solution that works well for them.  However, this approach drastically reduces the potential for collaboration, and creates a host of potential problems, as the less technologically-adept might adopt solutions that introduce security vulnerabilities or other problems.

Although so often noted as to sound trite, an average employee today with a typical mobile device is comparable to an employee with superpowers two or three decades ago. To make the most of those powers, however, requires sophisticated solutions.  This includes, of course, a focus on the possible pitfalls of any new technology. A device that allows employees to watch training videos at convenient times may also allow them to spend the working day watching Netflix. Large collections of data become valuable, and thus must be protected, not only from hackers in foreign locales, but from disgruntled or former employees.  Yet while minimizing risk demands much attention, it is just as important to make certain that new technology is used to its full potential. Making one’s workforce five times more efficient is simply not good enough in a competitive business environment if the competition makes their workforce eight times more efficient.  

This is what excites me about working at Shockoe, being able to use my skills to allow our clients to make the greatest possible use of the technology available to them. Apps created now increase employee productivity, streamline task performance and ensure employees have real-time data access they need for day to day exchange opposed to the opposite stagnant mentality. If this sounds familiar to you, check out our work for Financial Services Mobile Technology and contact us for any innovative ideas to help your team tackle your digital transformation with a great mobile strategy.

So you have an app idea – now what?

So you have an app idea – now what?

So you have an awesome idea for an app. There’s just a burning hole in your front screen every time you unlock your phone. Your idea is keeping you awake and with many sleepless nights, you just know this is it! Your app is revolutionary and will change the world, and really, you are just sooo ready to make a gazillion million dollars. So now what?

As a marketing/sales coordinator at Shockoe, I receive a lot of phone calls stating just that. I’m not kidding. Some obscure, some genius and some just plain mind blowing. As a one of the fastest growing companies in Virginia our deep passion lies in making beautiful and useful apps with great technology – nothing gets us more excited than a chance to help you bring your idea to life. So I’m here today writing a little guide, if you will, to help you navigate in this craze driven mobile world and give you a couple of pointers to consider before diving head deep into the commitment of making your app. So here goes nothing.

First – I’d like to bring it to your attention that making an app is a full on business. That’s right, one that requires planning, skills for development, design, support of the product, marketing, money and the list goes on. So you might say, of course, that’s pretty obvious. I’m willing and ready to put this much into my app idea because I know it’s going to do well. Well here’s what to consider next.

Is your app going to promote an existing business or is it a completely separate entity you would like to make money from? If it’s an existing business app idea serving as a compliment to your service, do your research. Search through app store or google play – see which ones failed and which ones worked before and play around with existing apps.

And now, the juicy part – the price. Do you price it “free” or do you charge users for downloads? How much of a budget did you set aside towards the actual creation of your app? Is it going to be an Iphone app, Android or both? Do you want us to make your app completely from scratch or do you want to put in the time to write a basic code and have us help you make it pretty and functional? Now, what about getting your app out there? Are you going to promote it and market it out yourself? What is your time line in completing the app and how fast do you want it to hit the market? And once it’s out, how will your app updates and bug fixes along with any other tweaks will be handled?

As you can see, the list goes on and on. At Shockoe, we are proud to say that we can help you with the entire process. From creating a strategy and defining how this app will help your business and what you can do to take advantage of your mobile strategy. To then of course, carrying out this idea and knocking out the user experience and design portion of it to make sure your baby is effective, productive and adds value. Then doing the development and integration portion of it (and trust me I’ve seen our developers typing away their codes – it really does looks like an intimidating different language to a non-techie like myself). To then, the customer success management portion which is critical to your mobile app’s success! We want to make sure your mobile solution never loses value to your users and we ensure you receive the best application support, maintenance & monitoring services you deserve.

Anyways, the team is pretty awesome and as stated before: we will get it done because mobile apps are our number one passion. So to do it right, making an app is a full business but we are certainly here to help you every step of the way!

So what are you waiting for? Go ahead and contact us now and let’s get your awesome app idea out into the world!

Node Summit 2016

Node Summit 2016

Last week I had the pleasure of attending Node Summit 2016 in San Francisco. I am eager to share some of the new cool technologies and concepts I learned about while I was there.

NodeSchool is a tool for learning node and javascript concepts. If you have node and npm installed, starting a lesson is as easy as installing a new node package; these lessons range from utilizing node tools, to the nuts and bolts of creating and publishing a node package.

The one hardware workshop at the conference proved to be perfect office hackathon fodder. is a platform for interacting with internet of things devices, and using node and their Photon microcontroller we were able to program a row of lights to act as a scoreboard for a game of tic-tac-toe. As someone who deals strictly with software, it was a welcome diversion to play around with breadboards and resistors for a few hours.

One of the most insightful and fun presentations I attended during my time at Node Summit was on security. This talk featured a lot of great examples of trying to hack into or disrupt a locally hosted web application. Of course, the main thrust wasn’t to teach people how to hack–though I can’t say I didn’t learn a thing or two–but to show how out-of-date node modules can bring security vulnerabilities to your codebase. The presentation concluded with a stern warning that actual hacking was illegal and an insight into a current company for those in need of a fix:”bugcrowd” a platform that lets companies pay bounties to hackers to break into their systems so that they can close any security gaps.

The main buzzword at the conference was micro-services. Every sponsor from NASA to Netflix gave talks on how they have transformed their entire systems over to use this architecture concept.

Micro-services are not specific to node, but node’s flexibility means that it lends itself well to the concept. The micro-service pattern refers to breaking out all of the functionality of your product into independent pieces, instead of housing them within a single unit–known as a “monolith”. This way, when you make changes to your app, you don’t have to redeploy your entire codebase. Instead you’re deploying just the parts of the app that were affected by changes. This works especially well in node because you to pull in only the modules you need for each individual micro-service, and there are tons of node modules out there designed with communication between micro-services in mind.

Looking back at the conference as a whole, I was inundated with the vastness of node itself. Every year for the past four years the numbers of new node users has doubled, and there are 300+ new modules published every day. This has inspired me to try them all out and bring cool new technologies back to Shockoe.

Metalling with Titanium: Building my first Alloy application

Metalling with Titanium: Building my first Alloy application


Event listeners. Callback functions. Asynchronous programming? These words were foreign to me when I first started working at Shockoe LLC the first week of October 2015. But somehow, I needed to use these things to create a mobile application in the next two months.

I wasn’t completely new to programming. I had recently taking Java programming courses and was learning other languages like C++ and C# by watching online tutorials. Before I started working at Shockoe, I was told to learn JavaScript as that was predominately what I would be using to create Titanium Alloy applications. Going through the tutorial on CodeAcademy taught me little about the language. It seemed to be mostly a tutorial on what programming was. But I figured that since I had the gist of programming, I wouldn’t have much of an issue as anything could be solved with a simple Google query.

Showing up to work on the first day taught me that that wasn’t the case. Edwin, the CEO at Shockoe, assigned me to work on Fighting Mongooses, a name with which I’m now beginning to understand the logic behind.

The concept behind the app sounded pretty simple but integrating various devices, a server, a database, and mobile OS’s turned out to be far more complex than I had anticipated.

The first week or two was spent just trying to figure out what was actually happening in this partially built application.  I slowly started to figure out what the different pieces of code were doing to understand the logic. I used what was already available to piece together a rudimentary working application to fulfill the initial requirements and to prove I could fit in at Shockoe.

From there, I slowly expanded the capabilities of the application and learned more about Appcelerator, Titanium, and JavaScript along the way. After a month and a half of working on Fighting Mongoose, it has taken on a bit of my own personality. It is no longer another developer’s application that I was given to complete and that is a great feeling.

There is still a lot that I need to learn to get near the level of the other developers here, but I have had some great guidance and help while working on the Fighting Mongooses project.

I still have much that I wish to accomplish with the application and feel more comfortable and confident each day with what I’m doing.

I recently found an old version of the app on a device I used for testing about a month ago and it’s amazing to see for myself the progress that I have made since.

I look forward to see the kind of progress I can make in the next month on onward here at Shockoe.



Strategic Testing – Shockoe and SOASTA TouchTest©

Strategic Testing – Shockoe and SOASTA TouchTest©

At Shockoe, application testing is a strategic component in our business offerings that provides our clients with a competitive advantage.

Traditionally, testing is a tactically intensive process.  By its hands-on nature, human resources required to perform tests consume budgets and starve strategic resources needed to define, conduct, and analyze quality testing objectives.

Today’s mobile apps require exhaustive levels of effort and resources to conduct comprehensive, confident, bullet-proof testing.  The sheer number of device types, makes, models, operating system versions, original equipment manufacturer modifications, and carrier alterations strangle resources required for testing, drive-up development costs, delay deployment, and often limits tests to key app areas and select devices.

So, how is Shockoe able to focus on strategic solutions without being bogged down by the nearly endless tactical resources required to ensure proper app testing? … By using SOASTA TouchTest© to automate the testing process.

So, what is TouchTest and what strategic advantages does it deliver?

Shockoe employs TouchTest to execute the majority of testing tasks traditionally performed by humans.  As such, our efforts can be focused on developing strategic test objectives for real-world scenarios, using real-world data, on actual devices.

Fundamentally, TouchTest records user interactions with an app.  These recordings can be played back on a single device or simultaneously on multiple devices.  Playbacks can be incorporated into continuous integration environments and automatically performed as part of an app build process.  During play back, app and device information is collected for analysis. Using TouchTest to carry-out test objectives enables Shockoe to expand test planning, conduct tests on more devices, shorten product cycles and increases reliability as human error is removed from the hands on, tactical testing processes.

Strategic test objective planning is the first step in Shockoe’s process.  Complex tests, such as full regression, are broken down into many smaller unit tests.  Identifying edge cases where the unit test is pushed to extremes by data values, user interaction, and system demands, are crucial for solid testing.

After test objectives are defined, a human Shockoe tester conducts each unit test on a TouchTest enabled app and device.  TouchTest records each gesture, event, and invoked user interface element as an “app action.”

App actions provide validations, condition matching waits, and access to property sets.  Additional elements can be inserted before and after app actions.  These elements include checkpoints, time delays, controls, waits, composition launchers, and comments.

If-then-else and switch conditional elements can also be added to control the flow of a test.  These conditional statements can evaluate properties associated with app actions, device, and data provided as part of the test environment.  Results from embedded or linked scripts can also be used by conditional statements.  The ability to verify app action behavior and change the course of testing based on conditions is a powerful, strategic advantage of TouchTest.

Determining what input data will yield the desired results is another strategic aspect in defining solid test objectives.  Should the test pass?  Should the test fail?  What data best exposes edge tests?  TouchTest allows “seed data” from databases and/or .csv files to be injected into the test playback process at the app action level.  While TouchTest allows for manually entered data during tests, seed data provides fully automated testing and ensures exact data use.

App actions and elements can produce output for recording test execution detail.  Screen shots, app action object properties such class name and text, as well as device information can be saved for post test analysis.  Strategic data capturing greatly reduces time required for analyzing results, decreases the time to identify faulty code, and can be used to further refine tests.

App actions and any inserted elements comprise a test “clip.”  Typically, a clip defines a single unit test case, for example, actions required to perform a login.

Clips are assigned to a “track” in a “composition.”  As its name implies, a composition allows many parts to become a whole. Playing back a composition comprised in many clips provides the ability to perform any test scenario – from unit to full regression testing.  A composition track is assigned to a physical device.  Multiple tracks can be added to a single composition allowing a single test composition playback to be performed simultaneously on multiple devices

During playback, TouchTest records key metrics from both the app and device.  These statistics are accessed in the TouchTest Dashboard.  The ability to maintain test results and drill down into details enables Shockoe to devote resources towards strategic analysis of defects, determining defect cause and effect, and efficiently identifying and making corrective actions.

Shockoe’s use of TouchTest dramatically reduces the hands-on tactical resources required for testing, allowing efforts to be directed towards strategic test development, deployment, and analysis.

TouchTest directly benefits our clients by shortening product cycles as tests and corrective actions are implemented through out the development cycle, ensuring device platform reliability as tests are performed simultaneously on multiple devices, improving app performance as emphasis is focused on analysis, and cost reductions as more tests can be conducted with fewer human resources and in less time.

Contact us to learn how TouchTest can benefit your existing or future app.

For additional information on SOASTA TouchTest, visit here.

i.e. Competition App

The Richmond region is home to a diverse and vibrant community. Every day, in our garages and laboratories, studios and galleries around town, the RVA Creative Class creates impactful, creative and innovative solutions across all disciplines. i.e.* is a galvanizing initiative to launch Richmond into the limelight and over time, put us on the map for innovative excellence.

On April 16th, 2013, at Richmond CenterStage, 14 finalist will compete for a chance to win a $10,000 , six months of free office space at New Richmond Ventures, $3,500 worth of IT strategy and implementation services from Imagine Simplicity, and mentoring from 804RVA.

In support of the competition Shockoe (for the second year in a row) has developed a voting system, hitting the big three this year with an native iPhone, native Android, and Web application, for the competition. The mobile app features full descriptions of each finalist, and real-time in app voting, on-site (CenterStage) the night of April 16th. Also, the mobile app will aid in determining the winner of the People Choice Award, as well as prize the $2,500 prize, courtesy of First Capital Bank! We hope to see you at CenterStage on VOTE night!

Check out i.e.* for iPhoneCheck out i.e.* for AndroidCheck out i.e.* for the Web




Page 1 of 41234