Freedom and Responsibility
Scandiweb Magento Support is an area free of project managers. We are given freedom to decide over processes. This way results are achieved faster and in better way and Support is always full of new ideas. Assuming freedom in HOW we do things, we also assume responsibility for result.Workflow
Workflow is a sequence of steps that a task takes from being opened by a customer to being DONE. It allows us to handle hundreds of projects that are unique and have their own story, as if we had only one.Urgent requests
We are always there to provide urgent help to our customers. There are preventive measures and 24/7 monitoring to spot things before they affect our client Live sites. If emergency occurs, we prioritise it till the moment we restore business critical functions.Communication
Support has maximum exposure to a customer in our company. Communicating, we figure out WHY customer wants a feature from a business side and then suggest the best solution for it. We estimate, confirm, develop, QA and eventually deploy the feature. All these stages are wrapped up in communication that provides customers with answers on their project status.Estimates
Each new request in Support starts with understanding of WHY and WHAT is required. After it is clear, we provide estimate for the steps that are necessary to get it done. Estimates give alignment on a task scope expressed in hours and right expectations in terms of implementation cost.Proactive ticket creation
Ownership approach is foundation for Support team’s mindset! See a bug, see improvement? See a particular monitoring tool that would benefit this project or simply see that product images are not optimised and take too long to load? SPEAK UP!Time logging
Time-logs are mirror of actions performed by Support. Time-logs being used by clients to assess our work and by support teams to make monthly invoicing. Support commits to deliver timely and accurate time-logs.Project handover to Support
All sites that are developed and launched by Scandiweb teams outside of support will be introduced to Support 1 week before GoLive to ensure quality hand over.EXPANDED MANIFESTO
Freedom and Responsibility
FREEDOM AND RESPONSIBILITY — WHY? When you are final responsible for delivery — you can implement YOUR rules. It is developers and teams, who define workflow in which they will work, once they take responsibility to deliver WHAT customer has requested. There is no push on how things should run in Support in regards to workflow, tools and technologies. If you commit to be responsible to make customers happy — it is fully up to you HOW you will do it! And any tools will be provided by Scandiweb. FREEDOM AND RESPONSIBILITY — WHAT? Freedom- You are authors of solutions that you develop for customer
- There is no PM to tell you what customer wants and clarify stuff for you
- You do not need to ask approval from PM — figure out, code, test, deploy — all on your own
- Nobody tells you HOW to do stuff. You can decide and agree with teams on workflow and tools.
- Customer should be happy with delivered solution!
- You have to inquiry customer on your own and do not stop till you have 100% clarity
- There is “internal approval”, you are self-approving the stuff you do because you are responsible for result.
- Again, customer should be happy with offered solution and its quality!
Workflow
WORKFLOW — WHY? Support operates within different projects and task types. And to work consistently over tasks that belong to such multiple projects, all teams use the same workflow. Once we follow agreed workflow we start to act as one solid department and able to achieve greater results. Of course, workflows have tendency to change, once Support finds improvement spots. But until we test and implement any changes, our existing workflow applies to all teams. WORKFLOW — WHAT?- New — Recently created tickets that need to be taken for estimation
- On-Hold — Tickets that were requested to be put on hold
- Client Action — Tickets which require client input
- Specification and Estimate — When you work on ticket estimate
- To-Do — Tickets that are ready for development. Estimated and confirmed.
- In-progress — Ticket(s) you are currently working. Ideally, only one should be there. If you need more information to continue — move it to “Specification and Estimate” or “Client Action”. Remember, only one ticket at a time is in “In-progress”
- Staging — Tickets delivered to Staging site and you asked client to confirm them
- QA-Live — Tickets which were delivered to Live site, you have checked that everything works and informed customer abut deploy. And in final asked client to confirm changes.
- DONE — Tasks delivered to Live site and all changes were accepted by client.
Urgent requests
URGENT REQUESTS — WHY? New tasks income and stack within New, Estimates and To-Do statuses. Tasks are processed in a sequence of “First in, First out”. However, when there is a business critical issue or customer wants to escalate for another reason — we accommodate that. URGENT REQUESTS — WHAT? Scandiweb Support offers 3 ticket priority states:- Usual — Normal ticket processing priority, according to queue
- Urgent Support in business time — Same day development.
- Urgent Support in non-business time — Same day development in non-business time.
Communication with client
COMMUNICATION — WHY? Most customers praise us because they feeling working with us like we are in the same room. Sometimes they even tell that they have better connection with us than with their in-house development team. How do we achieve this with all of clients? Criteria of success is: When customer is not asking anything because you already have provided him with answers. Communication in Support is as vital as development skills. Without personal involvement we can not establish proficient cooperation that would allow us to understand business goals, delivery impacts and timings. COMMUNICATION — WHAT? It is all about common sense and predicting situation before it has happened. Main goal in communication is — “Answer before you were asked”. It is easy to predict that client will request for an update, if a task was 4 days in In-Progress, or you have promised to reply him 2 days ago. To avoid being asked in such cases, just be ahead and provide timely updates according to common sense. It is understandable — sometimes it is hard to bring bad news, that something does not go as expected. Be clients value our precision and bluntness. As with each bad news we bring several solutions how to move forward. And if you want to make client really happy, allow him to see that you care. Update ticket with latest info or status update even if it was not asked from you. It takes just few minutes, but helps to keep client on track of what is going and plan their internal processes. Daily update is a must! There can be various cases when to update client:- You take new ticket from To-Do
- You have spotted 3rd party malfunction and created separate ticket to resolve it
- You have spotted that latest update improved website speed. Or oppositely, you see that site speed can be increased by refactoring thing X.
- You see that you still have time in ticket, but task most probably will take more because you encountered issue X/Y/Z, tell about it in advance.
Examples of Communication
Example 1: Ticket started by developer Hello {client} I have started to work on this task. I will update you as soon as I will have conclusive results. With respect, MartinsExample 2: Updating time estimate due to unforeseen difficulties
Hello {client} Wanted to write update on the task. While working on this task, I have realised, that to fully implement this request, there will be needed additional logic. For now problem occurs with checking if that category / product page / cms page is available in target store. To fully check if that page is available in target store, there needs to be logic that will load additional data from target pages, check if it is available, and then decide if user should be redirected. Things done so far:- Create method that gets active page type, prepares data for redirect
- URL for redirect is generated, user redirected
- Load specific data about page (page id, category id, product id) 1–2h
- Create logic that checks if user can be redirected to target page 1–2h
- Investigate and add additional checks, so infinite redirects wouldn’t occur 2–3h
- Test redirect behaviour with available page and unavailable page in target store 1–2h
- What should be behaviour if page in target store is not available? Should user still be redirected?
Example 3: Ticket delivered to Staging
Hi {client} Changes are done and deployed on Staging {staging link}. I made the Zendesk email field configurable so that you don`t get notifications when test orders are made.- Here is how test order statuses look like: {screenshot}
- Here is how email to be sent on large orders looks like: {screenshot}
- And here is where you can change recipient address (be sure to refresh configuration cache thought): {screenshot}
Estimates
ESTIMATES — WHY? Why estimates are necessary? For the customer it is the only way to tell a GO or don’t go on a task based on perceived value versus cost. If a customer has nice-to-have idea that might cost 24–40 hours, he will simply cancel the task. For developer, it is a way to PRE-do a task without actually doing it. Estimate is based on a task plan, where you act like a chess player thinking some 10 moves ahead… finding that block, possibly creating it, if it was hard coded, creating new field in DB, …, planning deploy and testing on LIVE. Estimate should cover all aspects of request and give clear answer on expected actions and costs. Estimates are done by DEVELOPERS. You are free to estimate it on your own, but you are responsible to deliver it in the time-frame indicated or notify customer on reasons for delay in advance and approve extra hours. Developers do estimates- how good it is!- Support avoids delays and bottleneck from “middle man”
- We are able to provide insights and suggestions from technical side of the project
- Teams are able to offer estimates matching real life situation
- Developers improve their communication skills
- We receive information from first hands and nothing being lost in transition
- When necessary we do Estimate Sessions, where we discuss complex cases and estimate them with whole team
- Help client to understand task from technical side.
- Help client to understand how time consuming will be his assignment, if it seems easy on the surface.
- Prepare task for Support to be able to process request. Basically, collect business requirements into action plan that can be executed straight ahead after client confirmation.
- Secure task from misleads and uncertainty. Ideal task should have well written estimate and action plan. If everything was covered, thought through and described clearly, then there will be no missed objectives after ticket delivery.
- 1–4 hours: For task that is considered to be below 4h
- 4–8 hours: For task that is considered to be in range of 4–8h
- 8–16 hours: For task that is considered to be in range of 8–16h
- Update templates with the new button 1–2h
- Add PHP logic to detect extra parameter and start required actions 1–2h
- Add JS logic to hide Step 3 and pre-select Paypal option 1–2h
- Communication, testing, deployment 1–2h
- Update templates with the new button 1–2h
- Add new controller action for paypal 2–4h
- Add XML layout config for newly created controller action 2–4h
- New template for Paypal checkout, hide Step 3, pre-select Paypal 2–4h
- Communication, testing, deployment 1–2h Total: 8–16h
Proactive ticket creation
TICKET CREATION — WHY? Usually customer creates tasks for Support, but there are many cases, when we create tickets ourselves. Why we create tickets ourselves?- Task is too complex — by splitting task in several tickets Superhero will make it easier to achieve. As deliverable results will be better observable and can be tackled one by one
- Task is too large — by splitting it in several tickets we will allow several developers to work on request. Therefore it will be delivered faster
- Communication thread too long — creating new ticket will help to close previous ones, move remaining scope into new ticket and proceed with remaining functionality more efficiency. It will be described as one piece rather than pieces of it across dozens of old comments and clarifications
- Work scope change — it is often that during work new requests arise. Not to lose them and to process them efficiently we create separate tickets
Time logging
TIME LOGGING — WHY? “A time log that is a mirror of reality you should have my young padawan.” Master Yoda Time logging was introduced by Scandiweb in 2013 and since that our Company was able to grow in size over 500%. Before, we just sat in the same studio and had clarity of who is doing what and what takes what time simply having our eyes open 😉 Now, time logs help us to track exact time spent for the benefit of our client business and track usage of time on internal meetings, infrastructure updates, pair-programming, education. TIME LOGGING — WHY NOT? When reading a book you will not be able to understand its contents if some of its pages will be plucked out. Same with time-logs. These should be continuous and complete. No gaps! Think about your time log as a book that you are writing every day. In a year you can see what you were living though every day 😉 Did you make progress in speed or complexity of the tasks you are doing now? And if we overwork, or spend extra time helping others during lunch, surely we need to log all that time spent day. Otherwise Support will not know about its heroes and will not be able to reward them, or provide help to ease constant overworks. TIME LOGGING — HOW? Action list:- Did something e.g. made an estimate or completed some phase of work?
- Open ticket, where this work belongs
- Open “Time Log” menu
- Input spent time
- Provide short, clear and professional description
- Press “Submit”
- Now hug yourself! You help us to mirror our reality in time-logs!
- Create new export profile, set exporting for simple products only
- Create attributes manually (on local environment)
- Edit Xtento_ProductExport template to include added attributes
- Test feed exporting
- Test migration script for adding attributes
- Update client on performed actions and left To-Do Time log: 4h 13m
- Investigating issue
- Making sure that reviews were actually deleted by admin (replicate same admin action on local)
- Obtain database dump from April
- Export review related tables and import them in ‘empty’ DB
- Verify that all works well, repeat process on staging
- Retrieving from client most recent DB dump
- Repeat export/import/export process
- Back up production DB, import reviews
- Testing, ensuring that everything works properly
- Updating client Time logged: 3h 42m
Project handover to Support
PROJECT HANDOVER — WHY? Purpose of the Support is to be ready to provide urgent assistance with minimal time delay. Normally such flow is being achieved with properly configured Staging environment and vagrant boxes. But if fixed team (which works on project covered by Scandiweb Support) would roll out changes without notifying Support in advance, Support developers would not be able to help client with urgent requests. Such inconsistency can happen because Support accesses, environment and project guidelines become obsolete after GoLive. And to rebuild them it can take up to 16 hours. PROJECT HANDOVER — WHAT?- Support team introduction into project: Fixed project team-lead joins Support Daily Standup. During which he introduces team into the project
- Syncing Support access credentials: Fixed project PM updates Support “Accesses” and “Guidelines” project pages
- Updating Staging environment: Once team is aware of changes, credentials and date of Go Live, it schedules update of Staging environment

Share on: