Monthly Archiv: May, 2020

What to Do When a Web Design Client Leaves

Have you ever noticed that most freelance web design advice is related to gaining new clients? Well, today is a bit different. Instead of rehashing all the old strategies for increasing business, let’s talk about what happens when a client heads out the door.

You might wonder why we’d ever want to talk about such a thing. It can be depressing, after all. But it’s actually an important topic.

If you’re around long enough, you’ll undoubtedly see clients come and go. In some instances, you’ll know it’s coming. Others may be a complete surprise. Regardless, you’ll want to know how to deal with the situation.

So, let’s review some strategies for dealing with your soon-to-be-ex, along with the potential impact to your business.

Don’t Take It Too Personally

Depending on the specific client and the revenue they produce, losing them will either make you stress out or jump for joy. But no matter how you feel inside, it’s important to handle it like a professional. This is part of the natural ebb and flow of being in business.

In most cases, a client leaving is not the result of some personal vendetta (more on that later). But even if it were, staying cordial will make the transition go more smoothly. That’s really a best-case scenario for everyone involved.

When bridges are burned, things can get unnecessarily messy. Tasks like transferring domains or files become twice as difficult, as neither party feels motivated to cooperate. This only serves to prolong an awkward situation.

Therefore, this is a time to swallow your pride and help usher your client to their next stop.

Two men in a restaurant booth.

Find out Why They’re Leaving

Once in a while, you might find the reasons behind a client’s departure to be obvious. Something like a major disagreement or breach of contract come to mind. But, more often than not, things aren’t so cut and dry.

If the reason hasn’t been stated, it’s okay to ask. Just do so in a polite way (and not like those annoying customer service reps who won’t let you off the phone).

People will leave for a variety of reasons – and it might not have much to do with the level of service you provided. They may be looking to cut costs, switch to one of those awful build-it-yourself services or are being swallowed up by a bigger company. The decision may well have been beyond their control.

Still, you do want to be prepared to receive a hard truth. No one wants to hear that a client was unsatisfied with our work. But it’s still vital information to have. Knowing what went wrong can be both humbling and a great learning experience.

People sitting at a desk.

Tying up Loose Ends

Unless your client is completely going out of business, there will probably be some tasks to take care of before they officially leave. Things like domain accounts, site files and software licensing info are among the most common. It’s kind of like helping the person who was once your significant other pack their bags – only you (thankfully) don’t have to be in the same house with them.

It can be a very awkward situation. Just having to communicate with a client who is moving on is challenging. But then there are instances when a new designer may become involved, making things even more surreal.

Again, it’s best to keep things as professional as you can. Try and provide whatever is needed (within reason). The goal is to get them out the door so that you can get your focus back on existing clients.

Of course, this is assuming the client doesn’t owe you any money. If they tend not to pay their bills on time, it might be a good idea to demand payment up front. Otherwise, you’ll probably never see that cash without going through a collections process.

A USB flash drive.

Assessing the Impact

The impact of losing a client on your business should not get lost in the shuffle. After all, it’s money out of your pocket and a hole in your schedule.

Still, not every loss should be counted equally. It stands to reason that the bigger the client, the more it will affect your bottom line. Thus, it’s more revenue you’ll have to recoup from other sources.

If the client was one of the pillars propping up your design business, losing them presents a huge challenge. Maybe even an existential one. That’s why it’s important to assess the damage.

Take a look at where you stand now and what the future looks like without said client in tow. From there, you can determine what it will take to get back to where you were – or, at least to the point of keeping your business sustainable.

Thankfully, smaller clients are much easier to supplant than big ones. But either way, it’s good to know where you are and have a plan for the future.

A person holding a mobile phone.

Moving on and Building a Better Business

As hard as it may be to accept, not everyone will be a “forever” client. It’s one of the more difficult parts of running a business to grasp. But it actually can become easier to deal with over time. You’ll start to see it as just another obstacle in the road to success.

But it also brings up another point: Don’t put all of your eggs in one basket. Try to build as much diversity into your revenue stream as possible. Configure your business so that the loss of one client doesn’t put you on the street.

Easier said than done, of course. When first starting out as a freelancer, that one big project may be the thing that puts you over the top. And that’s great.

It’s just that you won’t want things to stay that way over the long term. Instead, look for ways to add as many of those aforementioned “pillar” clients as you can. That, in turn, will make dealing with the loss of a client much easier on all fronts.

The post What to Do When a Web Design Client Leaves appeared first on Speckyboy Design Magazine.

symfony-dual-login

Package:
symfony-dual-login
Summary:
API to get user details using OAuth authentication
Groups:
PHP 5, User Management
Author:
Paulo Henrique
Description:
This package provides an API to get user details using OAuth authentication...

