Dear New Client . . .

Dear New Client . . .

Dear New Client

We are so glad you have trusted Shockoe to help accomplish your business goals.  We understand that for this particular project, you need to design and build a new workplace productivity mobile app for your employees.  Here are some highlights of what you can expect throughout the course of this project.

Project Set up and Kickoff:  The kickoff meeting will provide an opportunity for all team members to meet, review the project scope, timeline and processes, and discuss any anticipated challenges.  Topics covered will include milestones and key dates, responsibilities, recurring meetings, status reporting, how we will work together, and contact information.

Discovery:  Once we’re out of the gate, we will interview your stakeholders and subject matter experts to deepen our understanding of your business model and goals for this project.  A Shockoe user experience strategist will lead this effort and may suggest activities such as market research, competitor analysis, identification of user personas, or a heuristic evaluation of your current application.  Along the way, we will document your requirements and create user flows and user stories.  Typically, a user interface designer is involved in this phase as well so the transition to design is seamless.

Design:  Once we have outlined what your new application needs to do, our design team gets to work.  These folks are the masterminds of creating a top-notch experience for your target audience.  They start by creating mockups (wireframes) that show the key elements on each screen and how a user progresses from screen to screen.  These mockups are easily transformable into clickable prototypes if desired for review by your team or to conduct usability testing with a sample audience.  Beyond that, we bring your screens to life with a style guide and high-fidelity designs.  Together these paint the picture of how the application will look and feel and will include actual colors, fonts, and images.

An agile-like process:  Typically, at some point between the transition from Discovery to Design, we will start to employ an agile approach to the project.  The goal is to share our work early and often so that you have visibility along the way.  Together we can determine the right amount of upfront user experience planning that’s needed before we move into iterative sprints.  Sprints are typically two week intervals where we identify an area of the app on which to focus, we wireframe it, apply the design, and build it.  The sprint culminates with a demo at the end where we share our work and gather your feedback.  Everyone looks forward to demo time!

Development:  The scope of the project determines how many sprints are needed.  No matter how many two-week intervals are involved, the process is the same and all members of the team know what to expect.  Each sprint includes sprint planning, development of the relevant user stories, a day or two of testing and issue resolution, and finally, the sprint demo at the end.

Testing and launch:  After the last development sprint ends, we spend a couple of weeks regression testing, which is thorough testing of the entire app to ensure that all functionality is working as expected and that there are no display issues across supported devices.  Any issues identified are resolved and then the app is turned over to you to perform user acceptance testing.  Fortunately, you will have had access to the app at each sprint demo when the QA version of the app is uploaded to Shockoe’s server for download.  This testing at the end of the project is an opportunity to execute all test cases and confirm the final product is ready.  Beyond that it’s just a matter of planning for submission to the app stores.  Shockoe can either help you through that process or submit the app on your behalf.

We are with you throughout the life of the project and let you know what to expect at each step of the way.  We find that by the end of a project, our collective team has bonded in a way unlike no other.  We are working together to produce something that will make people’s lives better in some way.  And that’s a great feeling.  Thank you for letting us be a part of it.

Let’s get started . . .

The Shockoe Team

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.