In cities like San Francisco and New York, developers are living large. The latest internet boom has produced a new crop of billion-dollar internet giants and countless startups.

But outside of the hottest markets, the notion that developers are often grumpy and difficult to work with is still common.

Needless to say, most developers are normal people (read: not chemically imbalanced) and the bedside manner of any given developer is probably just as variable as any other professional.

But that doesn’t mean that there aren’t grumpy developers, and as anyone who has been involved in the development of a complex website knows, software development can be a trying endeavor fraught with sources of potential frustration, particularly on the part of those who are ultimately responsible for doing the building — developers.

If you’re fortunate enough to be working with a skilled developer, but detect a hint of grumpiness from time to time, here are six ways you can turn your frown upside down.

1. Establish scope

Many development projects turn sour because of scope issues. Scope creep, not surprisingly, is a common developer complaint and one of the most frustrating things that developers deal with.

The challenge for many clients, particularly those who aren’t technical, is that specifying the functionality that needs to be developed in specific enough terms to be meaningful to a developer can be difficult and/or time-consuming. But not making the effort is more often than not more likely to produce a grumpy developer than a stellar deliverable.

2. Develop a project plan

The old adage “failing to plan is planning to fail” is particularly true when it comes to development projects. What’s more: not having a project plan that identifies milestones and delivery dates can eventually lead to unhealthy tensions between you and your developer.

3. Educate yourself

Working with a developer can be an intimating thing for a non-developer, particularly if development is unfamiliar territory, but don’t make the mistake of believing that acting hapless will make your developer happier or friendlier. For many developers, clients that don’t know what they don’t know and don’t seem to care about what they know they don’t know are a huge pet peeve.

While you don’t have to learn the intricacies of object-oriented programming or how to design a relational database, having enough knowledge to engage in a meaningful conversation about the work you’re asking your developer to perform can go a long way towards boosting a developer’s morale.

4. Set expectations

There are more than a few ways to ruin a developer’s day. From expanding the scope a project due to insufficient scoping to last-minute deadline changes, many developer frustrations revolve around expectations, or more appropriately, lack of expectations.

The good news: by making a concerted effort to set expectations before implementation kicks off, your developer will have far fewer reasons to be an unhappy camper.

5. Avoid micromanagement

The stereotype of developers as a largely anti-social group that prefers to be left alone in a basement may be just that — a stereotype — but that doesn’t mean that it’s a good idea to suffocate your developers either.

In many cases, micromanagement is the result of discomfort and uncertainty on the part of managers and clients. Is my developer building what’s needed? How are things coming along? When you don’t know the answers to these types of questions, you’re far more likely to micromanage, which is why establishing scope, developing a project plan, educating yourself and setting expectations are so important.

6. Say thanks

Showing appreciation for a job well done is always a good practice, and while a truly grumpy developer may not say “you’re welcome” in return, that doesn’t mean that the gesture wasn’t recognized.