Resource:How to build a software development community in college
Contents
Intro
Creating software development communities in our universities is becoming a very important step towards improving our institutions and aiding the standard teaching methods. Technology does not wait, and neither should students. Many professors and curriculums are still behind on emerging technologies so by creating these communities not only are we provoking change, but we are also giving students opportunities to go beyond what is being taught. We interviewed Isaac Griswold-Steiner, a fellow from Texas Tech University, to get some pointers on how to start a software development club.
Need and Goal
There is a vast difference between what universities teach and what the reality is in the software industry. In the courses, we are usually taught more theoretical aspects of the topics, so the tools and the interactions with the teammates are unusual for the new graduates. A software development community provides the students the opportunity to learn the tools used in the software sector, get hands-on experience on them and meet with other people who are interested in learning about these things.
Academic Permission
Getting an academic permission to form a club might have different conditions and processes for different universities. You will need some board members in general and an advisor professor. Keeping the number of core officers as small as the administration lets is a good approach since it will decrease the amount of bureaucracy. Choosing an advisor professor who will try to contribute rather than control will be very helpful.
Support
As mentioned in the “cost” section, a software development community does not essentially need financial support. It rather needs the support of people who want to share their knowledge, engage in projects, give workshops etc. First of all, it is necessary to enroll students in the community. To do it you can start by showing them the advantages of learning practical skills, what they will do with those, and how it is valuable for the industry also to find an internship. Then it is crucial that you find team leaders, knowledgeable people in their areas who are also good at teaching, and show them how much they can learn by teaching in the community. Finally, just keep the students enrolled by teaching different things, and engage them often, so that everyone will start seeing the results of their efforts. In addition to this, a good way to reach out to professionals who can share their knowledge is to use the connections that the members of the community have from their internships.
Cost
Starting a software development community does not entail high costs. Internet, power outlets, and personal computers is all that is required to begin with. There are many free platforms that can teach you the basics of coding, so it is not necessary to invest money in e-courses. Food, such as pizza, for certain events requires money, but everyone can pitch in a bit to cover the costs. As the community starts expanding there might be interest in buying new hardware such as powerful computers or virtual reality headsets, then it will be necessary to find sponsors from your faculty or somewhere else, but it is always possible.
Leadership
Leaders should not only have coding knowledge, but they should also be able to communicate. Leaders need to be good at looking from other students’ perspective. For a small group of people, having a small number of leaders is the best since it will decrease the bureaucracy load. For engaging people of larger groups into the community, you will need more leaders as they will be interacting with smaller group of people and this will increase the impact made on students. Keep in mind that the old core group will not be there forever, so you need to train new leaders. Keep an eye on promising young members of the community and give them small, experimental leadership roles. You can pick the future leaders and train them by using this strategy. This will ensure that the club will continue even after you have graduated, and that you have started something that will have a lasting impact.
The club can be organized into teams of students who work on their own projects. The core leadership team can bring together all the teams once in a while to discuss things like best coding practices and have sessions to learn how to use relevant tools.
Launch
To go from a group of friends meeting periodically to write code together to an actual university club or community, make sure to promote the community throughout campus, either by having info sessions, writing emails for school community, or posting in social media. For best results, do all of the above, and be creative about it! Pizza always attracts people for those first launch days! Once people are interested and it is time to begin, have icebreakers and social events. Do not make the community boring with only lectures, that's what the students do all day. Many times during these social events the students start making groups of friends and start getting ideas for projects, this is where we want them! If the launch is successful, it will create hype for the rest of year and the students will thank you for it.
Lessons learned and tips for others
The process of forming and maintaining the community may be painful and you may not have the same approach as the administration of your university. In this case, be more diplomatic about making changes and push the people in your community in the right direction nicely. Having problems with the administration will probably cause you not to have funding and even further problems.
While it is easy to get students interested in the club and have a good response in the initial stages, it is often very hard to retain members for long. Ensure that the club is active and that you get people together frequently.
When you organise workshops, make sure that the participants get their hands dirty and use what they learned during or after the workshop. You can hold coding events for getting people to work on a project of their choice.