Tuesday, June 28, 2016

Transcript: Ask the UXperts: How Agile, Lean & Lean Startup Methodologies Affect UX Research — with Amanda Stockwell

Today we had the pleasure of hosting Amanda Stockwell (VP of UX at 352 Inc.) in our Ask the UXperts Slack channel to talk about the differences between Agile, Lean, and Lean Startup, and how to adapt our UX research for those environments.

Today’s topic really struck a chord with the audience, and the excellent questions came in thick and fast. That didn’t stop Amanda though, she handled it like a pro.

If you didn’t make the session because you didn’t know about it, make sure you join our community to get updates of upcoming sessions. If you have follow up questions for Amanda, you can ask them here.

If you’re interested in seeing what we discussed, or you want to revisit your own questions, here is a full transcript of the chat.

 

 

hawk
2016-06-28 23:01
So first up – thanks so much Amanda, for your time today, it’s greatly appreciated

 

hawk
2016-06-28 23:02
Amanda is VP of UX at 352 Inc.

 

hawk
2016-06-28 23:02

 

hawk
2016-06-28 23:02
She leads a team that provides research, design, and UX strategy services to a variety of clients. She has spent most of the last decade focused on finding innovative ways to understand end users and embed that knowledge into the design process.

 

amandastockwell
2016-06-28 23:02
Thanks to all of you for joining!

 

hawk
2016-06-28 23:02
And recently wrote this great article for us: http://ift.tt/28KcPIp

 

hawk
2016-06-28 23:03
@amandastockwell: Throwing it over to you for an intro to the topic of today’s chat :slightly_smiling_face:

 

amandastockwell
2016-06-28 23:03
OK great. Hi, everybody! Thanks again for joining.

 

darryl.grier
2016-06-28 23:03
has joined #ask-amanda-stockwell

 

amandastockwell
2016-06-28 23:03
I want to start by clarifying what Agile, Lean, and Lean Startup are.

 

taurius1
2016-06-28 23:03
So I’ll put a question out there, since I don’t see too many entered here yet.
My last job was working at a startup who’s product was aimed at enterprise customers, and this product requires extensive domain knowledge, which pretty much narrowed down my usability study participants to people who use our product.
More often than not, reaching out to customers via email usually got ignored, and the ones that did reply, often talked about being afraid to actually talk to me because they had no idea what was covered by their NDA or similar contractual agreements with their employer.

 

Typically took me a month or two to recruit my users for a usability study.
In such a scenario, would you recommend alternative modes of communication with such users? Or perhaps offer tips about the kind of language to use with them? Or should I try approaching their supervisors, and perhaps have the supervisors recruit my participants for me?

tl;dr: Any tips of recruiting usability study participants for enterprise product users?

 

hawk
2016-06-28 23:04
Perfect – that will cover off @aleshaarp’s question

 

amandastockwell
2016-06-28 23:04
Lean is a general set of business principles focused around eliminating waste and increasing efficiency – but that’s not specific to software

 

amandastockwell
2016-06-28 23:05
In fact, it’s derived from the processes around creating Toyotas

 

aleshaarp
2016-06-28 23:05
right, because there’s lean manufacturing too

 

amandastockwell
2016-06-28 23:05
Yep. Lean startup is a specific set of principles/best practices on creating new products, made popular by Eric Ries

 

amandastockwell
2016-06-28 23:05
and focuses around iterative experimentation and using the learnings to craft your product and business plans

 

rmonaghan
2016-06-28 23:07
has joined #ask-amanda-stockwell

 

amandastockwell
2016-06-28 23:07
Agile is specifically a software development approach, and focuses on the core values of rapid, continuous release of live code, collaborative cross-functional teams, and a commitment to responding to changing needs rather than sticking to a plan

 

amandastockwell
2016-06-28 23:08
None of these are mutually exclusive – actually, lean-startup practices often work best with Agile teams

 

mturner
2016-06-28 23:08
has joined #ask-amanda-stockwell

 

amandastockwell
2016-06-28 23:09
and Lean can be used in really any business

 

hawk
2016-06-28 23:09
Welcome if you’ve just joined – Amanda is currently introducing the topic and clarifying the terminology

 

amandastockwell
2016-06-28 23:09
@taurius1 – To the question about recruiting enterprise end-users, I could probably talk an entire hour about recruiting for them

 

desertcoder
2016-06-28 23:09
@amandastockwell: What method would you use when working with an organization that is essentially Waterfall but calls itself Agile. The challenge for UX is finding and working with enterprise product users who are used to Waterfall methodology.

 

amandastockwell
2016-06-28 23:10
I would say a) Yes! Talk to supervisors! Try to get everyone involved and bought in and demonstrate why it’s important to them that they invest some time in feedback

 

kitseeborg
2016-06-28 23:10
has joined #ask-amanda-stockwell

 

amandastockwell
2016-06-28 23:10
e.g. if their tools are easier to use, they become more efficient, they save money over time

 

amandastockwell
2016-06-28 23:11
And be creative about incentives – I’ve made a lot of progress buying beverages and baking goodies :slightly_smiling_face:

 

aleshaarp
2016-06-28 23:11
interesting question @desertcoder about being Waterfall but thinking they’re Agile. I’ve seen similar hybrids – particularly Agile Scrum but with brutal deadlines!

 

aleshaarp
2016-06-28 23:12
@amandastockwell: do you find that there are rarely “pure” environments?

 

donna
2016-06-28 23:12
When we are talking about us research within agile work flows are we limiting the UX methods we can use? We are mostly talking about usability testing? Or are we still able to do other methods?

 

amandastockwell
2016-06-28 23:12
@desertcoder: One of the biggest problems is that much like UX, no one really seems to have a shared understanding of what “agile” is and it really does vary from team to team

 

taurius1
2016-06-28 23:13
thank you for that reply :slightly_smiling_face:

 

amandastockwell
2016-06-28 23:13
So one thing I’ve found very helpful is to have an internal discussion to set guiding principles – How does YOUR company define sprints, definitions of done, etc.

 

hawk
2016-06-28 23:13
I’m queuing your questions for Amanda now everyone. Feel free to ask as things spring to mind.

 

amandastockwell
2016-06-28 23:14
in that discussion it usually becomes clear that you either aren’t really actually Agile or you aren’t on the same page

 

julijaku
2016-06-28 23:14
How involved do you think the UX designer should be in the Development Scrum?

 

amandastockwell
2016-06-28 23:14
@aleshaarp: To that note, I’ve never seen a “pure” environment of any variety ha

 

amandastockwell
2016-06-28 23:14
And I don’t think that’s a bad thing. Every team and every group needs to find what works for them

 

aleshaarp
2016-06-28 23:15
So like @donna said, you can pretty much use any UXR method that fits the need as long as it fits the timeline?

 

amandastockwell
2016-06-28 23:15
What worked at the startups I’ve worked at didn’t work at the huge enterprise and now doesn’t work at the agency I work at – it all shifts depending on goals, how big the teams are, etc.

 

amandastockwell
2016-06-28 23:15
To @donna and @aleshaarp – The actual UX methods don’t change in an Agile environment, but often the timeframe is much shorter, so you have to sometimes be creative

 

amandastockwell
2016-06-28 23:16
Either really narrowing down the hypotheses/scope of the work, being flexible about how you run sessions (e.g. could you do remote interviews instead of in person), or finding other time-effective ways to answer questions

 

aargenis
2016-06-28 23:18
has joined #ask-amanda-stockwell

 

amandastockwell
2016-06-28 23:18
@julijaku: I’m not 100% sure what you mean by Development Scrum as that is one of those terms that changes everywhere I go

 

chels
2016-06-28 23:18
Have you experience in organisations who fundamentally don’t understand UX as a specialised skill set.
In an environment where the methodology is “waterfall-masquerading-as-agile” and roles are traditional BA, PM, Developer, Tester how would you recommend going about challenging and changing this mindset?

 

anitatran
2016-06-28 23:18
@amandastockwell: can you give some examples of what worked/didn’t work in startups compared with bigger enterprises?

 

amandastockwell
2016-06-28 23:18
but in general, I recommend that everything be as collaborative and cross-functional as possible

 

pagant
2016-06-28 23:18
has joined #ask-amanda-stockwell

 

julijaku
2016-06-28 23:19
Thank you. In terms of structuring scrums for efficiency, is it good for a scrum to include Engineers, UX, QA, etc, or do you find that more specific scrums are more efficient?

 

amandastockwell
2016-06-28 23:19
I’ve always found it helpful to include some of my devs in my research, have devs and designers work together on both front end and back end solutions

 

amandastockwell
2016-06-28 23:20
Oh – yes! I’m all about cross-functional! I think the best scrum teams have all those things – engineers, UXers, QA, writers if necessary, etc. all together

 

eileenca
2016-06-28 23:20
Can you talk about how you fold testing results into Agile?

 

amandastockwell
2016-06-28 23:20
Everyone will still have their specialties and what they’re best at, but the more involved each person is in each part, the less convincing you have to do, the less time you have to spend documenting, and the more heads you can have on problems

 

amandastockwell
2016-06-28 23:21
And this touches on @eileenca’s question a bit – The best way I’ve been able to get research results incorporated is to have the rest of the team see first hand. There is nothing quite like seeing someone cry because of something you’ve done (or not done!) to inspire work

 

chels
2016-06-28 23:21
@amandastockwell:
> the less time you have to spend documenting, and the more heads you can have on problems
YES!!!!!

 

amandastockwell
2016-06-28 23:22
@chels: To your questions about organizations that don’t believe in UX – yah totally. But more and more companies are realizing they can’t be successful without us

 

