RubyConf 2015

El peligro de depender de gemas Ruby externas

Nikki Murray, Maggie Epps  · 

Transcripción

Extracto de la transcripción automática del vídeo realizada por YouTube.

- Hi everyone. Welcome, I'm Maggie. - And I'm Nikki. - So this came about because Nikki and I, we are both former social workers who found ourselves working together about a year ago at a small software consultancy, where we were responsible for maintaining a few different projects, and we were also responsible for billable hours.

We were really in a tightly driven, efficient environment. And we saw some of the challenges that came up both in this environment and as a result that we wanted to talk to you guys about. - So welcome to Gem use or Misuse and Going Your Own Way. I'm Nikki.

You can find me on Twitter @NikkiLizMurray. On github @jdax. My cats are on Twitter @nikkisCats. I'm a developer with Democrats. I work a lot making fun, interactive tools for voters to use. I'm owned and operated entirely by my cats. From left to right, Stormageddon, Dark Lord of All, Tom Waits, Didi, Destroyer of All Things Good and Pure.

- I'm Maggie. You can find all my handles there. Github, and then there's a blog that I used to write on, and may someday again. So I'm a software engineer at LaborVoices. LaborVoices provides global brands and their supply chains what has been missing, an early warning system based on direct feedback from workers by repeatedly polling workers through their mobile phones.

We help our customers obtain strong safety standards and decent working conditions, empowering workers through their own voices. I'm bad at elevator speeches, so I took that from our website. But what's really important for you guys to know is that I'm hiring, so if you have any interest in improving global labor conditions, and you happen to like Rails, maybe, feel free to find me or Tweet at me.

And this is Dolly, who you'll see again. - So the overview of what we're going over today is the importance of assessment is really key. What is needs assessment, how do you do needs assessment? Important in that is why we use gems. And how and why do we misuse gems? How should we go about assessing gems for fit? And what do we do if we find there is no gem that fits our needs? Importantly, that means how to do it yourself.

- So we're starting with the importance of assessment because this is really the thing that if you took nothing else away, we'd love you to take away. So it's remembering to accurately assess what your problem is and what your needs are before installing a gem into your system.

And we have this lovely quote, "Assessment is an ongoing process, "which is participatory, "that seeks to understand the service user and "their situation, and sets a basis for planning "how change or improvement can be achieved. " And so we didn't take that from a software development textbook.

We took it from a social work textbook. - So models of assessment is really common, and if you're going through social work school, how to do assessment with your users, the users of the service you're providing, and how to do assessment in your own team.

So the assessment process operates by being purposeful and specific. Figuring out what is appropriate for your situations. It needs to be dynamic and responsive. So you need to be flexible in your assessment. It needs to be based one engagement from individuals, and inclusive engagement at that.

So that means when you're doing the assessment of what you need your app or your gem to do for you, you need to have every stakeholder in the room with you. So that means users, that means design, that means marketing, that means whoever you think is going to have a hand in this project or is going to touch it at one point or another needs to be in the room.

Not only that, but it needs to be ethical and skilled. So your solution needs to find a way that achieves your goal ethically for everybody that touches it. It needs to be grounded in legal and policy context too. So if you were doing something with a healthcare company, if you're doing something with a policy company, you need to know the context in which your solution needs to be found.

So does it need to be HIPAA compliant? Does it need to be compliant with whatever rules a foreign country might have? It needs to be also empowering, so everybody needs to feel empowered to make the assessment, to make the calls. They need to feel that their voices are being heard in the assessment process.

It needs to highlight protection and safeguarding. So as you've probably heard in a few other talks, making sure that everybody involved has their privacy protected, has their anonymity protected, anything that your users or anybody else involved might find a key thing that they need to hold onto, make sure that that's protected in the assessment process.

It needs to be holistic and comprehensive, so think of every end case, every edge case, and think about any other cases that people might be using this service or product in. There needs to have support for decision making. So the people that are making the final decisions need to feel supported in that.

So if you're the programmer and you're making the final call on which gem you're using, or what gem you're gonna be building, you need to feel empowered that your bosses aren't going to come back and go, "Why did you use this?" So make sure you have those discussions and that they go both ways.

And it also in the end, needs to lead to future action. So don't have this meeting for weeks on end. Make sure that the meetings that you're doing this assessment in are focused, and that they come to a conclusion that ends with a final plan of action. - So what's a needs assessment? As you saw from the beginning of our talk, what really matters about this talk is that we want to avoid using the wrong gems or using gems recklessly.

So the first thing you need to do is really know what you need before you use a gem. So what does this look like? So it looks like concretely defining your problem. And it means thinking of the problem from as many angles as possible. Asking why it's a problem.

Is it a problem for your users? Is it a problem for somebody else on your team? Who is this a problem for and why does this matter? This goes back to getting a lot of opinions on it. Whether it's having everybody in a real room, having everybody in a slack channel, but just making sure that you really know who the stakeholders are and what they think about this problem.

And then considering your users, because they're always gonna be your stakeholders. So how will different solutions impact them? How will it change their lives? How will they react to this? And then sometimes we're approaching a problem, and we think of it as just one problem, but really it's five or six.

[ ... ]

Nota: se han omitido las otras 3.335 palabras de la transcripción completa para cumplir con las normas de «uso razonable» de YouTube.