You’ve likely heard or experienced how awesome the WordPress community is, right? For a lot of us in the early days of getting into WordPress Development, it’s one of the first things you notice and it draws you into the community–in fact, we mention it pretty often around here.
As you begin your journey in development, you come to appreciate the thousands of hours countless people spend on building the platform, the plugins, answering questions in the support forums, organizing WordCamps, and in general, the amount of information you can find online to tackle problems beyond your wildest dreams. There are a lot of other great communities as well, and together we’re all trying to build a better web.
With that being said, let’s get started. Although the primary focus of this is within a team environment, I’ll also try to touch on some points for people who work in smaller teams or as a freelancer as well.
So you’re working diligently on a new plugin or theme and you’re chugging right along. Maybe you’ve had a project kickoff call and everything seems to make sense. After a couple days, you’ve got the template parts built, functions setup, Sass partials broken down and organized–overall things are looking pretty good. That’s awesome!
There are some issues you’ve identified along the way that you might need to revisit because they depend on other things that may not have been built yet or a client has put in a change order for additional functionality. Not a big deal, it’ll all work out just like you planned right?
When Things Take a Turn
Or maybe things will take a turn in a different direction. Every project eventually has a wrench tossed into it the mix; it’s inevitable. You couldn’t have accounted for it no matter how meticulously you planned things out or how many team or client calls you’ve had going over the scope of work and plan of action. It’s the way things work out as you begin building almost anything in life.
What if it is an unfamiliar problem?
OMG WHAT ARE YOU GOING TO DO?
Well for starters, I recommend continuing to breathe. That seems like a logical first step. Once you’ve revived yourself from the shock of a task you just encountered with no idea how to complete, start talking out loud to your rubber duck. Perhaps if you’re more visually oriented try doodling in a notebook and sketching out some possible solutions.
You’re Stuck. Let’s Work Through It.
Ok, so that didn’t work out as planned, because you probably don’t have the Codex memorized. Let’s start there as the next logical step after remembering to breathe. After fifteen minutes of digging through the Codex, you may start to feel like you’re in a hamster wheel. I’ve been there. I think a lot of people have been as well, so you’re not alone. It’s time to get your Google-Fu going.
Sometimes this might even be a better first step. It stands to reason that other people may have had a similar problem and searched for a solution, too, so entering in a search query that seems like what you’re after has a good chance for results.
At this step there are two possible outcomes: Stackoverflow and the WP.org forums are filled with glorious answers and thousands of people who have written the same or very similar posts that lead you to a plan of execution to accomplish the task at hand. That’s awesome! I love when that happens, especially when the solution actually works out!
However sometimes you may come up with some pretty poor results. This can happen for a number of reasons, but what you’re searching for and the actuality of what you want to accomplish aren’t matching up. Google is pretty solid, but even Google cannot take the words in your brain and translate them to something that actually exists. The more complex the issue, the less of a chance there is of finding really solid information.
Suddenly your palms are sweaty, your mind is racing, and panic begins to set in. You’re on a tight deadline what are you going to do? If you’re on a team, here’s an idea: ASK A QUESTION! I know, it’s probably not your first thought, because you should know all the answers, but that’s not the case. The real skill is knowing when it’s time to ask for some help! Sometimes no matter how hard you look through the Codex or spend time Googling, it’s hard to get to the right place if you don’t exactly what it is you’re after.
As a quick example, a few weeks back I was tasked with finding the total count of revisions. Seemingly a simple thing right? You can grab a quick total of comments in WordPress–same must be true for total number Post Revisions. Well, not quite.
In fact, the majority of people want to limit or turn off revisions, so finding the total number of post revisions isn’t as common as you would think. It turns out I wasn’t going along the right path by digging through the Codex, so I asked one of my teammates. In about two minutes, I had a working solution! I hadn’t thought of using the PHP count function to wrap wp_get_post_revisions to retrieve the total count. Asking the question saved me time and frustration.
Some Tips for Asking Better Questions
When asking a fellow coworker for guidance, there are a few things you’ll want to pass along beyond the actual question itself. If you have absolutely no idea where to start tackling a problem, that’s something worth mentioning. If you’re trying to work out a solution and have some idea, but find you’re not exactly on the right path, mention a few things, such as:
- Where you were looking in the Codex.
- What you’ve searched for on Google and if any links you’ve come across might be along the lines of what it is you’re trying to accomplish.
- If you’ve tried writing some code, pass a gist along that might be worth reviewing.
- Any screenshots or mockups of the end goal.
What this does is help a fellow teammate get a solid idea of how to best offer their advice regarding your problem. It also shows that you’ve tried a few things and are actively trying to find a solution. By providing as much information as possible, it will also avoid the, “Oh, I found that and it didn’t work out already,” situation.
Asking a question at this point does a couple of things: It can help uncover situations or problems that can come up during the course of a project. Either you’ll be able to work out a solution after this, or if it’s actually a lot more complicated than it appears on the surface, you can bring it up to the team and bring in other developers to help solve a more complex problem. This helps in a lot of ways, but most importantly, it allows for time to be allocated to ensure on time delivery of the final product.
If you’re a more advanced developer, here some things that can help encourage and empower less seasoned developers:
- Ask your teammates if they think they can tackle certain problems, encourage them to push themselves, and let them know if they run into issues or problems that you’re available to help them out if they do. It’ll help encourage them to challenge themselves while knowing that you’ve got their back if they need it.
- Casually check in every now and then to see how things are going, if you have time.
- Share some links or tips that might be beneficial to the project they’re trying to tackle, on the off chance they don’t ask for some initial guidance. Maybe they already have an idea, but it certainly can’t hurt. This can be helpful and I think most would appreciate this level of guidance or mentorship.
If you’re not an advanced developer but trying to work your way to become one here’s a couple recommendations:
- Don’t be afraid to ask questions. Seriously, everyone comes across new problems, and by simply asking, you’ll save a lot of time for you and the project you’re working on.
- Follow some of the steps I’ve outlined above. It’s not only helpful to the person you’re asking, but also helps you develop the skills to solve problems more effectively as time goes on.
- Take some time to give back. Whether it’s internally, on Twitter, or on the WordPress.org forums, there’s always someone who has a question and could use some help for problems you’ve likely come across. It’s a good way to share and give back for the help you’ve received along the way.
- Always be learning. There are countless blogs, online tutorials and online video tutorials like Treehouse or WordPress.tv. Take advantage of these resources. Things may not always click instantly, but sometimes just having general ideas or concepts will help you become a better problem solver–I can guarantee it. This is especially helpful if you’re a freelancer.
Asking questions can be beneficial to both you and your team as well as the overall success of a project. It can help you become a better stronger developer and also help the team you may be working with deliver successful projects on time and under budget. It can help discover issues that come up along the process and allow for proper management of those issues, allowing you sufficient time to solve them as well as discuss them with your clients. I encourage everyone to ask questions because it will make you a better developer, a better teammate, and an even stronger team!