amandastockwell
2016-06-28 23:23
To challenge the mindset of everyone does their own thing, I am a big advocate of doing first and asking forgiveness later

 

amandastockwell
2016-06-28 23:23
I find a few other good souls who are willing to rock the boat with me

 

amandastockwell
2016-06-28 23:23
Maybe make them cookies or buy them a beer

 

amandastockwell
2016-06-28 23:23
And then prove out how awesome the results are when we do it that way – no one argues with success

 

donna
2016-06-28 23:24
_the less time you have to spend documenting, _ do you still need to document for knowledge transfer?

 

taurius1
2016-06-28 23:24

Hmm. I like documenting everything explicitly. All the interactions, user flows, screens, etc. It allows me to design multiple feature at once, and helps other team members (non designers especially) talk about and reference the design in their own conversations.

Lack of documentation usually bites in the future.
“It’s in the code” is not something I like to hear.

 

aleshaarp
2016-06-28 23:24
Do you find that the “technical debt” threat helps bring people around to UXR?

 

amandastockwell
2016-06-28 23:24
So first you have to motivate and inspire a few people to take chances with you, then you demonstrate how awesome it was

 

hawk
2016-06-28 23:24
On behalf of @ziebell: Are there specific tips or recommendations you’d like to share for honoring the unique aspects of each platform (say Android, iOS) while at the same time maintaining the product branding throughout, and not over designing toward one platform in the face of popularity (say putting Windows Mobile last).

 

amandastockwell
2016-06-28 23:25
@anitatran: the question between startups and enterprises often has to do with team structure (ie enterprise teams often tend to be much larger or at least have potential to be so) and more specialized people

 

amandastockwell
2016-06-28 23:25
so at a startup you might have one general ux person who does some writing, some design, some research (the unicorn is a topic for a different day!!)

 

amandastockwell
2016-06-28 23:26
but at an enterprise you might be able to have a team that has a dedicated technical writer or content strategist, a dedicated researcher, and a dedicated designer

 

earlagray
2016-06-28 23:26
Hi Amanda. The last major project I was on, I ran into a large issue of the end goals of the product being misaligned (e.g. Marketing’s definition of success differed from Business Developments which differed from IT’s). How important is it that goals are ultimately aligned and what would be the best method to ensuring that each team member is on the same page?

 

amandastockwell
2016-06-28 23:27
Recruiting can be different at an enterprise too, whether that’s because there’s a big existing user base or an internal user base. I’ve found you have to be a bit more careful about what to show who based on politics

 

amandastockwell
2016-06-28 23:28
@aleshaarp – I’ve had mixed results around the “technical debt” argument. I think brand new companies who are trying to launch something new tend to pay less attention to that

 

amandastockwell
2016-06-28 23:28
It’s usually at big enterprises where they’ve been REALLY bitten by debt already that they pay attention to it

 

amandastockwell
2016-06-28 23:29
Sometimes it can help, but I think there are other, better, arguments for incorporating UX. Like, making sure you build a thing that people actually want. Saving dev rework time when you do build stuff people don’t want. Getting more new customers or more retention. Etc.

 

amandastockwell
2016-06-28 23:30
@donna I think this is a really tricky balance. I don’t like to leave things documented ONLY in the code, but I do like to encourage the teams to “learn together.” For instance, I want a designer and dev to be present in a usability test to capture that awful, tearing up face when somebody can’t figure something out

 

amandastockwell
2016-06-28 23:30
so they learn what is wrong and how bad it is at the same time

 

julijaku
2016-06-28 23:30
Thank you, as a follow up to my last question, how do you suggest a UX person who may be involved in multiple projects at once filter noise and avoid spending all their time in scrums or trying to catch up with different teams?

 

amandastockwell
2016-06-28 23:31
But that being said, I also like to write up notes about it – in some of my projects, “documentation” has consistend of just emails to the whole team or google docs of key takeaways

 

amandastockwell
2016-06-28 23:31
That way no one forgets anything, people who aren’t there can catch up, etc.

 

amandastockwell
2016-06-28 23:32
@earlagray Hi! Ok first of all – it is so super duper incredibly important that everyone shares a vision and definition of success that I say you need to solve that before basically anything else. That’s not exactly a ux-specific issue, but we are often the ones who can bridge the gap

 

desertcoder
2016-06-28 23:33
I’m finding UX research where I work consists of developing workflows, doing competitive analysis, developing use cases and writing user stories. Is this typical?

 

amandastockwell
2016-06-28 23:33
There are some simple kickoff exercises that I really like, as simple as writing shared vision statement for all the key stakeholders. No one leaves the room and starts working on anything until you agree what you’re working toward

 

amandastockwell
2016-06-28 23:34
I also like to do group proto-personas to make sure everyone agrees who our target users are

 

desertcoder
2016-06-28 23:34
Yes! “What’s the problem we’re trying to solve…and for Whom!”

 

