Thursday, 10 October 2013

The Art of Problem Solving and Learning from Your Effort - Vanseo Design

The Art of Problem Solving and Learning from Your Effort - Vanseo Design


The Art of Problem Solving and Learning from Your Effort

Posted: 07 Oct 2013 05:30 AM PDT

How do you solve problems? Do you wing it? Do you follow a similar process to solve most problems you encounter? Do you simply try a few things that have worked in the past?

Recently I came across an article on the Treehouse blog by Pasan Premaratne, titled Help, I’m Stuck with some tips to specifically solve programming problems. It made me think about problem solving in general and I wanted to share a little of my problem solving process.

Sign with a question mark, the letter i, and an arrow

Problem Solving

Whether you realize it or not, you probably go through a process for solving problems. Odds are the problems you face are similar and without thinking you just dive in and attempt to solve them the same way you did the time before and the time before that.

Before you can solve a problem, you need to know what the real problem is

Naturally it depends on the type of problem. If you’re asked to add 2 + 2, I trust you know the answer instantly and don’t have to do much beyond giving it. On the other hand if you’re asked to solve 365 × (42 + 17) / 7 × 4 you might be reaching for some version of a calculator.

When I face a design problem, one in the development of a site, or any technical problem in front of me, I’ve noticed I go through a similar process to solve it. In fact I tend to follow this process for most any problem that confronts me in life. Depending on the problem I may not need to go through all the steps and other than the first step, may go through these in a different order.

  • Identify and refine the problem
  • Search for a solution
  • Seek and read documentation
  • Trial and error
  • Ask someone else
  • Weigh the alternatives

Identify and Refine the Problem

If I had an hour to solve a problem I’d spend 55 minutes thinking about the problem and 5 minutes thinking about solutions.
— Albert Einstein

Before you can solve a problem, you need to know what the real problem is. When we notice a problem, what we typically see is a symptom of the problem and not necessarily its root cause.

The first thing I do to solve a problem is work to identify what the problem really is. Let’s say you’re just starting out on the design of a site. The client paid you a deposit and you’re ready to work. What problem are you trying to solve?

The desire for a website is a symptom. The problem is really that the client wants to build an online presence or wants to sell widget x to customer y. The first thing you have to do is identify what the client really wants. You need to dig as deep as you can to discover the root problem the site you’re building is trying to solve.

There are a variety of ways to identify the root of the problem. I find asking questions is a good start. So is eliminating possibilities. For example if I can’t load this site in a browser I:

  • Try to load another of my sites from the same server
  • Try to load a site likely to be working, usually Google
  • Try loading the down site in a different browser
  • Try to connect to devices on my internal network

Depending on what happens ,each of the above eliminates a possible cause of the problem and points me to a different solution. The idea is to eliminate what isn’t the problem to find what it is.

Search for a Solution

Once I have a handle on what the problem might be, I start searching for an answer. Google, Bing, Yahoo, or your favorite search engine is your friend. Odds are someone has had the same or similar problem and a few searches will lead you to possible solutions to try.

You can search for error messages in code or write a query describing the error you’re getting. You can search for sites similar to the one you’re designing to see how other designers solved similar problems.

Much of the time your first search or two won’t lead you to a solution and you’ll need to refine your search. One of the best skills you can develop as a problem solver is learning to search better. Barring a specific error message, my early queries are often toward the vaguer side.

I’ll type my general query and click on some results if only to pick up some of the vocabulary I should be using in future queries. Even if the search results don’t appear promising, it’s a good idea to click through on some and at least scan their content to help you refine your searching. As you refine your queries you’re also refining the problem definition.

If after a time your favorite search engine isn’t leading you to a solution, you can try forums, Q&A sites, and similar. You can go to any sites you know and search them directly.

Read Documentation and Source Code

If search isn’t leading anywhere, I’ll seek out documentation that might be available. Ideally good documentation exists, but that’s not always the case. If the problem is a development issue, you can go directly to the source code and try to understand what’s going on.

For design problems I may consult books here on my shelf. I may open some up for ideas about color or type. I might consult one to better understand certain principles that can lead to a solution.

Documentation is really just another place to continue searching. It’s not always as easy to search though, which is why I usually start with search engines and sites I’m familiar with.

Trial and Error

At some point you have to do and assuming you haven’t found an exact solution to apply, trial and error is your next step. Searching may not have led to the answer you were seeking, but if done well it should at least have helped you understand the problem better and given you some ideas where a solution lies.

Sometimes you have to try a few things and just see what happens. Make changes that isolate whatever it is you’re changing. If you make too many changes at once you might get lucky and fix what was broken, but you probably won’t know why and you’re likely to make the original mistake in the future.

If you keep isolating different things to try, you’ll continue to refine the problem and solution. It’s really what I was doing above when trying to figure out why might site wouldn’t load. I tried different things to isolate a potential problem. Now it’s about trying to isolate possible solutions.

Ask Someone Else

As a last resort you can ask someone else. Sometimes no matter how hard we try, a solution eludes us. We may not have the requisite skills needed or we may become so locked into specific paths to a solution that we can’t see anything else.

