The web as a whole, and Hacker Noon in particular, is bursting with best practice articles for developers. As an audience, engineers are an educated, enthusiastic bunch, and creating content for ’em is a great way to go.
On the fringes of the engineering world, though, there are a lot of non-techies who regularly work alongside engineers. Being a product person, designer or manager in a company that involves code can be a challenge, if you want to stay informed of whatever your engineers are doing.
Over the past few years, I’ve had the good fortune of working alongside some masterful engineers at Yala, our social media scheduling startup. I’d like to share our framework (in engineer speak, it’s a toned-down agile development framework) for staying on top of development tasks and making sure the less-tech-oriented team members (read: me) know what’s going on behind the scenes.
Whenever we have an idea for a feature or get a new feature request, the first thing we do is add it to our “Feature requests” Trello board. Trello is a fantastic web app that lets us manipulate digital “cards” by organizing them in stacks. Here’s what it looks like:
The “Feature requests” board is color-coded by urgency and organized by feature types, so it’s easy to determine at a glance what our next feature could be.
Our main Trello board is called “Yala dev”, and it’s home to stories that got green-lighted to be included in Yala.
What are stories, you ask? Great question! These are little tales of ways people want use Yala. Here’s an example for a story —
Treating dev tasks as stories is great because it’s a fantastic way for product people to communicate their ideas to the engineers — everybody understands a story. If you’d like to read more about this approach, check out this article.
Back to the “Yala dev” board. The board includes five stacks:
We add cards to “Planned 💭” first, and they progress through the stacks as needed. The cards are stacked by priority. Every card also has subtasks in the forms of a checklist, and Trello lets us comment and tag each other on those cards.
This system is useful because it lets us both organize and keep an eye on feature requests, as well as track stories as they progress through the development funnel.
If you’d like to really get up close and personal with your codebase, the best way to go is by listening to Github’s heartbeat.
Github is a git repository web host, which means it stores your entire codebase with version control and collaboration features. In all likelihood, your engineering team is already using Github.
Here’s a brief, dumbed-down version of how it works.
Whenever an engineer starts working on a feature or a fix, they will create a branch, which is basically a separate version of the codebase which includes their new changes.
A branch is composed of many commits, which are small collections of code or files an engineer added to that branch.
Keeping track of commits can give you some idea of what developers are working on. Each commit has a comment attached, which is a line of text explaining what the commits includes. However, commits can often be too technical to easily understand, and too specific to provide a good overview of the code. Instead, try reading pull requests - requests for other engineers to review & comment on a branch and merge it into the larger codebase.
If you’ve turned on Github notifications, comments on every pull request will land in your email inbox. Many of the comments will be completely technical, but reading through them can give you a good idea of what a pull request includes.
Github also includes a fantastic Slack integration, which pulls these notifications into a Slack channel of your choice. For us, all the Github notifications funnel into our #dev channel. Whenever one of us is @-mentioned in a Github comment, Slack will buzz with a notification for that person. It makes it easy for an engineer to invite a designer or product person into a code review.
A notification from Github for Slack, including some recent commits and their comments
All the tools and setups in the world won’t help at all if you can’t ask your engineers what’s going on. As a remote company, we use chat to communicate, and engineers who are articulate in English as well as code are invaluable. My gut feeling is that good communication is indicative of good code, as well.
Communication obviously goes both ways. If you can’t communicate your ideas and thoughts clearly enough, you’d be lucky if they translate to good code. A good way to communicate your ideas is the Task Model system — read about it here.
Clear communication, coupled with the right set of tools, make staying on top of your software development work a breeze.
Yala is a robot that makes managing your social media accounts a breeze. She uses machine intelligence to determine the best time to publish your posts, so that you always perform before a full house. We’ve put a lot of thought and love into building her, and I think it shows. Yala is absolutely free to use. Click here to add her to Slack, or here to sign up for our Facebook Messenger beta.
Make my year lovely-er by recommending this article.