amandastockwell
2016-06-28 23:34
I think Jeff Gothelf has some good thoughts on kickoff exercises – ask in the forum later and I’ll send you more!

 

earlagray
2016-06-28 23:35
Thanks @amandastockwell

 

amandastockwell
2016-06-28 23:35
sure!

 

amandastockwell
2016-06-28 23:35
@julijaku back to you

 

nathannirens
2016-06-28 23:35
has joined #ask-amanda-stockwell

 

amandastockwell
2016-06-28 23:35
That’s a tough one – there is always going to be a balance of keeping up vs. being in meetings you don’t need to be

 

amandastockwell
2016-06-28 23:36
But I’ve found that it takes less time overall for me to be in key meetings (standups, design reviews, retros) with each team than to try to catch up with what’s going on with each team every time

 

julijaku
2016-06-28 23:36
Hi Amanda, a question for the queue… do you have any thoughts on HTML rapid prototyping? Do you think it speeds up the development process?

 

julijaku
2016-06-28 23:37
Thanks Amanda, that is an excellent point

 

amandastockwell
2016-06-28 23:37
That being said – it’s REALLY hard to serve many multiple projects well, so if you’re getting to a point where you can’t be effective, I think it’s worth documenting how much time you spend switching contexts and advocating for some more resources

 

julijaku
2016-06-28 23:38
Also a good point!

 

amandastockwell
2016-06-28 23:38
@ziebell had a question about platforms – so I say this is totally dependent on your target users and what they need/use/do

 

mturner
2016-06-28 23:38
Hi @amandastockwell do you find that it’s best to plan ahead with UX research for an agile methodology? Or be ready to be spontaneous as and when required? Or does it depend? :wink:

 

aleshaarp
2016-06-28 23:39
Grinning! @mturner is spot on… “both” and “yes, it depends”

 

amandastockwell
2016-06-28 23:39
if you are working on a product for a user type that is always exploring new technology, then you have to do that too. If you’re working for a user type that is really loyal to a specific platform, don’t try to change patterns just for brand consistency

 

amandastockwell
2016-06-28 23:39
people will likely be more loyal to their platform than to your app or tool or whatever

 

amandastockwell
2016-06-28 23:40
@julijaku: on HTML rapid prototyping – I think this totally depends on who is on your team. To be honest, if I was the UX person on the team, it would take me 5 times longer to make a reasonable HTML prototype than some of my colleagues

 

amandastockwell
2016-06-28 23:41
In general, I’m all about adapting what works for the people on the team and context of the project

 

amandastockwell
2016-06-28 23:41
Sometimes it’s really helpful to have a very high fidelity HTML prototype and you need that to get the kind of feedback you’er looking for

 

amandastockwell
2016-06-28 23:41
sometimes it’s overkill

 

amandastockwell
2016-06-28 23:42
so sort of to the last point – it depends! I’m very tool-agnostic. If you could use Keynote, or code, or paper, or whatever, I don’t care as long as you got enough of what you needed to done to test your hypotheses

 

amandastockwell
2016-06-28 23:42
that most efficient thing is probably different for everyone

 

julijaku
2016-06-28 23:43
have you heard of UX and front-end developers collaborating such that the HTML prototype can become the actual product frictionlessly?

 

frankenvision
2016-06-28 23:43
Do team members constantly asking questions amongst one another in an agile environment?

 

neiljorgs
2016-06-28 23:43
Amanda, do you recommend any UX books that deal specifically with this area?

 

amandastockwell
2016-06-28 23:43
@mturner I grinned too! My favorite least favorite response to every UX question is…it depends. I will say this – there are certain things that you can plan ahead that are helpful

 

amandastockwell
2016-06-28 23:43
For instance, if you know you’re going to want to run a usability test of some kind, even if you aren’t sure what, it can be helpful to start recruiting users ahead of time

 

amandastockwell
2016-06-28 23:44
maybe you don’t even know it will be a usability test – maybe it turns out that you actually need to do interviews

 

amandastockwell
2016-06-28 23:44
but having some people scheduled ahead really helps

 

taurius1
2016-06-28 23:44
Fun thing about UX is that every solution is specific to the context, the user, the business needs, and so many other variables, many of which keep shifting

 

amandastockwell
2016-06-28 23:44
So there is a balance of planning and flexibility

 

amandastockwell
2016-06-28 23:44
and yes, so much of that. everything always depends

 

amandastockwell
2016-06-28 23:45
@julijaku I love it when UX and front-end developers collaborate! I haven’t personally been involved in a time when the HTML prototype seamlessly became the thing

 

amandastockwell
2016-06-28 23:45
but I feel certain it could happen

 

amandastockwell
2016-06-28 23:45
depending on the context

 

houtman
2016-06-28 23:46
has joined #ask-amanda-stockwell

 

