Summer 2020 Python For Oracle scripting Project
In the summer of 2020, the MIS Academic and Research Technologies Group (ARTG) worked with 5 MIS graduate students who developed scripts and software in Python to administer our Oracle RDBMS servers for instructional purposes.
This primarily included re-architecting and re-writing legacy administrative scripts and code in Python 3, making use of relevant libraries like cx_Oracle, configparser, argparse, logging and csv. To maximize code quality and maintainability, developers applied the Don't Repeat Yourself principle to their coding, wrote unit test code (in pytest) to ensure their functions would continue to work as intended after refactoring, and completed Docstring comments for new functions they developed. Students also had to learn their remote linux-based development environment consisting of CentOS 7 w/ MATE, JetBrains PyCharm Community, Oracle SQL Developer, Oracle RDBMS 19c and x2go.
Developers worked collaboratively in our private GitHub Teams repository, using the GitFlow Workflow model of branching and merging. Developers would submit their work as a pull request and engage in a code review process, performed by our product owner, project sponsor, or a peer. Contributors' code would either be accepted and merged into the appropriate branch, or iteratively developed based on the review process.
In addition to the technical platforms being used, these students engaged in and executed our project management process. Student project managers made use of GitHub Issues and kanban-based GitHub project boards to manage the status and progress of work to do, work in progress and work completed. Project managers broke down new work items into Issues prior to each sprint planning meeting, assigned work items, conducted daily stand-up meetings with the developers, and held a sprint review meeting with retrospective at the end of each sprint. We completed 4 2-week sprints and a project closing mini-sprint.
Project Team
ARTG Team
MIS Academic and Research Technologies Group members were responsible for providing guidance, feedback and review for students participating in this project, as well as maintaining communication channels, development environments, code repositories and our git remoting providers.
Our product owner was responsible for establishing code quality standards, performing code reviews, ensuring code developed achieved its intended goals, and serving as a subject-matter expert on Oracle RDBMS, Python and our user/data administration requirements.