Lessons in Agility from Subway

July 19th, 2010
Subway Small

A few days ago I was in a daze as I waited in the line at Subway.  I was thinking about a dilemma my friend Phil had.  Phil is a project manager for a team that creates internet applications and web pages for a large company.

Phil wanted his team to start working on larger projects and provide more value than delivering enhancements to the existing websites.  The problem was his customers never stopped asking for new modifications or slight changes to the pages and mini-apps his team had already delivered.  In Phil’s estimate there were approximately 50 enhancement requests in his team’s work queue.

The Endless Request Stream

Every time the team received a new request they discussed it with the customer, then estimated when they would deliver the request.  In essence they were constantly taking on more work, and the more they discussed the new requests, the less time they spent delivering the ones they had already started.  In the words of Lean Software Development, Phil’s team needed to “stop starting and start finishing” the requests that were already in progress.

I told Phil this in essence and emailed some screenshots to him of the Kanban boards that many teams use to limit the work in progress.  Phil was still having a hard time grasping the concept after I discussed the screenshots with him on the phone.

Limiting Work in Progress

…..…then I snapped out of my daze as the Subway line shortened and I found myself face to face with one of the sandwich makers.  “What can I get for you today?” Sally the sandwich maker asked me with a smile.  I placed my order for the Philly Cheesesteak then stood back to watch the same process I have seen at Subway for many years.  Sally said “would you like it toasted?”  I said yes.

Sally took my bread, placed it in the toaster, then looked down the sandwich line to see what was going on.  Two co-workers were diligently adding veggies and sauces to two sandwiches already in progress.  In a few seconds they would be done.  Sally took off her gloves and moved to the cash register, arriving in time to wrap the sandwiches and charge the two customers.  As this happened one of Sally’s coworkers moved to the start of the work queue and asked the gentleman beside me what he would like.  As this happened the other co-worker pulled my bread from the toaster and asked me what veggies and sauces I would like.

I always take the Subway sandwich process for granted, thinking to myself “they are just making sandwiches, it’s no big deal”.  But sitting here and thinking about Phil’s problem, this simple sandwich process was exactly the model he needed to visualize.  The Subway crew was versatile and agile, but they never over committed and never took on more orders than they could complete at one time.  In essence they had set limits on their work in progress.

No Squeaky Wheels – Get In Line

I am sure you have witnessed this yourself.  The Subway location I frequent is very small and sometimes the line goes out the door, frequently with folks standing in the rain.  I never see this change the process at the sandwich station.  The crew still only takes on as many orders as they can focus on and deliver effectively.

I spoke to Phil after my lunch ritual and the Subway analogy connected with him.  Today his team limits the work in progress, and they have “stopped starting and starting finishing” more enhancement requests than ever before.  They now have capacity to go beyond maintenance and pursue new projects that can provide high value to his company.

Shallow Thinking in Deep Water?

June 14th, 2010

Oil-Rig-New-200x300

What a delicate subject to broach. I will be an objective observer and not assign any blame on the gulf spill until the details are available, but I would like to use this tragedy to discuss how it relates to project risk planning.  I am guessing that something was overlooked during the formal risk planning process related to the Deepwater Horizon oil rig drilling into the Gulf of Mexico.

I have been using agile project management methods for 10 years and have attended numerous agile training courses and conferences.  In all of my training and experiences I have never heard anyone discuss formal risk planning as it relates to an agile process.

If you take agile training you will hear folks like me say “agile is continuous risk management”.  This is a true statement.  We take risk out of the requirements by working face to face with the customer.  We take risk out of the build by continuously integrating the code.  We take out the risk of delivering buggy code, or code that goes beyond the need, by using Test Driven Development.  So if we are performing all of these practices do we really need to do any upfront work related to formal risk analysis and planning?  The answer is yes, sometimes it still makes a lot of sense to do formal risk planning.

If you are not familiar with formal risk planning, let me provide a high level synopsis.

First we sit down as a team – executives, managers, business folks, and technology folks.  We discuss everything that could go wrong with the project and create a list of potential risks.  Once the list is complete we talk about the impact if the risk materializes.  In figure 1 you can see an example of a risk assessment.  In this example we note that Risk ID # B1, “incomplete migration”, only scores a 1 on the impact scale, meaning if the risk materializes the impact will be minimal.

Risk Assessment 4