When I suggest this as a last resort, I do mean as a last resort. Trying to solve the problem yourself can be frustrating and time consuming, but you’ll be better in the long run for having tried.

Weigh the Alternatives

Some problems like 2 + 2 seek absolute answers. There’s a single answer to the problem and your goal is to find that answer. Other problems, especially design problems and to some degree development problems, will have multiple solutions that work.

When a problem offers more than one solution you have to decide, which solution to use, which is its own problem with its own solution. In this case everything above should have left you with a few options from which to choose. It’s now up to you to make a choice.

You aren’t looking for the right solution, but the best solution, and there’s little way to know if you’ve found the best solution until sometime after you’ve implemented it. Weigh the pros and cons of each possibility and use your experience to make a choice.

Spend less time worrying about whether it’s the right choice and more time observing the effects of your choice so you can do better the next time.

Learning through Problem Solving

Some want to skip directly to the ask someone else part of the process above. I can understand why. It’s easier. You ask and let another person work on a solution while you go off and do something else. If that’s your approach, expect to have the problem again and not know how to solve it.

Asking someone else is accepting the gift of a fish. Trying to solve the problem yourself is learning how to fish. It’s an exercise in critical thinking.

The struggle to identify and refine the problem, to search for an answer, and to try different possibilities, contains many teaching and learning opportunities and in the long run will save you considerable time. If you’re facing a deadline, just get the problem solved, but when you can, put in the effort to get something more.

If you found code online to solve your problem, spend time understanding what it does and why it works. Figure out how to modify it so it does something a little different. Can you remove parts of the code that have nothing to do with your specific problem?

When defining problems seek the root cause always. Then refine more to see if something deeper is at work. Remember the problem you see is usually a symptom of some deeper problem.

Don’t stop at solving the symptoms. You might be able to hack together some magic numbers in your css to make a layout work on your screen, but the layout will probably break elsewhere or you’ll develop another site with a similar issue. Dig deeper to discover if your general approach to layouts is the real cause and if there’s a better approach you can follow.

Look for patterns in every problem you come across. What similarities exist between the current problem and others you’ve come across in the past? Teach yourself to observe patterns across problems. It’s part of identifying and refining the root cause and the closer to the root problem you can solve, the more future problems you’ll be able to solve quickly and easily.

To help in pattern recognition you can record the problems you encounter, the root causes you think are at play, the solutions you’ve tried, those that worked, and any observations you’ve made along the way. Keep observing even after you’ve solved a problem. Expand and refine the patterns you see.

Summary

If your first step in solving a problem is to ask someone else or if you copy and paste the first potential solution you find, you miss out on many of the benefits of problem solving. You may fix your problem, but you won’t have learned anything. You’ll be reliant on others to solve the same problem and you’ll miss out on the opportunity to solves a wider range of problems and become a better problem solver in general.

Put in the time and effort to solve it on your own first. Start by identifying and refining the problem and seeking the root cause. Observe patterns in the different problems you encounter.

Once you have a reasonable idea of the problem search for a solution. Try search engines, forums, Q&A sites, documentation, and source code. Search anything you think might contain an answer. After searching give trial and error a shot.

When deadlines are present it’s ok to find something workable as quickly as possible, but for all other times take the longer road. There’s a lot to learn along the way to a solution.

The post The Art of Problem Solving and Learning from Your Effort appeared first on Vanseo Design.

How To Price Freelance Services — What Should You Charge?

Posted: 03 Oct 2013 05:30 AM PDT

How much does a website cost? It’s a question designers and developers are asked all the time. It’s an impossible question to answer without details and your response is likely some variation of “it depends.” At some point you learn the details it depends on and have to come up with a price. How do you determine what that price will be?


Note: This post includes an audio version. If you don’t see the audio above, Click here to listen.

Last week I offered thoughts about how to determine your costs for a project. This week I have a few more quick thoughts about cost, but mostly I want to look at some of the things you should think about when setting a price for a project.

A Bit More About Cost

In last week’s post I talked about costs per project, however those aren’t the only costs we have. You probably have to pay for one or more of what’s below:

  • services (hosting, merchant fees, etc.)
  • computers and other equipment
  • software
  • utilities
  • office space
  • health insurance
  • retirement savings
  • taxes

I’m sure you can think of a few more things to add to the list above. We have to pay for these things and we have to account for them when we price projects. When you’re determining the minimum you’ll accept for a project, remember the costs not specifically associated with the project.

Price is a Negotiation

I think most people wanting to understand how much to charge for a website want an answer along the lines of you should charge $X when the requirements of the site include Y. It’s the answer I always hoped for. Unfortunately that answer isn’t given and for good reason.

The truth about pricing services is every project is a negotiation between service provider and client. For any project there’s a maximum the client is willing to pay and there’s a minimum you’re willing to accept. Assuming the client’s max is greater than your min, a price you’re both happy with can be found.

If you consider only the one project, your client would like the price to be as close to your minimum as possible and you’d like it to be as close to the client’s maximum as possible. There are a lot of variables that set those mins and maxes and help determine where in the middle to meet. You have to think about more than one project, though.