amandastockwell
2016-06-28 23:46
@frankenvision can you clarify your question? I want to make sure I answer appropriately

 

amandastockwell
2016-06-28 23:46
@neiljorgs which area? we’ve covered a lot of topics :slightly_smiling_face:

 

neiljorgs
2016-06-28 23:48
setting up a lean startup structure to start the process so that your stakeholders are on board.

 

amandastockwell
2016-06-28 23:48
ah ok – so not specifically about setting up the lean startup structure, but of course, if you haven’t read lean startup by eric ries, do it! I also love, love, love Tomer Sharon’s “Validating Product Ideas”

 

amandastockwell
2016-06-28 23:49
UX for Lean Startups by Laura Klein is great

 

neiljorgs
2016-06-28 23:49
Great thanks

 

amandastockwell
2016-06-28 23:49
next on my queue (ordered but not yet read) is Sprint by Jake Knapp

 

frankenvision
2016-06-28 23:49
how often do teams regroup in an agile environment? say I am working on user interviews or usability testing are people constantly asking questions during the process? It seems like it could be counter productive…

 

frankenvision
2016-06-28 23:50
Sprint is a great read.

 

amandastockwell
2016-06-28 23:50
Ah ok – you mean like, other cross functional team members actually interrupting the sessions? or just as you’re planning?

 

frankenvision
2016-06-28 23:50
both

 

amandastockwell
2016-06-28 23:51
in general, I’ve found that the more collaborative the planning is, the better. But I generally don’t think it’s a good idea to let others interrupt actual live interviews or test sessions. I set ground rules for observers

 

hawk
2016-06-28 23:51
We have just under 10 mins left in the session ? have we missed anyone’s question?

 

amandastockwell
2016-06-28 23:51
As in – you’re here to observe, you can make suggestions to me and I’ll check in 10 minutes before the end to make sure we didn’t miss a question

 

amandastockwell
2016-06-28 23:52
Actually, if possible, I don’t let them in the same room so the people don’t feel like they are being stared out

 

amandastockwell
2016-06-28 23:52
at*

 

frankenvision
2016-06-28 23:52
ok thanks

 

desertcoder
2016-06-28 23:52
@hawk: Yes – question on “typical” UX research in Agile enviro.

 

amandastockwell
2016-06-28 23:52
I’ll set up a Hangout or GoToMeeting or something and have team members/stakeholders observe from another room

 

amandastockwell
2016-06-28 23:53
@desertcoder: can you be more specific? Like what methods are most typical?

 

frankenvision
2016-06-28 23:53
do you let the users know that they are being observed remotely?

 

junocinco
2016-06-28 23:53
has joined #ask-amanda-stockwell

 

desertcoder
2016-06-28 23:53
Yes. It seems more like BA work than actual UX. Just wondering what’s “typical”.

 

amandastockwell
2016-06-28 23:54
Usually I’ll say something generic like, “we may have other team members observing the sessions or reviewing after the fact” – Usually if you say there is a big group watching they get uncomfortable and won’t share as much!

 

amandastockwell
2016-06-28 23:54
Ah ok so this isn’t specific to Agile, I don’t think, but the lines between UX, BA, Product, etc. are all blurring

 

donna
2016-06-28 23:55
Sorry @desertcoder what’s BA?

 

desertcoder
2016-06-28 23:55
@donna: business analyst

 

donna
2016-06-28 23:55
^^ thanks

 

amandastockwell
2016-06-28 23:55
In general, I look at it like this: My team’s job is to understand the business goals, the people who will be using what we make, and what context they are in, and to make stuff that serves their needs. I don’t truly care who on the team does what, but often, my teams won’t have dedicated BAs

 

amandastockwell
2016-06-28 23:56
nor product strategists. so the crux of the user research and goal analysis and product planning is covered more by a UXer than a different person

 

aleshaarp
2016-06-28 23:57
@amandastockwell: do you include in your participant authorization the extent of who may see the session video footage (I record everything so I can focus on the participant and not my note taking, but that may not be your practice.)

 

amandastockwell
2016-06-28 23:57
But hey, if there is an engineer that is awesome at analyzing complaint logs, that’s awesome! more time for me to focus on other types of ux-y work

 

eileenca
2016-06-28 23:57
Any quick suggestions as to how to get good at analyzing workflows?

 

amandastockwell
2016-06-28 23:58
@aleshaarp: yep, but generically. Something to the effect of “this will be used for internal teams and note-taking purposes”

 

amandastockwell
2016-06-28 23:58
And on occasion we do actually request to use things publicly after the fact!

 

hawk
2016-06-28 23:58
Ok, after @eileenca’s question we’ll call this a wrap

 

amandastockwell
2016-06-28 23:59
@eileenca: do you mean describing a new workflow? Or analyzing a current flow to identify issues?

 

frankenvision
2016-06-28 23:59
Thanks @amandastockwell and @hawk this was great!

 