Figure 1

Continuing with our example, Risk ID # B5, “Insufficient resources”, is scored as a 5 on the impact scale, meaning if it happens we are in big trouble.  We probably will not be able to deliver any project value if this risk materializes.
Once the team identifies the impact of a risk, they move to the probability of the risk occurring.  If we stick with our previous two examples, Risk ID # B1 has a .25 (25%) chance of occurring.  Risk ID # B5 has a .75 (75%) chance of occurring.  Since B1 is low risk and low impact, we are going to accept it and not do any contingency planning.

Since B5 is high impact and high probability, we need to lay out our plan for managing this risk throughout the project.

As I mentioned at the start, this exercise makes sense on some agile projects.  I cannot provide specific criteria for you to use, but I can tell you what encourages me to do this exercise at the start of a project:

1) When I am working on a project with high dependency on groups outside of the project team.

2) When a sponsor or business owner has a history of delaying or cancelling projects due to disregard of project risks.

3) When the technical team sees numerous business risks that the business customer cannot see or envision.

4) When I am working on a CYA project.  Agile is all about collaboration and shared ownership, but on occasion you may find yourself managing a project where you need to CYA due to the political environment.

5) Projects with a long period of time for iteration zero work (iteration zero is work needed to establish a foundation before coding begins, such as ordering and installing servers, working through contracts with vendors, and obtaining help from teams outside of your control). In my experience this would be a project with an iteration zero longer than 3 weeks.

6) When the customer wants to.  If your customer enjoys this exercise and it makes them more comfortable on understanding the project risks, do it.

7) When an internal project management governance group requires this process.

8) Whenever you are using technology that has never been used by the team before. 

Use your knowledge and experience as a project manager to help the team determine when this exercise provides value.

Lastly, when you do use formal risk planning do not consider it a one-time event.  Find a regular day and time to update the risks and manage them throughout the project.

Please contact me if you would like a copy of my risk assessment template:  greg@gssolutionsgroup.com

The Good King and the Bad King – Rewarding the Correct Behavior on Your Project Teams

April 4th, 2010

Royal Throne

James was the prince of Pragyle when his father became ill and passed the throne to James.  James had watched his father for years and knew what he would do when he became king.  James set out to make life better for the citizens of Pragyle.

James looked at the local roads.  He identified two bridges that were close to breaking and he instructed his carpenters to reinforce the bridges.  The citizens had no idea James’ maintenance work prevented a future disaster.

James looked at the budget for the coming year.  He could see that taxes would need to be raised to provide all of the services the kingdom had budgeted.  Instead of raising taxes, however, James met with the financial advisors of the kingdom.   They identified many projects that really weren’t that important, such as creating a painting of James on the side of the palace, or performing a research study on the quality of moat water. By cutting out the waste James avoided raising taxes, and the people of the kingdom never realized they had been saved from additional expense.

James monitored the kingdom next door, Wötterfal, on a daily basis.  He managed the risk of an impending war by watching every movement the Wötterfal troops made, and he warned them any time they approached the border of Pragyle.

Throughout James’ tenure, the people of Pragyle were solicited for their rating of James.  James always scored “good” on a scale of poor, fair, good, and great.

Unfortunately James died in his sleep after 10 years as the king of Pragyle.  James did not have any offspring and was replaced via election.  The people of Pragyle elected Eli the Plumber to replace James.

Eli took over and enjoyed all of the luxuries of being king.  He ordered lavish dinners, had his face painted on the side of the palace, and spent most of his time playing backgammon.  Eli thought to himself “Oh my, what an easy life James had.”

As time passed, Eli learned that running the kingdom was not all fun and games.  Soon one of the old bridges of the kingdom collapsed and 40 citizens plunged to their death.  Eli made a proclamation that the bridge would be rebuilt with better materials, and this would never happen again in the kingdom.  The citizens cheered Eli’s visionary thinking.

Next, Eli had a budget issue.  The new mural on the side of the palace was expensive and so were the lush parties.  Eli would have to reduce costs elsewhere in the kingdom, or increase taxes on the citizens.  Not wanting to be unpopular, Eli reduced the amount of monitoring that was occurring with the neighboring Kingdom of Wötterfal.  Instead of having surveillance soldiers watch Wötterfal every day, he reduced surveillance to once a month.  The citizens would still be happy because their taxes did not increase.