While there are reasons at times not to charge as much as you can, remember that the money you make as a service provider is tied to how much time you can spend working. If you’re a freelancer or a small shop, you aren’t making it up on volume. You generally need to charge more per project.

What Should You Charge?

I wish I could offer you the simple charge $X for a site with Y requirements, but again it really doesn’t work that way. Instead I want to raise some questions you should think about when setting prices.

What is the client willing to pay?

If you’re negotiating a price between 2 endpoints, it would be helpful to know those endpoints. One comes from your costs. The other from the client’s budget. I find it helpful to ask for a client budget as soon as possible.

I don’t need to know the exact budget immediately, though I’ll gladly accept that information if it’s given. Typically I explain that it’s common for people to want more from a website than they’re expecting to pay and if they can give me a rough idea of their budget ($500?, $5,000?, $50,000?) I can do a better job estimating a price and what can be done at that price.

If the thought of asking for a budget makes you uncomfortable read the articles below or the one I linked to a couple paragraphs above.

What value do you bring to the project?

I can’t stress this enough. Learn to see the value you bring to clients and charge based on that value. You figure out your costs to help determine an absolute minimum to charge. Value is more about understanding what the client can earn from your work and how much your client is willing to pay.

Get over feeling like you don’t deserve more because you don’t have enough experience or because you think the work will be easy. You have more experience than your client and the work is almost always more than you initially think.

You determine costs not to lose money. You price to maximize revenue and profit over time. To best do that you need to understand your value.

What value do you deliver in general?

Think about your business in general and think about what value you can bring to all clients that your competition can’t. Maybe you have specific experience in an industry or have knowledge from another that helps improve your designs.

The more you increase your skills as a designer/developer and in general, the more value you bring to every project. For example I have a pretty good understanding of search engines, and can write and edit client copy. Both of these allow me to charge more, since they add value above and beyond what’s expected of me as a designer/developer.

Is there long term potential with the client?

In the short term you want to maximize the one project. In the long term it’s possible you’d do better to charge a little less to build a lasting relationship that maximizes the money you bring in over the long term.

That decision should come from you and not the client. If someone holds out the carrot of more work later for a low price today, I can almost guarantee there’s no work coming later. However, if you see long term potential working with a client you might adjust your price to ensure you get the job.

However, understand that long term client relationships will generally not be about price, but about quality, trust, and communication.

How will the price you set affect your brand?

People tend to recommend you based on why they chose to work with you. If you set a price too low, expect future leads to be looking for a low price. If you set a higher price, perhaps there will be less leads, but those that come will be much more willing to pay that higher price.

At any price point some will think it too high and others too low. Some will think it perfectly reasonable. Think about who you want as clients. Your prices will inevitably target some people over others.

Don’t be afraid to say no if a client isn’t willing to pay your price. It’s hard to do, especially when first starting out, but it’s more important to consider the value of your brand than worry about getting one project.

How much work do you have scheduled?

Let’s face it we have bills to pay and sometimes we just need some work. It’s a gamble working for less than you should, because another job might be just around the corner. Still…a bird in the hand…

If your business is like mine, the work isn’t steady. It’s busy for a time and then not so busy for a time. Sometimes during those not so busy moments you might charge less for a project just to have some cash flowing into your business.

Can the cost of the project be justified in other ways?

Is there another benefit from working on a project? Maybe when first getting started you need to build your portfolio or being associated with a project will carry prestige and lead to more work.

Be careful here as we usually have a tendency to be more optimistic about these other potential benefits than is realistic. Still there are times when a project can bring benefits worth a lower price.

How interesting is the project?

It’s possible you’re simply interested in the project. Sometimes money isn’t the most important consideration and you just want to work on a project. It’s not all that different from working on your own projects.

I’ve taken on projects because they gave me opportunity to learn something or because I wanted to be part of it. There’s even a business application in choosing projects you like. The projects you work on today tend to influence the projects you work on tomorrow.

Closing Thoughts

A month ago on an episode of the Unfinished Business podcast, Sarah Parmenter offered the perfect response to the question “how much does a website cost” by asking a question in return. How long is a piece of string?

Just as the length of string is different from piece to piece, the price of a website is different from site to site. There are a lot of things to consider when pricing. Your prices should be in constant evaluation. Just because you charged $X for a project today, it doesn’t mean you should charge the same $X for it tomorrow.

If people are saying yes to your prices too quickly, it’s probably time to raise your prices. Whenever someone agrees to my price without hesitation, I assume I charged too little and should start charging more with the next project.

On the other hand if too many people are saying no to your prices, maybe you need to offer a lower price. You might be attracting the wrong clients so don’t assume a lower price is the answer, but it might be.

Pricing is an art and it’s something you’ll do better with practice. The most important thing to remember is to price based on the value of your services and not the cost of your services. Learn to see the value you’re giving clients and charge accordingly.

There are a couple more topics I’d like to cover in regards to the business side of design. Next week, we’ll take a look at how to cut your costs to increase your profit and also how to collect money to improve cash flow.

The post How To Price Freelance Services — What Should You Charge? appeared first on Vanseo Design.

This posting includes an audio/video/photo media file: Download Now