131,889 research outputs found
Game-theoretic analysis of development practices: Challenges and opportunities
Developers continuously invent new practices, usually grounded in hard-won experience, not theory. Game theory studies cooperation and conflict; its use will speed the development of effective processes. A survey of game theory in software engineering finds highly idealised models that are rarely based on process data. This is because software processes are hard to analyse using traditional game theory since they generate huge game models. We are the first to show how to use game abstractions, developed in artificial intelligence, to produce tractable game-theoretic models of software practices. We present Game-Theoretic Process Improvement (GTPI), built on top of empirical game-theoretic analysis. Some teams fall into the habit of preferring “quick-and-dirty” code to slow-to-write, careful code, incurring technical debt. We showcase GTPI’s ability to diagnose and improve such a development process. Using GTPI, we discover a lightweight intervention that incentivises developers to write careful code: add a singlecode reviewer who needs to catch only 25% of kludges. This 25% accuracy is key; it means that a reviewer does not need to examine each commit in depth, making this process intervention cost-effective
Learning Business Process Simulation Via Experiential Learning
The use of discrete event simulation as a process analysis and improvement tool is no longer limited to industrial engineering curricula. With advancements in desktop computing power, we have seen user-friendly simulation software packages become available (e.g. ProModel, Arena, ProcessModel). However, we have found it desirable that students still learn the very basic concepts behind these simulation models in order to better understand their development and use. We present a simple classroom game that teaches students the basic discrete-event simulation concepts and processes without requiring them to learn all the underlying mathematics and scientific theory
A market based approach for resolving resource constrained task allocation problems in a software development process
We consider software development as an economic activity, where goods and services can be modeled as a resource constrained task allocation problem. This paper introduces a market based mechanism to overcome task allocation issues in a software development process. It proposes a mechanism with a prescribed set of rules, where valuation is based on the behaviors of stakeholders such as biding for a task. A bid process ensures that a stakeholder, who values the resource most, will have it allocated for a limited number of times. To observe the bidders behaviors, we initiate an approach incorporated with a process simulation model. Our preliminary results support the idea that our model is useful for optimizing the value based task allocations, creating a market value for the project assets, and for achieving proper allocation of project resources specifically on large scale software projects
Video Game Development in a Rush: A Survey of the Global Game Jam Participants
Video game development is a complex endeavor, often involving complex
software, large organizations, and aggressive release deadlines. Several
studies have reported that periods of "crunch time" are prevalent in the video
game industry, but there are few studies on the effects of time pressure. We
conducted a survey with participants of the Global Game Jam (GGJ), a 48-hour
hackathon. Based on 198 responses, the results suggest that: (1) iterative
brainstorming is the most popular method for conceptualizing initial
requirements; (2) continuous integration, minimum viable product, scope
management, version control, and stand-up meetings are frequently applied
development practices; (3) regular communication, internal playtesting, and
dynamic and proactive planning are the most common quality assurance
activities; and (4) familiarity with agile development has a weak correlation
with perception of success in GGJ. We conclude that GGJ teams rely on ad hoc
approaches to development and face-to-face communication, and recommend some
complementary practices with limited overhead. Furthermore, as our findings are
similar to recommendations for software startups, we posit that game jams and
the startup scene share contextual similarities. Finally, we discuss the
drawbacks of systemic "crunch time" and argue that game jam organizers are in a
good position to problematize the phenomenon.Comment: Accepted for publication in IEEE Transactions on Game
Having Fun in Learning Formal Specifications
There are many benefits in providing formal specifications for our software.
However, teaching students to do this is not always easy as courses on formal
methods are often experienced as dry by students. This paper presents a game
called FormalZ that teachers can use to introduce some variation in their
class. Students can have some fun in playing the game and, while doing so, also
learn the basics of writing formal specifications in the form of pre- and
post-conditions. Unlike existing software engineering themed education games
such as Pex and Code Defenders, FormalZ takes the deep gamification approach
where playing gets a more central role in order to generate more engagement.
This short paper presents our work in progress: the first implementation of
FormalZ along with the result of a preliminary users' evaluation. This
implementation is functionally complete and tested, but the polishing of its
user interface is still future work
- …