Unfortunately soldiers from Wötterfal crossed the border of Pragyle between the surveillance periods.  A farmer of Pragyle spotted the advancing troops and ran to the castle to warn Eli. 

Eli quickly called the soldiers together and screamed for the soldiers to hastily gather their weapons and fight for the survival of Pragyle.  The soldiers were at a disadvantage since the Wötterfal soldiers were armed and ready to pounce.  After two weeks of fighting, and 900 soldier deaths, the Wötterfal army was repelled and Pragyle was saved.  The citizens chanted Eli’s name.  His stimulating speech had inspired the Pragyle army to save the day.  When the citizens were surveyed later that year, they gave Eli the ranking of “great” and they all mused how James had never suggested building a bridge with better materials, or how he had never helped rescue them from the Wötterfal army.

How does this relate to software projects?  How often do you reward the developer who saves the day at the end of a project, when they end up fixing a bug of their own making? How often do you reward the developer who kept their work on track throughout the project, and did not need a fire drill at the end of the release?

We all like heroes like Captain “Sully” Sullenberger, who lands a flight on the Hudson after running into a flock of birds. But how much recognition would a ground controller have received if they had directed Sully’s plane to a different location and avoided the disaster all together?

Be successful on your agile projects.  Recognize the people who prevent disasters, not just those who save you from them.

What’s in your Project Manager backpack?

January 29th, 2010

backpacksmall

In the recent film, Up in the Air, George Clooney’s character delivers a seminar that asks the question, “What’s in your backpack?”  George asks the attendees to envision they are going on a mountain hike, and to pack all of their belongings into a backpack. George has the attendees envision packing their cars, all of the furniture and knick knacks in their home, and then the home itself.  George concludes by asking attendees how full their backpacks are, and if they can still envision hiking the mountain with all of these items on their back.  George brings home his point at the end, pointing out that many of our possessions and legacy items hold us back from being effective and happy on our “daily hike”.

I personally do not want to give up my home, my car, knick knacks, or even my pets in real life, but I do agree with the “light backpack” perspective when it comes to project management.  Many times we carry too much baggage from our previous experiences, or from the overhead of our Project Management Lifecycle.  Let me provide an example.

Last year I worked as a project manager on the delivery of a new Content Management System.  The goal was to go live with the critical functionality in 4 months.  My goal was to work quickly with the team and the customer to identify the critical features and the key risks we needed to manage.

When I started packing my project manager backpack for this project, I wanted to put in an outline of the processes we needed to use, a high level schedule, a method for tracking daily progress, an environment for frequent communication and status sharing, and a method for demonstrating and adapting as the project proceeded.

Tier Assess Cropped small

My project is assessed to determine what practices I must use and which documents I must complete.

I was excited about this project when it started, and I felt confident in the tools I was going to put into my backpack.  Unfortunately my company had rules for what I had to put in.  I had to complete a Project Tier Assessment.  The assessment asked questions such as project cost, business unit impact, and external customer impact.  Based on my entries, the spreadsheet calculated a score, then summed the score by area to determine my tier.

Once my tier was assigned I was sent a spreadsheet with the required documents and processes the project had to follow.  Here are approximately ½ of the required documents and processes:

• Business Case
• Business Partner Identification Checklist
• Project Tier Assessment
• Executive Summary
• Technical addendum to Exec Summary
• Initiate Gateway Checklist
• Project Document Location Form
• Project Financial Control Tool
- Project Cost Estimation Worksheet
- Technical Assessment (Part 1)
- Technical Scoring Model Template
• Risk Assessment
• Business Needs Tool
• Business Needs Checklist
• Gap Analysis
• Resource Planning Tool
• Value Delivery System (VDS) Report Out
• Requirements Package
• Organizational Training Plan
• Plan Gateway Checklist
• Project Communication Plan
• Project Plan
• Project Schedule
• Project Status Report (Most recent)
• Issue Log
• Issue Escalation Reports (If applicable)
• Location Summary
• Resource Responsibility Matrix
• Resource Planning Tool
• Team Roster
• Design Integration Summary
• Implementation Plan
• Implementation Gateway Checklist
• Integrated Test Case
• Integrated Test Plan
• Integrated Test Results Report
• Project Change Requests (if appl.)
• Benefits Realization Gateway Checklist
• Post-Implementation Checklist
• Product Benefits Validation Form