Read more at https://www.phpclasses.org/package/11638-PHP-API-to-get-user-details-using-OAuth-authentication.html#2020-05-05-23:47:41

PHP Web Push Notifications Server

Package:
PHP Web Push Notifications Server
Summary:
Queue and push notifications to Web users
Groups:
PHP 7, Web services
Author:
Stefan Kientzler
Description:
This package can queue and push notifications to Web users...

Read more at https://www.phpclasses.org/package/11632-PHP-Queue-and-push-notifications-to-Web-users.html#2020-05-05-07:06:25

Community News: Latest PECL Releases (05.05.2020)

Latest PECL Releases:

  • protobuf 3.12.0RC1
    GA release.

  • datadog_trace 0.44.1
    ### Fixed
    • Revert "Merge pull request #815 from DataDog/levi/ddtrace_moment" #859 This fixes issue #855.
  • datadog_trace 0.44.0
    ### Fixed
    • Fix ddtrace_config_* functions to use sapi_getenv #848
    • Fix curl integrations #851

    Changed

    • Whitelist the cgi-fcgi SAPI #835
    • Add ddtrace_hash_find_ptr_lc which stack-allocates small strings #839

Xdebug Update: April 2020

Xdebug Update: April 2020

Another monthly update where I explain what happened with Xdebug development in this past month. These will be published on the first Tuesday after the 5th of each month. Patreon supporters will get it earlier, on the first of each month. You can become a patron to support my work on Xdebug. If you are leading a team or company, then it is also possible to support Xdebug through a subscription.

In March, I worked on Xdebug for about 60 hours, on the following things:

Xdebug 2.9.5

The 2.9.5 release addresses a few bugs. One of them was a follow on from the issue where Xdebug would crash when another extension would run code in PHP's Request Init stage, but only on a second or later request in the same PHP process. As this is not something that's easy to catch with PHP's testing framework that Xdebug uses, this issue slipped through the cracks.

The release fixes another bug, where throwing an exception from within a destructor would crash Xdebug. The fix for this was merely making sure that PHP's internal state is still available:

- if (!(ZEND_CALL_INFO(EG(current_execute_data)) & ZEND_CALL_HAS_SYMBOL_TABLE)) {
+ if (EG(current_execute_data) && !(ZEND_CALL_INFO(EG(current_execute_data)) & ZEND_CALL_HAS_SYMBOL_TABLE)) {

Beyond these two crashes, the release also addressed an issue where Xdebug did not always correct catch where executable code could exist for code coverage analyses. Over the last decade, PHP has been getting more and more optimised, with more internal engine instructions. Unfortunately that sometimes means that these are not hooked into by Xdebug, to see whether there could be a line of code that would make use of these opcodes. As this is often very dependent on how developers lay out their code, these issues are often found by them. Luckily, these issues are trivially fixed, as long as I have access to just the file containing that code. I then analyse it with vld to see which opcode (PHP engine instruction) I have missed.

Xdebug 3 and Xdebug Cloud

Most of my time was spend on getting Xdebug Cloud to a state where I can invite select developers to alpha test it. This includes allowing for Xdebug to connect to Xdebug Cloud. There is currently a branch available, but it still lacks the addition of SSL encryption, which is a requirement for allowing safe transport of debug information.

The communications between an IDE and Xdebug through Xdebug Cloud is working, with a few things related to detecting disconnections more reliably still outstanding.

As Xdebug Cloud needs integration in debugging clients (such as PhpStorm, and other IDEs), I have been extending the dbgpProxy tool to act as intermediate link between existing IDEs and Xdebug Cloud without IDEs having to change anything. This work is still ongoing, and is not documented yet, but I hope to finish that in the next week. Once that and SSL support in the Xdebug to Xdebug Cloud communication has been finalized, I will reach out to subscribers of the Xdebug Cloud newsletter to see if anybody is interested in trying it out.

Podcast

The PHP Internals News continues its second season. Episodes in the last month included a discussion on PHP 8's JIT engine and increasing complexity,

Truncated by Planet PHP, read more at the original (another 720 bytes)

SIREN PHP Templating Library

Package:
SIREN PHP Templating Library
Summary:
Template engine featuring recursion and nesting
Groups:
Parsers, PHP 7, Templates
Author:
wim niemans
Description:
This package provides a template engine featuring nesting and inclusion...

Read more at https://www.phpclasses.org/package/11637-PHP-Template-engine-featuring-recursion-and-nesting.html#2020-05-04-07:38:49

SIREN

Package:
SIREN
Summary:
Template engine featuring recursion and nesting
Groups:
Parsers, PHP 7, Templates
Author:
wim niemans
Description:
This package provides a template engine featuring nesting and inclusion...

Read more at https://www.phpclasses.org/package/11637-PHP-Template-engine-featuring-recursion-and-nesting.html#2020-05-04-07:38:49
Powered by Gewgley