amandastockwell
2016-06-28 23:59
orrrr something else ha

 

amandastockwell
2016-06-28 23:59
Sure, thanks for joining!

 

amandastockwell
2016-06-29 00:00
@eileenca: truthfully there aren’t quick suggestions for either

 

eileenca
2016-06-29 00:00
I mean describing new

 

donna
2016-06-29 00:00
I would like to know about analyzing current workflows and identifying issues. if you have time

 

eileenca
2016-06-29 00:00
Me too, if you have the time

 

crystal
2016-06-29 00:00
Thank you for this session! I’m new to UX from Engineering background and really enjoy following all the great questions and fantastic answers.

 

hawk
2016-06-29 00:01
You’re really welcome @crystal – join us at http://ift.tt/1qs7rt7 if you haven’t already

 

eileenca
2016-06-29 00:02
Thank you Amanda and Hawk!

 

amandastockwell
2016-06-29 00:02
Sure. So for describing new workflows – there isn’t really a shortcut. You have to do the dirty work of figuring out users’ true problems/painpoints, opportunities to serve those, and creative solutions to get users where they want to be

 

lukcha
2016-06-29 00:02
You’re welcome, @eileenca!

 

amandastockwell
2016-06-29 00:02
For analyzing current workflows, my go-to is usability testing. You can do them remotely if you need to be speedy

 

amandastockwell
2016-06-29 00:02
and we can follow up on that in the forum!

 

hawk
2016-06-29 00:03
Very welcome @eileenca

 

hawk
2016-06-29 00:03
Thanks SO much Amanda, you’ve really nailed this

 

donna
2016-06-29 00:03
Thank you all – enjoyed the session.

 

amandastockwell
2016-06-29 00:03
Thanks to everyone for the engagement and questions! Please feel free to follow up!

 

aleshaarp
2016-06-29 00:03
Great session!

 

hawk
2016-06-29 00:03
and we really appreciate your time and expertise

 

anitatran
2016-06-29 00:03
Thanks all – very informative :slightly_smiling_face:

 

hawk
2016-06-29 00:03
thanks all for joining

 

lukcha
2016-06-29 00:03
This was a brilliant session. Lots of fantastic questions!

 

amandastockwell
2016-06-29 00:03
Thank you for organizing!

 

earlagray
2016-06-29 00:03
Thanks a lot!

 

kmpak
2016-06-29 00:03
has joined #ask-amanda-stockwell

 

aleshaarp
2016-06-29 00:04
And your ability to answer multiple threads in random succession. Impressive @amandastockwell

 

neiljorgs
2016-06-29 00:04
Thank you

 

amandastockwell
2016-06-29 00:04
Thanks to @hawk and @lukcha for helping me stay organized!
If you still have questions or want to continue the discussion, head over to the forum thread.

The post Transcript: Ask the UXperts: How Agile, Lean & Lean Startup Methodologies Affect UX Research — with Amanda Stockwell appeared first on UX Mastery.


by Sarah Hawk via UX Mastery

Heroku Alternative: Deploy Apps with Dokku on DigitalOcean

When Heroku announced their (quite reasonable) new limits for free apps, I realized that I would have to find another source of hosting for all the small, low-traffic projects that I currently have running on Heroku. Way back in the day, Heroku was totally free for apps that only required one dyno, but after years of abuse from jerks like me, they dropped that to eventually allowing free apps to run for 18 out of 24 hours per day (which is ok for low-traffic prototypes) and as of June 1, granting a shared pool of free hours.

Since I have such an unreasonable number of apps running on Heroku, I thought it was high time to try out Dokku. Dokku is a Heroku-like tool that allows you to deploy complex apps by simply pushing with Git. It supports Heroku buildpacks directly, so you can transition existing apps without difficulty, and has a number of plugins for datastores and other components. And, thankfully, Digital Ocean provides a pre-installed Dokku image that will spare you the trouble of installing Dokku yourself; you can just spin up a server and start Dokku-ing right away! This article will walk you through setting up a Dokku server on DigitalOcean with your own root domain and deploying a simple static site to it.

Differences between Dokku and Heroku

  • Dokku requires at least some comfort level with running your own servers; you may have to modify nginx configurations, manually configure some plugins, or turn to the system tools for debugging.
  • Dokku utilizes Docker, which is a fine platform but can add an extra layer of complexity to a server install.
  • Dokku requires root access to a VPS to install plugins, run commands, etc.

In short, you're going to need to do a bit more command line setup on Dokku than Heroku --- nothing you can't pick up along the way, but you might need to do some light reading.

Creating a Dokku Server on DigitalOcean

DigitalOcean logo

First, log in to DigitalOcean and follow this link to create a new server on DigitalOcean using the preinstalled Dokku app. Dokku requires at least 1GB of RAM, but $10/mo to host all your stuff is a pretty small price.