As mentioned, this was about ½ of the required documents and processes.  How would you feel about carrying this backpack into your next project?  Not to mention that each of the required forms was very detailed, and required the signature of various executives.

In defense of my employer, the company had failed an audit many years earlier, which had lead to the new, beastly Project Management Lifecycle.  Regardless, most projects are about making or saving money.  The overhead required for this project would marginalize or nullify the anticipated benefits.

What should you do if factors beyond your control are requiring you to overload your backpack?  First ask this question – does every document and process have a customer?  If I do this, who will use it and what value will it provide?

When I say customer I am going beyond the end user or paying customer.  Customers can include internal oversight committees, external regulators, or even vendors.  The main point is to make sure you are not doing a step just because you were told to do it the day you started, or because “that’s the way we have always done it.”  Dig a little deeper when you cannot see the value of a step.

Second, push back when you find “no value” steps.  On the project above, I met with the Project Management Lifecycle team several times and asked to skip certain steps and documents when I could not find a customer.  Most of my requests were approved and I was allowed to skip many documents that did not add value to delivering a Content Management System.

In summary, it really isn’t about packing light or heavy, it is about packing at the correct level for a given project and it’s unique needs.

Improve Agile Buy-In by Creating a Core Team

October 18th, 2009

CH6DiagramOpeningsmallIn my experience the best agile implementations have been ones where all of the groups within the company were involved.  Executive management may be driving the change, or project team members may be initiating the change, but at the end of the day both groups need to support and be involved with the transition to a more agile process.  In this posting I will discuss creating a core team to involve the project team in an agile implementation. 

In 2000 I worked for a small startup company. The Agile Manifesto was in the works, and my team had the good fortune of being trained by one of the creators of the Manifesto, Jim Highsmith. Jim came in and walked us through the principles of adaptive and agile software development.  Jim discussed practices along with the principles, but the main take away for my team was the principles. We took what Jim taught us and looked for ways to apply it to our specific situation.  How could we create a more agile process to deal with our requirements uncertainty and our compressed schedules?  In the end we created a custom agile process that worked for our company.

A few years later I was working for the Seattle Times New Media group, and we had similar issues with our development lifecycle, and once again we had Jim Highsmith come in and train us on Agile.  Afterwards we once again created a custom process for our given situation. We actually gave our process team a formal name this time, labeling them as the “core team”.

I have found core teams to be powerful and influential for three reasons:

  1. They aren’t a part of line management. A few members may come from the management ranks, but the majority of the team are doers: people who design, build, create, and test code. This adds to the team’s credibility as you roll out the methodology to the company. Agile isn’t a management initiative being forced on everyone; it’s coming from real people who will be a part of the project teams.
  2. Because the team is composed of doers, they know the ins and outs of developing in your environment. This is different than when consultants come in, suggest standard practices, and disregard the realities of a specific company. The core team has experience with your company, and as they develop a methodology they know what to keep and what to discard from existing practices.
  3. Having team members from all areas initializes awareness across the company. Imagine a tester going back to the testing team and excitedly telling them what is going on with the new methodology, or a developer doing the same with the development team.

Many companies do not used a core team when rolling out agile. The hot thing to do today is to roll out Scrum with a consulting firm leading the way. I think it is good for a team to learn an agile framework like Scrum, but it is just as important to embrace the agile principles and grow the agile culture and methods from within. I think it is good for a team to get trained and supported by an agile coach, but my preference is coach who uses a Socratic approach. This type of coach asks the team questions that leads them to their own answers.  Now let’s discuss how to select core team members.

Who should be on the core team?

When you start identifying your core team, you may find yourself pursuing the best and brightest people from each area: people with a positive attitude and a pro-agile mentality; people who are open minded to change. These would be excellent attributes to list for a job opening, but do they reflect your current employee mix, the people you want to embrace the new methodology? Probably not.

If your company is like most, you probably have some blend of the following:

  • Brilliant and collaborative people
  • People who are brilliant but difficult to work with
  • People who challenge ever initiative
  • People who loathe change and avoid it at all costs

You want the makeup of the core team to be similar to the makeup of the company as a whole. This will help you obtain buy-in from all employee types when you begin the agile rollout.

