From May to December 2022, I worked in the Rapid Prototype Design Unit (RPDU) within the Ontario Public Services' (OPS) Ministry of Public and Business Service Delivery (MPBSD), formerly the Ministry of Government and Consumer Services. My work was primarily on low code applications though there were also some custom code projects. I created applications dedicated to increasing productivity and convneience, as well as encouraging employee engagement.
The RPDU is a unit within the OPS, under the MPBSD. The purpose of the unit is to deliver prototypes and applications using low code.
Below is a video that I helped to create (and voice) with one of my project teams that explains what low code is and its purpose. I also explain it briefly below the video.
"Low code" is a method of minimising the use of code when developing an application. It simplifies the process so that people with little or no experience with code can create their own application. For more experienced developers, it can be simpler to connect various resources together to create a more complex application.
In the RPDU, many applications were developed using this low code approach, using the resources and tools provided by the Microsoft Power Platform (external site). Some examples of low code use include a World Cup charity application and an "eSignature" application (Drop the Pen). Both applications take advantage of low code for rapid development with the user interface (UI, Power Apps) and backend functions (Power Automate, Dataverse).
Despite being a primarily remote position, much of the work was collaborative and I ended up enjoying my time working with my colleagues and getting to know them while I worked in the RPDU. Regular meetings encouraged collaboration and helping each other as we worked.
Outside of our typical workload, the RPDU also encouraged co-op students to develop their GitHub profiles and personal portfolios to help improve their standings for when they apply to future jobs. We also had multiple events with a similar purpose that took place in the larger Enterprise Technology Delivery (ETD) Division. These included writing cover letters and resumes (with a focus on applying to OPS positions), as well as more general career goals and planning.
Communicate with a client through various mediums (oral or written communication routes) while developing the product, from start to finish.
The final product is completed and delivered (before the end of my work term), and the RPDU client satisfied with the product. I extended this from the summer into the fall 2022 term, as it continued to be a relevant goal to strive towards.
While I did not complete projects in the summer term, clients were satisfied with the progress made within that time frame and the projects were near completion. I also learned how to best receive and record client input to apply any relevant changes and adjustments to the appropriate projects.
The RPDU Portal and Intake service, a website built using custom code to give the RPDU an online presence, was near completion around the end of the summer term. The summer term team created several pages, as well as a Microsoft SQL database containing information in multiple tables. Regular meetings with our client - our supervisor - kept us focused on his wishes as we worked. The team for the fall term worked to refine the website to ensure it is accessible and well-organised.
The World Cup, a low code application developed using the Microsoft Power Platform, was around halfway complete (or more) at the end of the summer term. The team met relatively regularly with our busy client (Scott Bolton, the CIO of the ETD Division) and quickly adopted any changes he requested from us. Our first launch of the application was October 27, 2022. It was a day later than our goal due to unexpected technical issues, but my team and I quickly fixed them to be on time. Our client's requirements for the application turned out to be more work than anticipated, yet we were able to stay on track and deliver a decent product.
The first week or so after the initial launch remained busy, since users sent us plenty of feedback. Despite the quantity, the low code nature of the application allowed us to make changes quickly and update it in a timely manner for the users.
One challenge in consulting and communcating with the client for a given project was simply that the client was busy. After all, they had their own work along with supervising and communicating with other projects. This meant that taking notes was more important, so that my teams could stay on track without constantly discussing a project with the client. Whenever I met with a client, I made sure to record any important details and share it with my team so that we were all on the same page.
Keeping up communication with a client and following their wishes is a key element in any work environment. Even if a person is not a "client," as in a person outside of a team working on a project, but rather a superior or team member, any use of communication is beneficial to other potential scenarios. I found that this practice helped me develop and improve skills for communication. In my experience, the important skills are quick, clear note-taking and clarifying any confusion as soon as possible.
Complete a project (before the end of the summer 2022 term) while using Power Apps and/or Power Automate at some point in the development process
Power Apps and/or Power Automate was used during and aided in successfully completing a project (and delivering the product)
I did not meet my goal in the timeline I gave myself. However, as mentioned previously, my team for the World Cup application delivered the product on October 27, 2022 and completed all its related activities on December 19, 2022 (a day after the World Cup ended). I consider this goal moderately successful, since I used both Power Apps and Power Automate for a project that was used in a real-world situation (employee engagement).
Additionally, as a combination between custom and low code, I used Power Automate for a part of the Portal and Intake Service project. It was a Power Automate flow that started whenever a specific Microsoft Form received a new submission and updated a Microsoft SQL database table.
Occasionally, low code was challenging to work with due to its limitations when performing more complex tasks. However, the complexity of these tasks were due to their specificity rather than a lack of versatility in the low code. Each challenge had either a solution or a work-around while using the low code platform.
Being able to use a new tool - low code - with no experience before my work term is a useful demonstration of my ability to learn new things quickly and effectively. Having this experience has added new tools that I can bring to future work placements, along with demonstrating my ability to learn on the job in a timely manner.
Communicate consistently and regularly with teammates while developing a product. Perform activities with active conversation relating to the development process around said product. (Complete before the end of the summer 2022 term)
The final product is delivered successfully with customer satisfaction.
The aim of this goal was to keep consistent communication with my colleagues as we collaborated on team projects. After all, collaborating between equals is cruicial to professional work. I consider the work I performed with my groups indicated good teamwork, therefore I successfully met this goal.
Generally, I met with my team every day through Zoom so that we could keep each other up to date. We also kept in touch throughout the day over Slack, a messaging application. Meeting virtually helped to clarify any confusion or miscommunication we experienced; we were able to stay on the same page for our work. Sometimes, due to the differences in understanding, I adapted how I communicated by either rephrasing myself and others or using other mediums, such as drawing. In that same vein, we used Miro and Figma to present our ideas visually to each other and keep a record of this communication.
I believe my greatest success was as a part of the RPDU Portal and Intake Service team. There were several requirements for the portal's content. However, beyond certain elements, the appearance could be arranged by the members of the team. Early on, while we were still creating new pages, we used Figma to design multiple options for a given page. We also used Miro a few times to make sure we logically organised content on appropriate pages.
Use agile practices while developing a product to put into practice the knowledge taught in previous academic courses (before the end of the summer 2022 term).
The product is delivered following the use of a development methodology in the process of its creation.
I learned development methodologies in an academic setting, but hadn't put them into practice in a professional setting. Here in the RPDU, we did not follow the exact structure of agile developement. However, we followed the principle of developing our project as quickly as we could, while frequently reviewing our goals so that we could change our trajectory as necessary. These two elements are the fundamental points of agile development.
Applying and practicing agile developement allowed me to understand its importance to creating a product. I also gained knowledge of practical tools while working that I will now be able to use in the future, should they be necessary.
Among the tools learned, such as Miro and Figma, I also learned the most effective practice for staying on-track on a project with my colleagues: meeting daily. Even if we didn't meet every single day in a live meeting, we kept each other up to date through Slack (a messaging application). I also kept notes that I could share with my colleagues so that any work we had to do wouldn't be forgotten.
Offer resources I found useful, make myself available for assistance as much as possible, encourage asking questions openly and comfortably.
Other students successfully become a part of project teams and contribute positively (and well) to their projects.
As a student with an extended work term, I met several new students. While we transitioned into becoming a new team, I made sure to make myself available to the new co-op students to help them out whenever they needed.
In general, if a student asked questions, I would either give them advice on how to approach their issue to find a solution, or I would provide them with tips and links for problems I recognised. If I didn't recognise the issue, I would look into it myself to see if I could find a solution or process to help them out.
As the students joined teams, I provided them with resources if I was a part of a given team. That way, they would have an easier transition into working on the project than if they had to figure things out on their own.
This is a goal I consider complete, as students still approach me for assistance when they need. They are definitely experienced on their own, but they also use other people for assistance, as it should be in a collaborative work environment.
On top of helping current students, I have done my best to document what I can on the projects I worked on. I believe it is good to provide as thorough of an overview as possible to give future employees, student or otherwise, a decent starting point to continue work I contributed to. It will also help in extending everyone's knowledge when they have a good base to build from.
All these practices demonstrate my capabilities in being approachable, helping others, and being resourceful.
While working on various team projects, bring up the topic of accessibility and encourate efforts to ensure the products are developed with accessibility in mind.
Products are at least somewhat accessible and follow Web Content Accessibility Guidelines (WCAG) to the best of our ability.
Web development was a new focus for me this term, so I was also new to technological accessibility. Over the course of the term, I worked on understanding and checking for common or potential accessibility issues in my work and resolving them as necessary.
Knowing how to create an accessible application or site means that more clients can access and use the product(s) that I develop. Even for users that may not have accessibility needs, if an application or site is designed and created with accessibility in mind, it will still end up as a better experience for them.
I worked with WAVE, a web accessibility extension, and the accessibility portion of the 'inspect' feature that comes with browsers by default (along with other parts) to improve custom code sites. For anything on the Microsoft Power Platform, I used the app checker feature when working on a canvas app to improve accessibility to the best of my ability.
To further expand my knowledge, I read plenty of articles about technological accessibility, primarily from A11y weekly (reads visually as Ally Weekly). These provided an approach to accessibility from an experience standpoint, rather than technical requirements to meet for a product.
Overall, I believe with the knowledge I gained and what I did my best to implement, I achieved this goal. I also brought it up with my colleagues, in the hopes that more people would be aware of and be able to implement accessibility into their development of applications and websites.
The primary goal for the RPDU was to quickly develop and prototype applications within the OPS using Microsoft Power Platform and custom code stacks. The unit is also the primary advocate for the use of low code in professional development, so we were also responsible for providing low code services and resources within the OPS to empower others to develop low code applications of their own.
During the summer term, I worked on two projects:
The World Cup "betting" application, designed to encourage employee engagement while raising money for a charity. The app was built on the Microsoft Power Platform as a low code application, inspired by and partly based on a previous custom code application.
The RPDU Portal and Intake service, a website using a custom code stack. We used Blazor, a single page application development framwork. We used a Microsoft SQL server database to store information in tables. There are several pages made to help people learn more about the RPDU and low code. There is are FAQ, Documentation, and How To pages to help people learn more about the Microsoft Power Platform. There are also services to help OPS employees get their own Microsoft Power Platform licenses so that they can create their own applications.
In the fall term, I took on other projects and responsibilities on top of my existing ones. These were projects that other students left at the end of their work term. These included:
Drop the Pen! an "eSignature" application, built on the Microsoft Power Platform much like the World Cup application. The app is deseigned to make electronically signing documents easier and more accessible. Most of my work involved refining the user interface and experience. My team and I also added some extra features absent from the initial creation.
CrowdFundIT, a custom code website for groups within the OPS to help fund and support potential ideas shared by other OPS employees. The original site was created as part of an OPS hackathon, and therefore changed hands multiple times. It took time to learn the custom code framework (MVC 5, .Net 4.7) and understand the parts of the site already built by previous developers.
I explored the CrowdFundIT site from the user perspective and analysed the code to better understand what I was working with. While documenting what I found, I worked with my team to minimise any repetition in the code and implement better coding practices. One such change was implementing a viewmodel between an entity (the 'code version' of a table) from the database and a view (which is a page the user sees). It took some time and even modifying some of the database tables, but the result we achieved was improved code to work with and understand.
Low code seems to be a newer method of development. It is also my first time encountering and working with low code, so I found it to be interesting and fun to explore. I enjoyed creating applications and flows (automated processes) quickly and easily, ready to change a design or element at a moment's notice.
All projects that I worked on were entirely internal, to contribute in some way to the working body of the OPS. Some were practical, such as Drop the Pen and the Portal/Intake service. They would help save time and organise information for employees. Others were inter-employee support, such as the CrowdFundIT site. The World Cup application was aimed towards encouraging donations for charity with entertainment among employees.
Co-op students were assigned to projects so that we could learn as much as possible on the job. Even though I didn't have experience with some aspects of the projects I worked on, I still learned how to do those aspects. I enjoyed this, as I felt more confident in figuring things out as I worked, even if I wasn't sure I could do it at first. I was also more ready to problem-solve whenever encountered an error.
Problem-solving has been something I had to learn on my own throughout my academic terms, and continued to utilise. I used Microsoft documentation and forums to figure out issues I encountered with the Power Platform, and Stackoverflow or a similar site whenever I had to resolve a custom code issue.
On the technical side, I learned more languages, which were either similar to languages I previously knew from classes (C#, javascript), or were relatively straightforward to understand as I used them (HTML, CSS).
I was new to web development, so I learned how to create a website on the job. The OPS uses the Ontario Design System to standardise the appearance of OPS apps and websites, so I worked within a standard guideline. There was still plenty of opportunity to be creative with the page layout.
Alongside the web development, I learned about accessibility standards for the internet. They are something I encountered and learned about for the first time on the job. These are technical guidelines and rules to improve the user experience for users with disabilities (physical or mental). They are known as the Web Content Accessibility Guidelines (Wikipedia article).
Though I have worked on group projects in class, I believe I continued to learn more skills regarding communication and collaboration while working. All projects involved a team of four to six people, so I had to make sure I could communicate my ideas properly as well as understand and implement my coworkers' ideas. This job also involved interacting with clients, which included presenting work progress and taking notes on client feedback to implement it. Overall, collaboration and communication are skills I find to be a part of a continuous learning process. Using these skills whenever possible helps improve them - practice is always useful.
As a first co-op experience, my position as a Low Code Developer in the RPDU (within the MPBSD) was a good starting position. The employer supported co-op students and encouraged them to learn new skills. At the same time, I had the privilege to work on multiple applications that will be and are used in real-world scenarios, both to improve work efficiency, convenience, and employee engagement.
I would like to acknowledge the members of the RPDU team I worked with to create these sites and applications with over the Summer and Fall 2022 terms. I would also like to thank my manager, Christopher Barrow, for the wonderful experience and guidance he offered to us all.