Tabs vs. Spaces and Cause vs. Effect

Stack Overflow of the “full stackoverflow programmer” fame just published a developer survey. Among the items was a question asking developers, what they prefer for indenting their code: Tabs or spaces?

The majority of developers prefers tabs over spaces by a reasonable margin. What worries me, though, is the conclusion or the “trend” that the summary writer sees in the data: That more experienced developers prefer spaces over tabs.

Continue reading

Having Fun Thinking About AI Challenges

“AI” (or just smart algorithms, if you will, where smart will be plain in a few years and dumb in 10 years) is on the rise, no doubt about it. As a consequence, I’ve been having fun with “AI challenges” of the sort: Could a computer figure this out? As an example, take a look at the advertisement below. It is for a conference of University chancellors in Germany (administrative leaders of their universities). Could a computer figure out the disconnect between the depicted young people, presumably students, and the more advanced-in-years chancellors of their universities?

Continue reading

Founders vs. Success vs. Home-runs

A student of mine pointed me to this article about who founds companies. It is a well-known fact (or at least lore as I have no reference at hand) that the highest success rate as a founder is with those around age 40 (38 according to the article). At that age, a founder has worked in his or her industry, knows it well, is connected, and probably has a reasonable business idea to begin with.

The article referenced above, however, wrongly suggests the next big-time entrepreneur will be one of those fourty-somethings. Maybe. But statistically, despite the high success rate, not likely. Why? Because business ideas that someone at that age typically comes up with are “reasonable” and “rational” and “rooted in reality”. Because they are based on a lot of experience. Which may well blind the entrepreneur to the more far-out ideas that, if successful, provide the home-runs that VCs are looking for.

Continue reading

The Five Stages of Open Source Volunteering

Abstract: Today’s software systems build on open source software. Thus, we need to understand how to successfully create, nurture, and mature the software development communities of these open source projects. In this article, we review and discuss best practices of the open source volunteering and recruitment process that successful project leaders are using to lead their projects to success. We combine the perspective of the volunteer, looking at a project, with the perspective of a project leader, looking to find additional volunteers for the project. We identify a five-stage process consisting of a connecting, understanding, engaging, performing, and leading stage. The underlying best practices, when applied, significantly increase the chance of an open source project being successful.

Keywords: Crowdsourcing, open source software, open source communities, volunteering process

Reference: Riehle, D. (2015). The Five Stages of Open Source Volunteering. In Crowdsourcing. Li, Wei; Huhns, Michael N.; Tsai, Wei-Tek; Wu, Wenjun (Editors). Springer-Verlag, 2015, 25-38. Republished from The Five Stages of Open Source Volunteering. Friedrich-Alexander-Universität Erlangen-Nürnberg, Dept. of Computer Science, Technical Report, CS-2014-01, March 2014. Erlangen, Germany, 2014.

The paper is available as a PDF file and as HTML on this site.

Communication in Firm-Internal Global Software Development with China

Abstract: Globally distributed software development projects are on the rise. However, 69% of cross-regional projects fail completely or partially, because of lack of cross-cultural understanding. This paper presents a qualitative study of the impact of communication on Global Software Development (GSD) within firms due to cultural differences. In particular, we provide a model of problems and solutions related to communication of German/Chinese and American/Chinese collaborations in GSD. The model was derived using grounded theory to study six globally distributed software development projects. The results may not only help companies understand cultural problems, but also help them overcome these problems. To this end, we discuss the solutions adopted by the multinational software companies that we studied.

Keywords: Global software development, globally distributed software development, collaboration with China communication, trust

Reference: Bilal Zaghloul, Dirk Riehle, Minghui Zhou. “Communication in Firm-Internal Global Software Development with China.” In Proceedings of the 6th International Conference on Software Business (ICSOB 2015). Springer Verlag. Page 132-138.

The paper is available as a PDF file.

Do what you are great at rather than follow your passion?

Interesting commencement speech by Ben Horowitz. When I attended Stanford, I’d regularly listen to the VFTT (View from the Top) speeches of well-known entrepreneurs and executives. I quickly got bored, first, and then upset, second, when these speeches all seemed to be one long slog of follow-your-passion (and everything will work out) talks. “Give me some operational meat,” I’d think to myself. I wanted to hear about real problems and real solutions rather than yet another high-minded speech.

Since then, however, I’ve actually warmed up to the concept of following your passion, as I have seen my student startups struggle when they took something on, outside their tangible realm of experience, because the market opportunity was so luring. Horowitz argues that people should pick up, as business ideas, something they are great about, rather than following their passion. I think this can only work if there is fun in doing or operating things, so what you are great at is something you’ll eventually get passionate about.

Inner Source in Platform-based Product Engineering

Abstract: Inner source is an approach to collaboration across intra-organizational boundaries for the creation of shared reusable assets. Prior project reports on inner source suggest improved code reuse and better knowledge sharing. Using a multiple-case case study research approach, we analyze the problems that three major software development organizations were facing in their platform-based product engineering efforts. We find that a root cause, the separation of product units as profit centers from a platform organization as a cost center, leads to delayed deliveries, increased defect rates, and redundant software components. All three organizations assume that inner source can help solve these problems. The article analyzes the expectations that these companies were having towards inner source and the problems they were experiencing or expecting in its adoption. Finally, the article presents our conclusions on how these organizations should adapt their existing engineering efforts.

Keywords: Inner source, product line engineering, product engineering, software platforms

Reference: Dirk Riehle, Maximilian Capraro, Lars Horn, Detlef Kips. “Inner Source in Platform-based Product Engineering.” Friedrich-Alexander-Universität Erlangen-Nürnberg, Dept. of Computer Science, Technical Report, CS-2015-02. Erlangen, Germany, 2015.

The paper is available as a local PDF file and also on FAU’s OPUS server.