After you determine the types of people for the team, you need to decide on the team size. You want a group that’s large enough to capture a diverse set of perspectives but small enough to collaborate easily. I suggest a number somewhere between 5 and 10 people. Note that if the team is larger, you can still make progress when a team member is pulled away for a production issue or is out due to vacation or illness.

Orientation for the core team

After your team has been named, you should schedule a kickoff meeting to set expectations and goals. You need to start the meeting by telling the team why the company is moving to agile.

As an example, let’s look at a presentation at a hypothetical company named Acme Media. Steve Winters is the agile sponsor at Acme, and he will lead the introduction to the core team. Steve starts the meeting with the following bullets:

  • Acme Media’s web division is no longer a supplemental site to the television station. The websites have their own audiences and advertisers now.
  • With the increase in popularity of the websites, the backlog of new features and application requests has increased by 70%.
  • Many of the feature requests are time sensitive. If the requests cannot be completed soon, Acme’s competitive advantage will be lost.
  • Acme’s existing development processes, where they exist, aren’t working well with the tight deadlines or with the evolving requirements.
  • Acme needs to identify a better way of dealing with urgent projects.

As you can see, Steve’s message is tailored more to the project team than to an executive group. He speaks indirectly to revenue by saying “lost advantage,” and he mainly targets process improvement. The best thing Steve says is “the websites are no longer supplemental sites to the TV station” and “the websites have increased in popularity.” Steve is telling the team that their work is important. 

You should follow Steve’s example during your migration, especially when it comes to emphasizing the importance of the work the team does and how valuable the custom agile methodology they create can be.

Tough questions at the introduction

Of course, everything won’t be roses at your kickoff. You can expect difficult questions and perhaps attitude from some of the core-team members. Here are a few of the questions and comments you’re likely to hear during your kickoff:

  • We can’t create the methodology. We don’t know anything about agile.
  • We need consultants to do this for us.
  • We’ve tried to change before and failed.
  • What is our role?
  • What is the role of the executive sponsor?

The response to the first comment is easy. The team will be trained and soon will have a basic understanding of agile principles. If you’re lucky, a few team members will already be versed in agile.

On the second question, they’re partially correct. You’ll bring in a consultant or an agile guru to train the team on the fundamentals and potentially the Scrum framework. But the consultant won’t create the methodology for you: the team will create the methodology with mentoring along the way.

The third question is a warning sign to you if you don’t know the details of a past failure. Was the failure due to a methodology being forced on the team? Was it due to waning executive support for the change? Do your homework if you learn of a past failure, and make sure your plan covers the lessons learned from previous attempts to change processes.

Assuming the issues related to a previous failure no longer exist, you can explain why the migration should be a success this time:

  • The design will be co-created by experts who know the business well: them.
  • The team won’t be forced to remove a legacy process if it’s proven and adds value.
  • The approach won’t be shotgunned into the organization. The methodology will be built iteratively and will be deployed iteratively to mitigate risk. In addition, the new process will not be used on a mission-critical project until it has been piloted and vetted.

Answering the question about the team’s role is simple. The team will learn about agile and use this information to create the agile methodology. In a quick summary form, they will do the following:

  • Train
  • Document the existing development process
  • Determine what to keep and what to discard from the current process
  • Compare the existing process to a pure agile one
  • Design a new methodology based on agile principles and the findings from the organizational assessment
  • Get feedback on the design, and tweak it
  • Pilot the design on a medium-priority project
  • Adapt to pilot findings
  • Continue refining and testing until the methodology is solid enough to be used on all projects and the team is comfortable with the processes being used (Note that there are multiple scaling methods depending on organization size).

The sponsor will conclude the kickoff by telling the team he will clear roadblocks for the team and to be a liaison to the executive team at large.

Do you really need a core team?

The core-team concept may seem like a lot of work. To some extent, it is; but the return on the investment is worth it.

I have seen other models work, especially in smaller companies. In smaller companies, the managers are often doers, too. In some companies I have worked with, the company owner also writes code.

If you’re in a smaller company, you won’t need this ceremony. You’ll probably have most of your company involved in the migration due to your small size. In effect the whole company will be the core team.

Those of you in medium to large companies should appreciate the core-team approach. Change is difficult to drive through larger organizations, and having a core team makes the road a little easier to travel.

Let the games begin! Welcome to the blog for Agile in an Imperfect World.

September 3rd, 2009