For your hostname, enter the base domain you want to use to host your apps. Default Dokku apps will appear at <appname>.<hostname> (for example, myapp.example.com). Make sure you own this domain and register it if you need to!

Continue reading %Heroku Alternative: Deploy Apps with Dokku on DigitalOcean%


by Adam Bard via SitePoint

The Best Nootropic Smart Drug for Entrepreneurs is Nutrition

Nootropics

For an entrepreneur, the most important tool is a fully functioning brain. This should be easy since we all come with a brain built in to our system, but sometimes they just don’t function as optimally as we’d like them to. Sometimes they need a little boost, and for some this means seeking out aid in the form of nootropics.

What are Nootropics?

Both nootropics and smart drugs are supplements taken to enhance cognitive function, but many have the misconception that they’re the same thing. In fact, true nootropics have no negative side effects and do no damage to your neuronal structure. Smart drugs, on the other hand, come with side effects such as irritability, mood swings, stress, anxiety, and adverse reactions to appetite and sleep (think Bradley Cooper in Limitless). They can also be addictive and do long-term damage to your health.

While nootropics may work for some entrepreneurs, and other individuals that need all the brain boost they can muster (students, for example!), are they really an ideal choice? Although there are more and more nootropic supplements emerging onto the market, there’s another natural way to boost mental performance that doesn’t require breaking the bank or taking supplements.

Good old-fashioned nutrition!

Eating for Mental Performance

Many ancient cultures, our ancestors, and those that don’t have easy access to pharmaceuticals still manage(d) to stay healthy in both body and mind by using food as medicine. Nutrition is an easy, natural and inexpensive way to keep the brain sharp and performing at its peak.

Here are some essential foods and nutrients that should be included in every entrepreneur’s diet.

Choline

Eggs

Choline needs to be eaten in order to produce a neurotransmitter called acetylcholine. This neurotransmitter in the nervous system is essential for concentration, memory and focus. It plays a key role in our ability to store short-term memories. The biggest source of choline is found in eggs because the yolk contains lecithin (in which choline is found).

Choline can also be consumed through organ meats (such as liver), milk, and whole wheat foods. An egg for breakfast could be the only nootropic you need for a working brain in the morning. Be careful not to eat too many though — they contain high levels of cholesterol.

Proteins

Protein is made up of amino acids, which then make up neurotransmitters such as serotonin and dopamine (the feel-awesome hormones). These hormones lead us to feel happy, stress-free, and with an enhanced sense of mental clarity — all of which contribute to high energy levels.

Protein can be found in lean meat, poultry, seafood, dairy products and eggs ⏤ essentially anything that is (or comes from) an animal.

Continue reading %The Best Nootropic Smart Drug for Entrepreneurs is Nutrition%


by Rebeka Bergin via SitePoint

Redux Authentication: Secure Your Application with Auth0

Redux is all the rage in the React community and beyond right now, and with good reason. It's a library created by Dan Abramov that brings sanity to handling unidirectional data flow and allows developers to use powerful development features like time travel and record/replay.

Sounds great right? Here's the rub: it comes at the price of needing to write more code. However, if you've had any experience maintaining large applications, you might know that data handling can become unwieldy and hard to manage. With Redux, we can have a clear view of the state of our application at all times and know exactly what our data is doing.

In this tutorial we're going to take a look at how to get a start at creating a real-life React + Redux application that authenticates users and calls a remote API for data. Our app will retrieve a list of Star Wars Jedi from a Node backend so we can display their names and photos. For authentication we're going to use Auth0 so that we can get up and running quickly and also easily get features like social login and multifactor authentication.

single jedi

We won't dive into the elementary concepts of Redux, so if you're new to the library, check out some of these great getting started resources:

The source code for the app we'll be building can be downloaded here.

Redux Authentication: Getting Started

Our React project for this tutorial will be written in ES2015 so we'll use Babel to transpile down to ES5, along with webpack to handle module bundling. Instead of setting things up from scratch, why don't we start with Dan's real-world starter example in the Redux repo. Grab a copy of that and install the dependencies.

npm install

Sign up for Auth0

The best way to do authentication for single page apps (like the one we're building) is to use JSON Web Tokens (JWT). JWTs provide a way to do stateless authentication against a RESTful API, and this offers many benefits over session and cookie-based auth. The downside is that rolling our own solution for JWT authentication can be tricky and error prone, but fortunately we can use Auth0 and not worry about any server or security implementation details.

If you haven't already done so, head over and sign up for a free Auth0 account. With the free plan we get 7,000 regular active users and can use two social identity providers.

After registering, follow the prompts to initialize your account. Keep in mind that you can have multiple applications under the same account, so select a domain name that is suitable to your situation---perhaps the name of your organization. As a first step, we need to set our localhost URL as an allowed origin. This can be done in the "Allowed Origins (CORS)" textarea.

auth0 dashboard

Set up the Web Server

Why don't we get the Jedi web server out of the way first. This just needs to be a simple RESTful API that returns our Jedis in the form of JSON data, and quick way to do this is with NodeJS using the Express framework. You can use any server-side language or framework you like, as long as JSON data is returned.

Note: The Star Wars purists will note that we're using "Jedis" as the plural form of Jedi throughout the application, but this isn't the correct pluralization. Rather, we should simply be using "Jedi". Maybe so, but I'm ok with it because it makes things easier in our app :)

First, initialize an app and install the dependencies:

mkdir server && cd server
touch server.js
npm init
npm install express express-jwt cors

We can provide all the code that our server will need in a single JavaScript file.

// server.js

const express = require('express');
const app = express();
const jwt = require('express-jwt');
const cors = require('cors');

app.use(cors());
app.use(express.static('public'));

// Authentication middleware provided by express-jwt.
// This middleware will check incoming requests for a valid
// JWT on any routes that it is applied to.
const authCheck = jwt({
  secret: new Buffer('AUTH0_SECRET', 'base64'),
  audience: 'AUTH0_CLIENT_ID'
});

var jedis = [
  {
    id: 1,
    name: 'Luke Skywalker',
    image: 'http://localhost:7000/images/luke-skywalker.jpg'
  },
  {
    id: 2,
    name: 'Anakin Skywalker',
    image: 'http://localhost:7000/images/anakin-skywalker.png'
  },
  {
    id: 3,
    name: 'Yoda',
    image: 'http://localhost:7000/images/yoda.png'
  },
  {
    id: 4,
    name: 'Obi-Wan Kenobi',
    image: 'http://localhost:7000/images/obi-wan-kenobi.jpg'
  },
  {
    id: 5,
    name: 'Mace Windu',
    image: 'http://localhost:7000/images/mace-windu.jpg'
  }
];

app.get('/api/jedis', (req, res) => {
  const allJedis = jedis.map(jedi => { 
    return { id: jedi.id, name: jedi.name }
  });
  res.json(allJedis);
});

app.get('/api/jedis/:id', authCheck, (req, res) => {
  res.json(jedis.filter(jedi => jedi.id === parseInt(req.params.id))[0]);
});

app.listen(7000);
console.log('Listening on http://localhost:7000');

We've got an array of Jedis and two endpoints to handle them. The first endpoint returns all of the Jedis, but only their id and name properties. The second endpoint at /jedis/:id returns a single Jedi, but also includes the image URL too. This second endpoint is the one that we are going to protect with our authentication middleware and have it limited to only authenticated users.

But how do we actually protect this endpoint? We're using express-jwt to create a middleware that looks for an incoming JSON Web Token and verifies it against a secret key that we provide. We can then apply this middleware to any of our endpoints---which we are doing with the second argument to the /jedis/:id endpoint---and only those requests that include a valid token with them will be allowed through.

The middleware itself is setup by supplying our Auth0 secret key and client ID to authCheck, and this is where you can provide the keys specific to your application. These keys can be found in the Auth0 management dashboard under applications.

The Jedi images are coming from a public directory on the server. You can grab the same images from the repo or you can include links to images from other sources in the data if you like as well.

With the server in place, let's verify that the API is working as expected. We can do this with a tool like Postman.

postman

If we go to the /api/jedis route, we're able to get the full list of Jedis as expected. However, if we try to get one Jedi, we aren't allowed to get the resource back because we aren't sending a token to the server.

postman invalid token

We'll see how to send tokens with our requests once we implement our API calls in the application itself, but essentially all we need to do is include it in an Authorization header using the Bearer scheme.

Setting up Redux

Auth0Lock

Auth0 accounts come with an awesome pre-built widget called Lock which greatly simplifies the process of actually logging into an app. We can get the JavaScript required for this widget from Auth0's CDN.

<!-- index.html -->

<!-- Auth0Lock script -->
<script src="//cdn.auth0.com/js/lock-9.1.min.js"></script>

<!-- Setting the right viewport -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />



Routing

We're going to limit our application to a single route for the sake of brevity. There are some authentication concerns when it comes to routing, such as limiting certain routes to only those users who are authenticated, but that's the subject for a future article. For now, let's keep things simple and define a single route.

// routes.js

import React from 'react'
import { Route } from 'react-router'
import App from './containers/App'

export default (
  <Route path="/" component={App}></Route>
)

This gives us a base route that uses a component called App.

Setting up the Actions

Reducers are at the heart of Redux, and they give us a clean and predictable way to change the state of our application. When using Reducers, we need to make sure that no data gets mutated. This gives us the benefit of being able to inspect every previous state of the data in our app, and it's an important concept in Redux.

While reducers are the crux, we still need actions to make things happen in the application. Let's put in all of the actions we'll need for our Jedis application.

Continue reading %Redux Authentication: Secure Your Application with Auth0%


by Ryan Chenkie via SitePoint