Viewing Posts by Jason Mayall
How a Construction Project Manager Tackled Citizen Development (Part 3)
This is my third and final blog documenting the start of my journey through learning about citizen development and LCNC platforms. I decided to use Microsoft PowerApps as my platform as it stood out to me as one of the better platforms on the market and had an amazing set of online learning modules. What I built This would make for a good first step in removing the need for keeping stacks of papers about in folders that document all aspects of each ongoing job. Keeping paper copies and noting down outgoings on a small job may be convenient in itself, but it soon becomes a hassle when the job is nine months long and the outgoings tip over the £100,000 mark. That is the exact reason I started constructing this app; it’s a step in the direction of becoming paperless, making life easy when there’s lots of receipts and invoices from contractors to keep a hold of. So, with my goal in sight, I opened PowerApps and got started. Creating the app
I wanted to start by making the Customer portion of my app as it seemed by far the simplest, requiring only basic data such as a name, address and contact number, perfect since this was my first time attempting this and didn't want to overwhelm myself just yet. I took what I learnt from the learning modules and got to work.
From the screenshot, you can see the table containing some example customers and their data, with a delete key for each row (which contains a pop-up message to confirm). The little arrow on each row takes you to a screen that allows you to edit the contact information for each row; there is a search field that allows you to filter the customer table to return records that match what you type; and of course there is a button labelled "New" that navigates to a screen that allows you to create a new record. You may have noticed that the table is also in alphabetical order. I did this by using a function called "SortByColumns." Although the app is looking pretty basic at this point, I was nevertheless happy with the functionality. Why was it more difficult? Well it had a lot more—and more complex—fields to manage. The customer table was a walk in the park. It needs name, address and contact info data, which is all basic text and is static; nothing changes after the data has been input. The jobs and contractor tables, however, are a different story. You need a whole bunch of new fields with dynamic data and a robust relationship so they can be cross-referenced throughout the app. Each contractor needed the same simple fields as the customer needs such as the name and contact information, but also fields such as their hourly rate and the hours they worked on a job (plus a field to calculate the sum of the hourly rate and hours worked to give the total salary). The job table also needs to reference the customer that the job is being done for, and also list each contractor (including the hours worked and amount payable) that has been assigned hours on the job, plus list the date of the job and location and have all of the information updated and visible to the user at all times. Yes, I did get everything functioning in the end, and the solutions seem simple now that I've figured them out. But go back in time a couple of weeks when I first started making the app, and it was a lot of trial and error whilst trying to compose a working function that was any more complex than four words long. Yes, it was difficult. There were times that I spent hours pulling my hair out over functions not working and giving error messages, only to find out I put a comma in the wrong place (yes, this happened many times), but it was a great way to push my skill set and force myself to learn and overcome obstacles.
Again, you have the list of contractors with a search bar to filter the data, a delete button, new button and I added that special red dollar symbol to show which of the contractors had outstanding payments. When you select a contractor from the list, it highlights the selection in a slightly different shade of grey to show it has been selected (although this may change in the future as it's almost unnoticeable). The main thing to note is the table that pops up referencing the selection you make to showcase the list of jobs that they are related to and how many hours that have done on said job:
Most of the magic here is with the Job details page, which is accessed by clicking the arrow on the job you wish to view. Let me show you the details for the example job "Garden renovation"...
There are lots of relationships, references and calculations on this page, which is the sole reason it took the most time. But it was also the most fun to design and build, and was also the biggest learning curve for myself. Here you see a reference to the Job you have chosen. You can assign a contractor to the Job and input the start date (default to the job start date). After that, you look to the right and see the entire list of contractors that are working on the selected job and whether they have been paid yet or not. Imagine you contract three people to carry out various work on a job. One sends you the invoice for their labour via email, one writes out a physical copy in their invoice book and hands it to you personally, and the third only does two hours of work so tells you to add it to the tab and pay at the end of the month. Jobs like those aren’t too difficult to keep track of, although it may seem a mess at times with receipts and invoices coming from all directions. They typically get paid off pretty quick and can be forgotten about. However, it’s the larger-scale jobs that need some help, the jobs where one person will do that two hours of work but then come back four days later and do another eight hours, then again the next week. You can have multiple people doing hours such as that on a job that’s six, seven or 12 months long, so having some sort of app to keep a track of those jobs will save time and keep everything organised. With the tap of a button, you will able to see who is working on what job—and whether they have been paid or not. It's a great first step to becoming paperless and more efficient. What's next? Next, I will aim to revise and hone my skills enough to take the PL-400 Microsoft power platform developer certification exam. This will prove that I have the necessary skills to work with the power platform and give me a certification to show that. As for my next app? I'm not sure yet...maybe I should try something more technical to push my skills further, or even use what I learn to further improve my current app. What should I build next to further test my skills and abilities? Don't hesitate to message me if you have any questions about Citizen Development or PowerApps, I'd love to help out. |
How a Construction Project Manager Tackled Citizen Development Part 2
It's been a whole month since my last blog! A LOT has changed, my eyes have been opened to the sheer power of LCNC platforms and how simple an app can be created compared to conventional coding. As I mentioned in my previous blog, I set out to pick out and learn 1 LCNC platform to the extent where I would be happy to build my very first app, and that is just what I did.
Choosing a LCNC platform Now, choosing the LCNC platform that suits you best sounds pretty easy right? Well... There may be more available to pick from than you realise, all with their own pros and cons. You will be hard pushed to find a high end LCNC platform that you can use completely free of charge but many do in fact offer free trials or are free to use forever in a "practice environment", this was one of my main criteria when choosing.
The first platforms I came across and considered were Google's App Maker and Microsoft's PowerApps, having such robust frameworks along with great customer support and communities to support them. Some other great finds were Mendix who offer a vast array of prebuilt templates, great tutorials and live chat support but proved to be VERY expensive, especially for some of their more premium services. Outsystems is another great option with fantastic training and the ability to publish directly to mobile App stores.
Google vs Microsoft So it really came down to Microsoft vs Google, the appeal to me was, as you might be able to guess, the comfort of knowing who the companies are and the possibility of them having some relatable features along side the ability to integrate with their other widely used services.
Google App Maker
PowerApps
So with two extremely robust and powerful platforms to choose from, who won? Well, it was Microsoft PowerApps that won the battle for me, I believed that even though it was pretty intimidating at first glance, I would be able to tackle it with the sheer amount of E-learning available on the Microsoft website. Also, there are already so many companies that use Microsoft and its services day to day that it seemed as though it would have the best integration for companies looking to take on a LCNC project. You do in fact have to pay for PowerApps and their plans are fairly competitively priced compared to the other options but you can also use the service for free with very few limitations, perfect for someone like myself who is just looking to learn at this point.
Learning PowerApps To get started with PowerApps I went straight to Microsoft's online learning modules, there are 79 modules in total JUST FOR POWERAPPS! A module looks like this It's very easy to navigate about the modules and filter them by difficulty, they vary in length from 20 - 30 mins up to 90 mins each, so there is a lot of content out there. I simply started at the top, filtered by "Beginner" and got to work. Each day, logging in and completing a few modules, making notes along the way and seeing my skills grow over time. The modules are easy to follow, with lots of short videos to watch and hands on material to follow along with and have a go yourself. I quickly learned to create simple things such as adding a selecting items in a list, simple calculations and how to edit and design apps to look more appealing.
Where am I now? Now I've spent a fair amount of time leaning PowerApps and what it has to offer I do in fact feel confident about creating my very first basic app, the extensive learning resources out there have ensured I know more than enough to get started and even when I don't know something or I get stuck with an error, I can always count on the PowerApps online community to have the answer out there; I may be new to PowerApps and have very little experience but so far I haven't come across something I can't do. I'm glad I chose PowerApps and I can't wait to get started with building my very first app over the next few weeks.
I'll look forward to sharing my progress on my next blog!
Over to you, have you started to learn how to build using a LCNC platform? What platform did you choose and why? I'd love to hear how your projects are going. |
How a Construction Project Manager Tackled Citizen Development Part 1
After working in construction for almost 7 years I thought both my and my organisation's future was set in stone. Waking up every day, going to work, using the same old / inefficient processes for planning projects and keeping track of various data that would often get misplaced or altered over time through miscommunication; though I never thought anything of it, that was the "norm". That was until I heard about CD (Citizen Development) and started to look into it more and what it could do for me. I quickly became interested in the benefits of CD and "low-code / no-code" (LCNC) platforms and what they could do for me, whenever I did or saw something I begun to think.
The more I researched, the more opportunities unfolded, the more I began to think and solve and start to see the many benefits of CD. Taking the Citizen Developer Course When I heard that there was a specialised "Citizen Developer” course I immediately started to investigate and it didn't take much convincing to get enrolled. I began the course expecting to learn about the opportunities that CD would enlighten, the best LCNC platforms to use and the process of putting my knowledge into practice and I was a little worried that it might be quite difficult given the fact I have never touched coding or built an App before; however, the experience was much more than that. On the foundation course you learn EVERYTHING from ideation to creation and deployment, the whole process! You get to learn the basics and how to unlock the full potential of CD along with how to comply with IT by bringing structure and security. With Citizen Development there is no need for technical knowledge, so long as you have the will to create a solution, CD will enable you to do it and the CD course will show you how and hold your hand through the process. The best parts of the course had to be the many downloadable templates and the real-world examples for you to examine, having the ability to look at a small selection of real-world examples of CD being put into practice was game changing and allowed me to really see the effect it had within a business. Thinking About Implementing CD After the course I began thinking about where and how I should start to implement this within my own career, the use of LCNC platforms will help out a vast majority of businesses, especially the ones with a backlog of work that would usually require an IT specialist. That isn't all CD can do though, just think of the career opportunities that get created, so many businesses have underlying issues that just don't get solved or get pushed to the back of the queue because they don't have the necessary resources to deal with them. For example, think of your own work environment, what do you think could be made more efficient through the implementation of a simple app? As someone with CD experience I would now feel more confident in tackling those issues and developing a solution in a cost and time effective manner. All in all, since starting my path on becoming a Citizen Developer I have had my eyes opened to a new world and I am excited to see where this can take me, first of all I need to get to grips with a LCNC platform, there are so many to choose from, each with their own advantages. Then I need to put both my CD and LCNC knowledge to the test within my own working environment to see just how effective it is in my own line of work; after that I hope to evolve some more and take my expertise to larger projects with more diverse needs. The Next Steps on My Citizen Developer Journey So that is my starting experience with becoming a Citizen Developer, my near future goal is to get to grips with a LCNC platform and put into practice my newfound skills into building something. I am thinking I should build something simple such as a tracker that provides detail of all the hours worked by employees and various contractors on each project. Or maybe I should build something expandable such as a job portfolio that presents details of all past projects that we do so that I have something to show future clients that inquire about past jobs; this will allow me to build something simple to start with and expand / improve over time as I become more skilled. My plan for this is to use a couple of hours each evening and some additional hours on weekends learning the fundamentals of app building within my chosen platform which I hope should be enough time (including ideation and planning) to get my first basic app built to bring a solution to something within my company. I’ll look forward to sharing what happens on my next blog! Over to you, have you been building apps with LCNC? What LCNC platform would you recommend or like to learn? I’d love to hear from you what’s working for you.
|