I often find myself looking at businesses and wondering; “what apps do they use to make things happen?”- it turns out I’m not alone. At WooThemes, we’re often asked, “which app do you code in?”, “what’s your favourite app for project management?” and other related questions about the WooEngine. After looking back at our original blog post on this topic, I found that as the WooTeam grew and our business evolved, so did the apps and tools we use to make the Engine hum. Today, I’ll attempt to answer all of the possible questions you may have around this topic.
Welcome to “The Tools We Use – The Revised Edition”.
Step 1: get to the heart; chat with the team.
Being a diverse group of (at time of writing) 31 WooFolk, spanning the globe, we all have our own slight differences in how we approach a scenario (be it a ticket, bug fix or new feature). It’s easy for us to assume that everyone works the same way we do and uses the same tools. This couldn’t be further from the truth. Heck, up until a few weeks ago, some of us were still using Windows.
After surveying the team on a variety of tools from operating system to code editor, preferred web browser and any special tips and tricks they use, the results confirm the hypothesis; ever WooNinja, much like a snowflake, is unique. There is, however, a common thread that binds us all across certain tools we use as a team.
Operating System
At the core of each WooComputer (WooPuter? WooBook?) is the operating system. Currently, we’re all Mac users. While this may change in the future, I have a feeling any deviation would be for other UNIX-based alternatives such as Ubuntu Linux.
Using the same platform helps us to stay consistent when using tools such as TextExpander and CodeBox for synchronising code snippets via Dropbox.
Web Browser
By far, the winner is Google Chrome. While we test our products across all popular web browsers, everyone has their personal preference for daily browsing. Several ninjas do use Firefox as their primary browser.
These browsers both include element inspectors, as well as consoles, which are two foundations that our team uses every day without fail. If a ninja is corresponding with you on a ticket in our help desk, there’s a high likelihood that the ninja has used the inspector in their web browser to take a closer look and has checked the console for any error notices.
Code Editor
This is where we begin to see a slight shift. While most of us use the brilliant Sublime Text 2 editor, several use Coda 2, one uses TextMate and another uses Coda 1. We even have a Dream Weaver on our squad.
Ultimately, the code ends up looking the same so this is purely a preference decision.
A few reasons I use Sublime Text 2, for example, include the speed at which the app operates, the automated indenting on new lines (intelligently), as well as the plethora of useful packages that can be installed.
A few favorite packages include GitGutter, Gist, Trailing Spaces and, of course, the WordPress and WooCommerce code intel packages. Docblocker is also great for ensuring your code had appropriate docblocks, making it easier to understand the purpose of the method or property being docblocked.
Of course, all of these packages are only available through Package Control, the package manager for Sublime Text 2.
Version Control with Git
As mentioned below and in previous posts, Woo loves Git (some may even say we “heart” it). How does each team member access the Git repositories?
This app choice, much like choosing a code editor, is definitely down to personal preference and comfort. We’ve had team members using Github for Mac for basic Git operations, as well as others (like myself) who prefer simply using Terminal.app instead. SourceTree is becoming a popular choice amongst the team, as it provides access to all the features and flexibility Git offers, proper handling of submodules and a decent GUI for making it all happen.
WordPress setup
When working with and testing so many different products, the most important factor is speed. How quickly can you switch from one product to another?
A common trend within the WooTeam is to setup a WordPress Multisite installation using MAMP, create a new site for each product, activate the product on that site and import demo content for the product. Once that site is setup, they have it forever. That’s great. For me and a few others, it takes too long. This lead me to develop the Matty Theme QuickSwitch plugin.
Theme QuickSwitch adds a menu to the WordPress Toolbar, making it easy to quickly activate a different theme. Some of us find a single site WordPress installation, along with this plugin, to be a quicker and easier way to switch between loads of different themes for testing and development.
Managing Translation Files
Every time a product is modified or released, the one constant is always the language files. To enable easier management of these files, we use the Codestyling Localization plugin for WordPress. This enables us to quickly update a language file before we deploy the latest version of a theme or plugin, without too much hassle.
Step 2: Look at the tools we use as a team. Find the heartbeat.
As amazing as the above tools are, there are certain tools we use as a team to collaborate, share ideas and converse about general topics (#catGifFriday, for example). These tools are the fan belt that keep the WooEngine purring.
P2
Being a WordPress-powered business, how could we not use P2?
For those not in the know, P2 is like an internal Twitter for your company (it can be public as well, if you’d prefer)… And it’s powered by WordPress!
Along with P2, we use the P2 by Email plugin to ensure we never miss a beat.
Github
All code at WooThemes is housed on Github. We even have a neat workflow (based on the Github-Flow workflow) for managing all bug or feature request reports… even for our own website!
We use Github for code storage and development, issue tracking and collaboration around code-centric topics and discussions.
Trello
If you’ve not heard of Trello, I’d highly recommend signing up as soon as you’ve finished reading this blog post.
Trello is a web app based on the Kanban/SCRUM styles of project management. One creates boards for a topic or task. These boards contain lists which house cards for each item or task pending action. When the status of a card changes, one moves it between the lists to indicate its current state.
We use Trello for everything, really. If its not code-related and needs planning/tracking, it goes into Trello.
As a team, we’ve found we’ve enjoyed using Trello for the variety of tasks we put to it, and have in fact ditched other project management tools in favour of keeping things lean and mean. We plan WooCommerce extension releases on Trello, marketing tasks, broad roadmap overviews, product strategy and more. There’s almost no limit to how useful Trello is.
Google Drive
As we use Google Apps for email, using Drive for documents was our next logical step.
We have a few folders that are shared across the team, while other documents can be shared with specific individuals if they’re just for a small team to review.
Drive also links in with Trello, which creates a neat symbiosis between the two apps.
Drive contains meeting agendas, team surveys, project briefs and more.
TeamGantt
This is a tool used by our management team. Here in, we schedule upcoming product releases, structure approximated timelines for development and attempt to spot trends where items are perhaps taking a bit too long or where we’ve overestimated the time needed on a task.
For Woo, TeamGantt is all about optimisation.
Step 3: Identify the tools we use with you, our customers.
Zendesk
This is a tool we are proud to share with you all every day. Zendeskis the heart of our help desk and the primary place we connect with you, our valued customers.
Comprising a help desk, knowledgebase and community forum, Zendesk is a wealth of information on all things WooThemes.
WooCommerce
Last but not least, we cannot forget WooCommerce.
Our website runs on it, out team works with and develops it, you purchase from us through it. WooCommerce is the backbone of the WooThemes.com experience.
Until the next revision
Tools within the online community are always evolving. New tools are released while others fall off the radar.
I hope you all found this brief look under the hood to be an insightful and informative one. I don’t doubt there will be another in the future where the majority of the above will have changed somewhat again.