Skip to content

Instantly share code, notes, and snippets.

@brigleb
Last active August 29, 2015 14:05
Show Gist options
  • Save brigleb/f42aa00d382a065a86c7 to your computer and use it in GitHub Desktop.
Save brigleb/f42aa00d382a065a86c7 to your computer and use it in GitHub Desktop.
Developer Goals at Needmore

One of the most important concepts to understand at Needmore is Kaizen. This means continual improvement. Apply this to everything you see below. The following are just guidelines, part of your job is to keep improving, getting better, refining the process, learning, and teaching.

Your goal as a member of the Needmore team is to feel empowered to make sure that you continue to improve, and we do as well. We don't expect you to do something just because it's written here, we expect you to do it better. Learn how to improve the process to end up with a better result, with less mistakes, with less problems. Don't keep doing something a certain way because that's the way we've been doing it.

There are six key aspects to being a successful, productive part of development at Needmore.

Process

Get comfortable using Trello for development and issue tracking. Make sure you use it in a way you can keep the whole team in the loop at all times. Remember to notify the project manager when making changes that affect the client via an @mention on the card (don't just move it to testing!).

Checking your work is important. Everything we build needs to both be of great quality, while also being built in a reasonable amount of time. Balancing these is not easy, and tests your ability to work skillfully.

Maintaining documentation and checklists is critical. When we launch a site, there are a thousand little things that could possibly go wrong. Hopefully, none will!

Git workflow

Follow our workflow. We use something very similar to Gitflow at Needmore. Using a GUI okay, but know the command line.

Be comfortable with branching, merging, and logical commits. The more complicated a project gets, the more you need to be sure you're doing things the right way. This also means small, atomic commits are important. Describing each commit is important, as the series of commits you make is a useful form of documentation.

Knowing how and when to use pull requests. When adding features, this is nice. When fixing bugs, this is not necessary. But be comfortable with them, and understand that they can be used long before you actually want to merge a branch.

Programming PHP and JavaScript

Getting better at programming is of fundamental importance. Things like WordPress and JavaScript libraries can help, but they don't make up for having a fundamental understanding of what you're building.

Learning to write well and refactor as needed. Nobody writes perfect code the first time. Learn how to refactor properly.

Learn to write tests. They will help your code get better, help you describe it better to the team, and be necessary for open-sourcing our work in some environments.

WordPress

Agile development should underpin all the development that you do.

Following and improving our deployment process means not only understanding how we deploy websites now, but how we could get better at doing that.

Moving into plugin development is going to happen, so while understanding how we write themes is important, think about the bigger picture and how we could build plugins that address common needs of our team (or needs of others who might be interested).

Best-practice HTML/CSS

Read and follow our style guide.

Continue to learn new tricks and best-practices.

Think beyond current techniques like 12 column grid and retina bitmaps.

Sass and the Grunt toolchain

Sass is amazing. Use it wisely and use it well. Don't be satisfied with nesting selectors or using basic variables. Many common problems can be solved with mixins and other patterns. Think about building a library of these for Needmore, or adopting some of the better ones out there.

Grunt is also amazing. We use it on every project. How can we use it better?

Bower (and Yeoman) are next steps. Look into them. How can we get projects started better by using these?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment