Skip to content

Latest commit

 

History

History
102 lines (64 loc) · 11.3 KB

readme.md

File metadata and controls

102 lines (64 loc) · 11.3 KB

Fall 2021 Notes

The description below, while mostly accurate, is not accurate to fall 2021.

See this document for the fall 2021 dev application: apply.acmutd.co/dev.

See this document for the fall 2021 dev challenges: content.acmutd.co/dev-challenges-21f

Association for Computing Machinery Development

About

ACM Development is the newest division of ACM. Keeping to the culture of autonomy and innovation being key in an individual's role, in this division we provide our team the independance to follow their passion in developing the next generation of software that powers the community to new heights. Learn how to join at the bottom.

What do we do?

ACM Development will follow two primary avenues of growth.

  • The first will be building tools that improve the workflow of current ACM officers. The purpose here is to simplify the routines and tasks that our hardworking officers do and allow them to spend their time better engaging the target audience. Popular projects that already fall into this category include the ACM Discord Bot and TrackIT. Both tools are designed to help officers execute their duties in a more effective manner allowing for us to have much greater productivity.
  • The second will be to build software whose target audience is the UT Dallas student community. In this situation, we will strive to better understand the needs of fellow students and design software that targets the issues they face. This will allow for ACM to have a stronger reputation on our campus as the leading forerunner for technology that solves the everyday student problem. An extremely well used and widespread example of a project that falls into this category would be UTD Grades. The goal here is to support the overall student community and build a strong software stack used by thousands.

What skills will we develop?

Within the ACM Development environment you will gain the necessary skills to work in an agile team that writes code which will eventually make its way into production. During your time in ACM Development, you will learn skills such as choosing ideal frameworks and languages, operating CI/CD pipelines when going from the development to the production phase, designing application with additional priorities such as security, reliability and extensibility. Being part of a top-notch team in ACM Development will provide you with opportunities that are not part of a typical university curriculum and allow you to explore cutting edge technologies.

In addition to growing your technical prowess, you'll also have several opportunities to build leadership and product management skills. Our teams operate over timelines that extend beyond a single semester and the scope of our projects impact many students and therefore there are many valuable avenues to explore the entrepreneurial aspect of software development too.

What's the timeline like?

The standard we are setting for projects designed by ACM Development will be to go from start to MVP in under a semester. Project planning and proposal submission will happen in the transition between semesters and the expectation is that we have demoable material every two weeks. Projects upon completion that are received well by the ACM and student community can be continued to be enhanced in future semesters.

Where are current projects?

All current projects and code written by ACM Development are stored in the ACM Organization on GitHub. For reference of what a project managed under ACM Development will look like in terms of branching strategies, PR management, documentation, issue reporting/labelling, etc refer to TrackIT.

Why ACM Development?

ACM Development seeks to provide the resources and support necessary to empower developers to create projects that leave a long last impact upon the student community. In addition to providing a solid structure and timeline, ACM will leverage its expertise to promote, share and grow the software solutions developed by our teams. Furthermore, we provide a collaborative environment with fellow developers who share a common unified goal.

Team

What is the team structure?

ACM Development will consist of the Director of Development, a team of Dev Officers and additional developers on individual projects. Each project managed by ACM Development will be run by a single Dev Officer who may at their discretion have additional developers working together with them on parts of the project.

Director of Development

ACM Development will consist of one Director of Development representing the team on the ACM Board. The responsibilities of the Director include:

  • Communicating across Dev Officers to determine big picture progress and growth of project
  • Working with ACM Divisions to perform requirements engineering and translate business requirements to ordered technical specifications
  • Assign relevant work across different ACM Development Projects to relevant officers for completion
  • Provide adequate resources and support for Dev Officers to maximize their success and empower ACM through their development
  • Explore big picture project life cycles and assist Dev Officers in innovating to collaborate on larger goals

Dev Officer

Each Dev Officer will be expected to lead a single project from conception to conclusion each semester. Being a Dev Officer is an elevation of role from just a developer. The privelage of leading an entire project will mean that there are additional responsibilities. The responsibilities for each Dev Officer include:

  • Design a proposal for a feasable project that supports one of the two pillars of ACM Development. Proposal must include both information on the practical usage of the application as well as the technical requirements
  • Present an estimated timeline for completion of the project (maximum of one semester) MVP should be complete by the 10 week mark.
  • Work with any additional developers how would like to take an interest in coding for ACM
  • Demo project every two weeks to show completion of new features to the Director of Development and any other interested officers
  • Be responsible for all aspects for one individual project
  • Document project for future use
  • In addition to working on their personal projects all dev officers will be expected to help maintain existing ACM codebases such as the general ACM Website.
  • General tasks to update, clean and maintain existing projects will be directly assigned to Dev Officers by the Director of Development or the ACM Board of Directors and must be completed within a week.
  • The general expectation is that each Dev Officer will split their workload in a 70/30 balance where 70% of their time is spent completing their individual project and the remaining 30% of time on assigned tasks.
  • It is important for Dev Officers to continually innovate within their position and take their project to newer heights by thinking about how to continue building on it with additional features after the end of each semester.

Dev Officers will receive strikes if any of the following conditions are violated:

  • Failure to show demo with changes in a 2 week sprint, sometimes we understand that exams and assignments can get in the way and therefore each Dev Officer will have a full one week interval to present their updates.
  • Failure to complete any task assigned by Director of Development within a one week time period.
  • Failure to communicate to in a timely manner (48 hours) to any messages from the Director of Development
  • Failure to comply with set of pre-determined requirements on managing project timelines, code requirements, documentation requirements, etc.

ACM Development seeks to provide everyone the opportunity to contribute no matter how small their contributions to support the culture of innovation in our organization. However, we recognize that individual projects need leadership and guidance from both a technical and organizational perspective. ACM Development looks to our Dev Officers to take on that role. As with any officer role, the process to join is selective to ensure that we have the necessary talent and passion within the team to see a project from start to end. Each Dev Officer can at their discretion choose to work with any other developer on their project to see it to completion. We encourage the ACM community to support our projects and know that our Dev Officers would appreciate the time invested by fellow developers.

Developer

Each project in ACM Development involves working with a team of qualified developers. As a developer your responsibilities include working on a specific portion of a project as assigned by the leading Dev Officer. Our projects have a varying number of developers from 2-6 depending on the scope and longevity of the project. Our developers are expected to come in with a degree of pre-requisite knowledge regarding the tech stack being used & should have prior experience working in a team setting. We work closely with our fellow programs ACM Projects and ACM Research to ensure that every student finds the right fit for their talents and expertise level. Being a developer at ACM Development involves the following set of responsibilities

  • Clear communication with the Dev Officer running the project.
  • Complete assigned tasks, collaborate during team meetings, effectively document & participate in the standard agile environment.
  • Be able to contribute a minimum of 5-6 hours of time per week on the project. We understand that there are other commitments present and therefore this requirement is flexible during times when midterms/finals arise. However, it is important to communicate any changes to your schedule in advance.

Being a developer in ACM Development is more than just fulfilling a set of responsibilities. You will be working closely with the rest of the team to learn how to architect new features, design and plan the extension of a project's scope over time and engage with developers/officers from other teams to integrate services closely to build a powerful set of offerings for the community. As part of the ACM Development family, your interests and goals are our interests and goals and therefore we seek to cultivate a strong environment of cohesive collaboration that prioritizes individual growth just as much as product growth.

Join

How to join

Thank you for your interest in being a part of ACM Development. We offer two different roadmaps for joining. One for students with a high level of expertise in product architecture to become Dev Officers and a secondary route for students looking to gain more experience by first joining as a developer. The process for joining both is a multi-stage application process.

Read more about the process below

Questions

Sometimes you may have additional questions. If the answer was not found in this readme please feel free to reach out to the Director of Development for ACM

We request that you be as detailed as possible in your questions, doubts or concerns to ensure that we can be of maximum assistance. Thank you!

ACM Development