Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » Dev team insights about quantitative findings

This thread is locked; no one can reply to it. rss feed Print
Dev team insights about quantitative findings
danieldlmt
Member #16,854
May 2018

Hello Allegro development team,

We’re from Federal University of Bahia (Brazil) and we conducted a research with some cross-platform libraries. The quantitative analysis we made is based on commits extracted from Allegro’s repository from 2011/12/01 until 2018/01/28.

We want to share with you our quantitative findings and we’d like to have your insights on this. We divided the research in three main topics and we enumerate some points we'd like your opinion.

Distribution of changes in platform-independent and platform-specific code

We found that Windows is the most changed platform you support, as shown below.

{"name":"Screenshot_from_2018_05_09_16_17_10.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/4\/94d3e441210b0e606f16612e8100b6da.png","w":414,"h":227,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/9\/4\/94d3e441210b0e606f16612e8100b6da"}Screenshot_from_2018_05_09_16_17_10.png

1. We’d like to know why do you think Windows is the most changed platform.
2. Also, we’d like to know if you have something to add about the distribution of changes among platforms in general.

Development team generalization and specialization in platforms

We found that about 50% of Allegro’s developers support two or more platforms, as shown in the table below.

{"name":"allegro2.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/2\/4226172348d887c34a1cae4b2b2b5301.png","w":559,"h":269,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/4\/2\/4226172348d887c34a1cae4b2b2b5301"}allegro2.png

Plus, we verified if the amount of generalist developers in platforms has grown with the pass of time in order to detect a generalization or specialization in platforms over time. We found that there is no generalization or specialization in platforms in Allegro's team, as you can see in the next graph.

{"name":"allegro3.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/5\/752c959a560746e3840a6952babb6e46.png","w":442,"h":269,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/5\/752c959a560746e3840a6952babb6e46"}allegro3.png

3. Is there a preference for generalist developers in platforms?
4. Do you consider that Allegro team is becoming more generalist or specialist in platforms over time?
5. Do you have something to add about the developer generalization and specialization in platforms?

Team division by device type (mobile and desktop)

We found that the Allegro's team is not divided in mobile and desktop team, as you can see below.

{"name":"allegro4.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/0\/d017032225c12e93ee6fb43cfe25f90d.png","w":516,"h":243,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/0\/d017032225c12e93ee6fb43cfe25f90d"}allegro4.png

But we detected that the proportion of devs that support either mobile or desktop platforms is clearly growing little by little over time, as shown bellow.

{"name":"allegro5.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/0\/f05c4cdc66bf33a1f7061566d4e51e55.png","w":400,"h":265,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/0\/f05c4cdc66bf33a1f7061566d4e51e55"}allegro5.png

6. Do you feel the team is really getting divided in mobile and desktop team? If yes, is it intentional or it is happening naturally?
7. Is there something you'd like to say about the team division by device type?

Let me know if you need any information.
We will be grateful if you can send us your insights.

SiegeLord
Member #7,827
October 2006
avatar

Interesting analysis. Here are some thoughts about your questions.

1. Windows is the only one of the platforms which has an option for a non-OpenGL renderer. When we add some graphics feature, we implement it for both OpenGL and Direct3D, and since OpenGL lives in the src/opengl directory and Direct3D lives in src/win directory, this may explain a bulk of the difference.

2. It seems about as expected, not much development on Linux as its a relatively more stable platform than all the other ones (except Windows).

3. It's important to be a generalist to be able to add new features, as sometimes it can be hard to convince others to implement the feature for you. Additionally, core developers are best positioned to fix bugs, and bugs happen on all platforms so in practice the developers will need to get familiar with multiple platforms.

4. For me, I definitely became more general as I purchased a device for all the platforms we support to be able to effectively address point 3.

5. Honestly, I think it's hard to judge any sort of time dependency from the few developers we have.

6. Mobile platforms require more effort to maintain, so I think it's a consequence of that more than any other effect.

7. I'm also a little skeptical about the time dependency here as well. Maybe could aggregate into larger buckets.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

danieldlmt
Member #16,854
May 2018

Thank you for your reply SiegeLord!

About the time dependency, we performed the temporal analysis with different window sizes initially: 12, 24, 36 and 48-weeks, but the results were very similar in all cases. We decided to use a window size of 24-weeks with 4-weeks displacement because we considered it enough time to a developer makes changes in all platforms he supports.

I was wondering if you consider that there is any use for specialist developers in the team or in the core team. What do think?

SiegeLord
Member #7,827
October 2006
avatar

I was wondering if you consider that there is any use for specialist developers in the team or in the core team. What do think?

For sure, there's plenty of platform-specific issues that can be solved without any interaction with other platforms.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Go to: