Creating socio-technical patches for information foraging: a requirements traceability case-study

October 1, 2018

🔗 View page

📄 View document

After a human-robot interaction class in one of my last semesters of classes, I realized that I was into UI/UX. Like, really into UI/UX. In looking for a way to write my thesis in that field, I got to working with Dr. Nan Niu.

Granted, Dr. Niu works on software engineering. Specifically, requirements engineering. It wasn't quite UI/UX as I imagined it, but darn it if I didn't find it great anyways. Here's why: in my mind, both UI/UX and requirements engineering are about decoding people and building something for them. If you can empathetically get yourself in the shoes of the person you're building for, you can make something that works for them. In UI/UX, you're building a product. In requirements engineering, you're building a process.

And he convinced me of the importance of that process, too! I mean, think about it: if a civil engineer wants to build a critical piece of infrastructure -- say, a bridge -- they need all sorts of certifications and licenses. But if a software engineer wants to build some software that sits in critical infrastructure, they can just... do it. And one of the best ways to address that gap is building a process that lets flawed humans safely publish software. Process that doesn't let bad code get written and deployed.

And one of the best ways to ensure process? Tooling with process built-in. All that to say, I got really interested in tooling related to requirements engineering.

And, next thing I knew, I was getting into an esoteric field of information theory called information foraging theory. I kid you not, the theory is that people search for information in the same way they might forage for berries. They'll identify patches of berries and make decisions about whether to visit a patch and how long to stay there before switching to the next one. And people make the best decisions when they can accurately estimate the cost and benefit of each patch. Any time I bring that up at a party, I get a lot of funny looks. But I swear. It makes sense!

So I used principles of information foraging theory to build an algorithm that could retrieve valuable patches of information related to tasks that engineers were working on. Looking at a PR about the new home page? My tooling might retrieve conversations and code snippets about the home page to answer questions that come up. That kinda thing.

A graph showing relationships between people, questions, issues, and comments
A diagram from the paper, showing the algorithm creating a socio-technical patch

That algorithm formed the backbone of my paper, "Creating socio-technical patches for information foraging: a requirements traceability case-study," which was accepted at IEEE VL/HCC 2018!

To be honest, the actual talk was a mess. Through some confusion, I had a smaller time slot than I realized, so I ended up blasting through and losing my audience. I'm glad there's no recording of that. And hey. I still got to go to Portugal and meet some neat people.

And, I expanded on that paper to form my thesis that got me my Master's in CS.

I'm proud of that work! And though I didn't stay in software engineering or requirements engineering, I'm still glad I got to check it out. It's crazy how often I think about the messy process of working with messy and conflicting stakeholders to design something that works.

back