Please submit to the Fifth International Workshop on Games and Software Engineering (GAS 2016), a workshop in conjunction with ICSE 2016 in Austin, Texas, USA. The submission deadline is January 22, 2016 (as always, please check the webpage for any extensions). I’m a member of the Program Committee.
GAS 2016 explores issues that crosscut the software engineering and the game engineering communities. Modern games entail the development, integration, and balancing of software capabilities drawn from algorithm design and complexity, artificial intelligence, computer graphics, computer-supported cooperative work/play, database management systems, human-computer interaction and interface design, operating systems and resource/storage management, networking, programming/scripting language design and interpretation, performance monitoring, and more. Few other software system application arenas demand such technical mastery and integration skill. Yet game development is expected to rely on such mastery, and provide a game play experience that most users find satisfying, fun, and engaging. Computer games are thus an excellent domain for which to research and develop new ways and means for software engineering.
Please submit to the First International Workshop on Bringing Architecture Design Thinking into Developers’ Daily Activities (BRIDGE 2016), a workshop in conjunction with ICSE 2016 in Austin, Texas, USA. The submission deadline is January 22, 2016 (as always, please check the webpage for any extensions). I’m a member of the Program Committee.
In software engineering there has traditionally been a distinction between high-level architecting and low-level implementation activities such as coding. Those who are developing and maintain the software are often not engaged in early design phases of the software; junior software programmers tend to lack design thinking and architectural skills. On the other hand, architects are often blamed for not knowing how to write good code or not being engaged in low-level (often technical) challenges of implementing a software system. This causes a knowledge gap which results in software quality issues such as an implementation that is drifted from initial design, missing architectural choices in the code or incorrect implementation of architectural decisions.
The continuous shift towards reducing upfront architecture design efforts, and the popularity of practices such as test-first development, highlight the importance of bridging the software implementation practices with new architecting notions, practices and tools. BRIDGE’16 aims to bring the community of architects, developers, and testers together to identify and formulate challenges related to designing, implementing and maintaining the architecture.
Research, position, and experience papers are invited on any topic that addresses the intersection of architecture and implementation.
I presented the following keynote at the International Symposium on Empirical Software Engineering and Measurement (ESEM 2015).
We live in the golden age of data. In industry, data science is more popular than ever. People with data science skills are in high demand. In this talk, I will shed light on the emerging roles of data scientists. I will distill some of the lessons learned from doing empirical research at Microsoft as well as observing successful data scientists into what I call the lenses of empirical software engineering. You haven’t seen anything until you’ve seen everything.
I presented the following keynote at the Brazilian Software Engineering Symposium (SBES 2015).
There is a new kid in town. Data scientists now help software teams to infer actionable insights from large amounts of data about the development process and the customer usage. To understand this new role, we interviewed and surveyed data scientists across several product groups at Microsoft. In this talk, I will motivate the need for data analytics, introduce questions for data scientists, and characterize how data scientists work in a large software companies such as Microsoft. I will highlight opportunities for researchers, practitioners, and educators.
Empirical software engineering has produced a steady stream of evidence-based results concerning the factors that affect important outcomes such as cost, quality, and interval. However, programmers often also have strongly-held a priori opinions about these issues. These opinions are important, since developers are highly-trained professionals whose beliefs would doubtless affect their practice. As in evidence-based medicine, disseminating empirical findings to developers is a key step in ensuring that the findings impact practice. In this paper, we describe a case study, on the prior beliefs of developers at Microsoft, and the relationship of these beliefs to actual empirical data on the projects in which these developers work. Our findings are that a) programmers do indeed have very strong beliefs on certain topics b) their beliefs are primarily formed based on personal experience, rather than on findings in empirical research and c) beliefs can vary with each project, but do not necessarily correspond with actual evidence in that project. Our findings suggest that more effort should be taken to disseminate empirical findings to developers and that more in-depth study the interplay of belief & evidence in software practice is needed.
[click for more details…]
Creating and running software produces large amounts of raw data about the development process and the customer usage, which can be turned into actionable insight with the help of skilled data scientists. Unfortunately, data scientists with the analytical and software engineering skills to analyze these large data sets have been hard to come by; only recently have software companies started to develop competencies in software-oriented data analytics. To understand this emerging role, we interviewed data scientists across several product groups at Microsoft. In this paper, we describe their education and training background, their missions in software engineering contexts, and the type of problems on which they work. We identify five distinct working styles of data scientists: (1) Insight Providers, who work with engineers to collect the data needed to inform decisions that managers make; (2) Modeling Specialists, who use their machine learning expertise to build predictive models; (3) Platform Builders, who create data platforms, balancing both engineering and data analysis concerns; (4) Polymaths, who do all data science activities themselves; and (5) Team Leaders, who run teams of data scientists and spread best practices. We further describe a set of strategies that they employ to increase the impact and actionability of their work.
[click for more details…]