Wednesday, June 8, 2016

3 Ways to Work More Effectively in a Web Development Team

Developers gravitate towards what they know and like, what's comfortable and feels good. This can be problematic in a team environment. Looking back at my career, I've made more than a few mistakes in this regard.

Consider that framework you enjoy now: is adding that extra dependency enabling anybody?

That design pattern you like: does it help to pile that on top of legacy code?

How about that wretched component you can’t bear to read: does it help to avoid it and cake hacks on top?

With questions like this in mind, I'd like to suggest three ways to be more effective in a team. This is for web developers working in a team. I'll draw from past experience and lessons learned along the way.

The Importance of Attitude

Your disposition towards certain tools says how you value the team’s work. This manifests itself in the way you approach code problems.

In previous roles, I've caught myself doing lone coding while undermining another’s work. It's this kind of attitude that wrecks your success within a team.

To begin this article, I'll explore one of my favorite characters from the Star Wars universe --- as I believe he has tidbits of wisdom to offer in this regard.

The Person of Kenobi

Obi-Wan is my favorite character in the Star Wars universe. As a general during the Clone Wars, he's a member of the Jedi Council and a threat to the Sith. Obi-Wan is a paragon of the light for several reasons:

  • he hates flying, yet is one of the best pilots in the Republic fleet
  • he hates blasters, yet is a sharpshooter
  • he hates the Sith, yet becomes Darth Vader's best teacher.

I feel this hate vs mastery relationship is telling in our careers as web engineers. Teamwork is seldom found in what you think you are good at and feel good about. Stepping outside your comfort zone is the attitude that will challenge you and enable you to grow.

Where Ideas Come From

So, the first point I'd like to make starts with a question: Have you ever experienced a visceral reaction to a code solution? That pit in the stomach that says it sucks, but you don’t know why? The kind that says something is wrong with this, but you can’t quite put a finger on it?

In a team environment, you don’t always have the best idea. It's important to discern whether i's your brain talking or your ego.

Just because it wasn’t your idea, it doesn’t mean it's inferior. One suggestion is to run a quick examination and figure out where that gut reaction comes from. It may lead to opening up new ways of solving a problem. By being open and asking the right questions, you may yet learn something new. It's a real privilege to stand on the shoulders of giants and take solutions even further.

Granted, it may still be the case that there's a better way. You could be dealing with someone that doesn’t have the time or doesn't care. If that's the case, it might be a good time to look for another team --- especially if that someone is influential within the organization, such as a lead or manager. These organizations attract the wrong crowd anyway, and have issues growing and retaining talent. As this industry matures, I find that these cases are few and far between.

In an empty canvas, there are infinite ways to solve a problem. The beauty of building web solutions is that you get a real shot at this. The open web is a platform where any kind of radical idea can live --- as long as you're sending standard hypertext messages from a server. So it's fitting to approach this within a team setting.

The tooling and decisions the team makes often add value to the team. The key is to embrace those ideas and contribute by taking them to the next level.

Continue reading %3 Ways to Work More Effectively in a Web Development Team%


by Camilo Reyes via SitePoint

Ask the UXperts: User requirements: What users say vs what they really need — with Joe Natoli

Next up in our Ask the UXperts series, we’re talking with one of the most energetic and friendly UXers that I’ve had the pleasure of dealing with. That person is Joe Natoli and we’re talking user requirements.

In the session we’ll discuss ways to unpack the qualitative data that we get from user research to figure out what people really want rather than what they just think or say they want – and how that information can be translated into functional requirements. We’ll also touch on ways to find that sweet spot connecting user needs to business goals.

The Details

Meet Joe Natoli

Joe Natoli

Joe Natoli is the author of Think First: My no-nonsense approach to creating successful products, memorable user experiences and happy customers.

His online UX courses serve over 46,000 students, and he has consulted with and trained Fortune 500 and 100 organizations for nearly three decades. His articles, tips and advice can be found at givegoodux.com.

You can also find him on Twitter @joenatoli

How to Ask Your Questions

If you can’t make the live session but have questions, we’d love to collect them ahead of time and we’ll ask Joe on your behalf. You can submit your questions here. We’ll publish the responses (along with the full transcript) in the days following the session.

Here are a few question ideas to get you started:

  1. It’s a well known UX myth that users know what they want! What are some practical ways that we can solicit accurate and actionable user requirements without coaching?
  2. What about tips for interpreting those requirements once we have them?
  3. How heavily should business goals weigh into prioritising user needs and requirements?

How does Ask the UXperts work?

These sessions run for approximately an hour and best of all, they don’t cost a cent. We use a dedicated public Slack channel. That means that there is no audio or video, but a full transcript will be posted up on here in the days following the session.

The post Ask the UXperts: User requirements: What users say vs what they really need — with Joe Natoli appeared first on UX Mastery.


by Luke Chambers via UX Mastery

AOS – Animate On Scroll Library