Hi, welcome to my Blog. My name is Greg Smith and today I am officially opening my blog.

As the title implies, the focus of my blog will be to shed light on how to create a solid software development process for your company, within the unique constraints and challenges you face.  I will be discussing agile principles and practices in this blog, but the main focus will be on how to be agile within your constraints and roadblocks.

You may be wondering, “what does being agile within your constraints” mean?  It means it is sometime difficult to support agile principles based on limitations within your business.  For example, one agile principle is that we prefer working software over comprehensive documentation.  This is a hard principle for many people to embrace because regulatory or internal lifecycles demand numerous pieces of documentation for a project. 

This blog will answer questions such as “should I accept the constraint?”, “should I challenge the constraint?”, “have others negotiated and overcome this constraint?”

Greg Smith presents at the Agile 2009 conference.

Greg Smith presents at the Agile 2009 conference.

I will also spend a lot of time on the areas that I feel are being neglected today.  For example, I believe there are as many people rolling out COTS (Commercial Off The Shelf) software as there are people creating code from scratch.  I think COTS needs to be discussed from an agile perspective and I intend to do so in the coming weeks.

I also believe agile discussions have mainly focused on software development, and we do not give teams enough information on how to integrate with all of the pieces and people that tie to the project.  Many departments and people are either providing inputs or receiving outputs from the project.  We need to discuss the software lifecycle in context to the big picture.

Another hot topic for me is what happens to classic project manager work in an agile project.  I have a lot of experience in this area and I hope to shed new insight and ideas into this area.

I welcome your feedback as the blog grows.  I have strong opinions based on my experiences, but I am still growing and learning, and I welcome your thoughts and feedback.

Thanks!  Greg

Congratulations to the winner of our agile roadblock contest!

August 29th, 2009

asus4

Congratulations to Scott Duncan of Ellerslie, Georgia! Scott provided the winning entry in our agile roadblock contest. Scott’s entry stressed the importance of being iterative within an iteration, as opposed to delivering everything at once at the end. A great principle to stress to teams.

Scott’s entry earned him a brand Asus Eee Netbook. Stay tuned for future contests.

Win a top-rated Asus Netbook by telling us how you overcame a roadblock to become more agile

August 5th, 2009

roadtoagileblack

Everyone encounters challenges when moving to agile.  What was yours?  Tell us how you overcame a roadblock and you could win an Asus Eee PC Netbook.

We are looking for stories of how you became more agile despite a constraint within your company.  To give you a feel for what we are looking for, some of the common constraints we encounter are:

  • Multiple product owners
  • Limited product owner availability
  • Team maturity and the ability to self-manage
  • Project team also supports production
  • Regulatory requirements: SOX, GMPs, ISO
  • Internal requirements for PMLC/SDLC
  • Distributed team members
  • Dependency on other departments
  • Fixed bid work

How to enter

Entering is easy.  Use the “Leave a reply” box at the bottom of this page to post your entry.  Your entry should include:

1. The scenario.  What agile principles were you pursuing when you encountered a roadblock?  You can see the agile principles on the Agile Alliance website.
2. The solution.  What did you do to overcome your constraint?
3. The result.  What was the result of your solution?

 Rules

1.    Only one posting per person.
2.    Submit your entry by 6 PM Eastern Time, August 28th, 2009.
3.    Winner to be announced at 9 PM Eastern Time on August 28th, 2009.

Complete list of rules

Grand Prize

The person with the best submission will win an Asus Eec PC.  This netbook is top rated and provides everything needed to be effective on the road, or when you are away from your main laptop or computer.  You can see the specifications here.

asus4

Other Notes

The email address you enter will not be posted with your submission.  We will only use it to contact you if you win.  You can maintain anonymity for yourself and for your company if you want to maintain privacy.

The winner will be determined by reviewing votes on the submissions and by subjective review by the GS Solutions Group review team.

Not interested in entering?  You can still help us by voting for your favorite entry by clicking on the “thumbs up” icon. The amount of votes received will factor into the selection process.

Why are we having a contest?

The purpose of this contest is to promote the services of GS Solutions Group and our blog, Agile in an Imperfect World.  We are here to help you with training and establishing processes that allow you to deliver great projects.  You can read more about our services here.

If you have questions about your submission, or the contest in general, you can email us at greg@gssolutionsgroup.com.