131,889 research outputs found

    Game-theoretic analysis of development practices: Challenges and opportunities

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Full text link
    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

    Full text link
    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
    corecore