AOS is a small library that allows you to animate elements as you scroll down, and up.

If you scroll back to top, element will animate to it's previous state and is ready to animate again if you scroll down.

 


by via jQuery-Plugins.net RSS Feed

10 Lodash Features You Can Replace with ES6

[author_more]

This article was peer reviewed by Mark Brown. Thanks to all of SitePoint's peer reviewers for making SitePoint content the best it can be!

Lodash is the most depended on npm package right now, but if you're using ES6, you might not actually need it. In this article, we're going to look at using native collection methods with arrow functions and other new ES6 features to help us cut corners around many popular use cases.

1. Map, Filter, Reduce

These collection methods make transforming data a breeze and with near universal support, we can pair them with arrow functions to help us write terse alternatives to the implementations offered by Lodash.

_.map([1, 2, 3], function(n) { return n * 3; });
// [3, 6, 9]
_.reduce([1, 2, 3], function(total, n) { return total + n; }, 0);
// 6
_.filter([1, 2, 3], function(n) { return n <= 2; });
// [1, 2]

// becomes

[1, 2, 3].map(n => n * 3);
[1, 2, 3].reduce((total, n) => total + n);
[1, 2, 3].filter(n => n <= 2);

It doesn't stop here either, if we're using an ES6 polyfill, we can also use find, some, every and reduceRight too.

2. Head & Tail

Destructuring syntax allows us to get the head and tail of a list without utility functions.

_.head([1, 2, 3]);
// 1
_.tail([1, 2, 3]);
// [2, 3]

// becomes

const [head, ...tail] = [1, 2, 3];

It's also possible to get the initial elements and the last element in a similar way.

_.initial([1, 2, 3]);
// -> [1, 2]
_.last([1, 2, 3]);
// 3

// becomes

const [last, ...initial] = [1, 2, 3].reverse();

If you find it annoying that reverse mutates the data structure, then you can use the spread operator to clone the array before calling reverse.

const xs = [1, 2, 3];
const [last, ...initial] = [...xs].reverse();

3. Rest & Spread

The rest and spread functions allow us to define and invoke functions that accept a variable number of arguments. ES6 introduced dedicated syntaxes for both of these operations.

var say = _.rest(function(what, names) {
  var last = _.last(names);
  var initial = _.initial(names);
  var finalSeparator = (_.size(names) > 1 ? ', & ' : '');
  return what + ' ' + initial.join(', ') +
    finalSeparator + _.last(names);
});

say('hello', 'fred', 'barney', 'pebbles');
// "hello fred, barney, & pebbles"

// becomes

const say = (what, ...names) => {
  const [last, ...initial] = names.reverse();
  const finalSeparator = (names.length > 1 ? ', &' : '');
  return `${what} ${initial.join(', ')} ${finalSeparator} ${last}`;
};

say('hello', 'fred', 'barney', 'pebbles');
// "hello fred, barney, & pebbles"

Continue reading %10 Lodash Features You Can Replace with ES6%


by Dan Prince via SitePoint

You Gotta Love Frontend

opl-small

Smart One Pager for the upcoming 'You Gotta Love Frontend' conference to held in Tel Aviv later this month. The unique "Stacked Navigation" was inspired by this Dribbble shot by Ilya Kostin. Great to see them stick to the One Page website format after their awesome One Pager from last year.

by Rob Hope via One Page Love

What's New in Android Studio 2.2?

Monitoring WordPress Apps with the ELK Stack

WordPress is an amazing piece of engineering. There’s little wonder that more than a quarter of all CMS-based websites are using it. In reality, though, WordPress sites crash just like any other site. Bad plugins or themes causing the “WordPress screen of death”, or WordPress updates going south, are an all too frequent occurrence.

Stock photo of man angry at computer

When something does go wrong, one of the first things you’re going to want to look at are the log files. Not because you enjoy it -- log files are not easy to decipher -- but because they contain valuable information that can shed light on what exactly occurred.

In modern environments however, this task is a challenge. While WordPress admins might not ever need to hear the word “log”, the web developers and DevOps crews running the site will often need to go through lines after lines of log files to understand what went wrong.

"So, what’s new?" you might ask. After all, there are plenty of WordPress plugins such as WP Log Viewer that enable you to view these logs easily from the WordPress admin panel.

While this is true, analyzing WordPress and PHP logs is simply not enough. There are also web server and database logs to sift through. To successfully query huge volumes of log messages coming in from various sources and identify correlations, a more solid solution is required.

Enter the ELK Stack. The most popular and fastest-growing open source log analytics platform, ELK allows you to build a centralized logging system that can pull logs from as many sources as you define and then analyze and visualize this data.

To show an example of using ELK, this article will go through the steps of establishing a pipeline of logs from your WordPress application into the Logz.io ELK Stack. You can, if you like, use any instance of the stack to perform the exact same procedures.

Continue reading %Monitoring WordPress Apps with the ELK Stack%


by Daniel Berman via SitePoint