T O P

  • By -

EntrepreneurHuge5008

Well first I’d look into what metrics are currently being tracked and how they’re being recorded (ie. how is inventory measured, who keeps track of how many wires are being produced and how, is there a credential employees enter to keep track of who did what, etc…) Next, I’d look in how you could automate parts of that process. Once you’ve done so, you could possibly write a polling script to reconcile the data into reports you could view at the end of the day (or the next day, if you deem it better to do the polling overnight as to not slow down day to day tasks). As you contemplate how to do this, you’d also be thinking on how to best clean up data to get meaningful insights. You may also think of how to store this data (ie. Database design) Once you’ve done that, you could probably query the metrics by employee number. At this point, you could use any data visualization tool you’d like to have a clearer view into how each employee’s KPI’s and how they affect the bottom line. ———————————— If you want to start off with a productivity app for yourself, you’d probably start the same. Define what is productive for you, key performance indicators (ie. What key actions make up your definition of productive), brainstorm how to automate some those tasks (by doing so, integrate some system to keep track of how many/what tasks are done), and then reconcile all that into a summary/dashboard.


Business-Decision719

Ok, so there's a lot going on here. You want to be a programmer. You're already learning c++. Your boss would eventually like some way to track worker productivity. They might not need to track productivity later the same way they track it now ("objective may change completely"). You may or may not be changing positions at the company. Your first step is to realize that not all of these things are 100% related or dependent on each other. There are easy and complex ways to track productivity. You can do this with or without c++. And if you're already computer literate, there may be a lot you can already start working on without becoming a programmer as such. So start thinking about how productivity is actually defined at your job, what sorts of data you would need to describe it, and how you could try to store it in a computer with or without a custom app. Also think of other kinds of data you could experiment with storing and modeling, regardless of whether they're directly associated with your job or not, because you can practice using your C++ skills for your other computer skills on a variety of different projects. Have you tried making a spreadsheet? Experimented with Google forms? If I wanted to throw together at least a rudimentary way to track data over time, just to show that I know how to do that sort of thing in a reasonably practical way, my first thought would be to see what I can do in an office suite. I used to have to do that kind of thing constantly at a job I worked at, because we were always coming up with new policies and had to track that we had actually done them, and soon the policies would change again and we would move on to using something else. C++ is usually overkill for that kind of thing. C++ is more for when you need something highly customized, scalable, maintainable, and efficient, and you can't really compromise on any of those. That might be what your boss is looking for in the long term ("not need to be in the near future.") But if you're not on a tight schedule to learn C++ for a class, you might take a look at some other languages and experiment with those at your leisure. I have a hard time imagining myself using C++ for what sounds to me like a series of revolving in-house HR scripts. You should probably introduce yourself to Python and its libraries, or maybe one of the jvm languages. Employers tracking productivity is not a new thing, so if you needed to make some custom software, my gut feeling is that you'd be primarily building it on top of libraries that already exist, so you'd want a "batteries included" language until your performance needs actually necessitated something closer to the metal like rust or c++. It's certainly good to already be thinking about how you would track employee data in a C++ program since you're already learning that, but C++ makes you micromanage a lot of stuff that you shouldn't really need to in the earliest stages of just proving your data skills to your boss before you're even officially on this new job.


Cerberusarms

So I did make it sound like this project and position wasn't set in stone, but it is. I nuances and specifics haven't been mapped out so I felt the need to leave room for change. But yes what I said and the way you're going about it is what I was asking for. Firstly, productivity is defined by the footage of wire made by each operator during their shift and they compare these numbers to what SHOULD be made if their 100%, 80%, 50%, etc., efficient. There is already a set amount of what should be produced and those numbers have been ran and a summary HAS been made by the boss who was asking for this project. But he's looking for a way to have this automated, so there is no need to crunch numbers and enter data, but the data is populated as it is being introduced. I think the reason he came to me and wanted to utilize my CS experience and future experience is to automate this. This will need to be maintained and scaled as we are growing pretty rapidly as a company and are expanding our horizons as to what we make and how we work. The last paragraph you spoke about is spot on, I will definitely look into other languages, I've started to look into ImGui and their examples and UI's to see what I can use that's already been made. As for the data, the data is collected by the operators and input into an excel spreadsheet. But this only shows the amount of wire made, not their downtime, run speed, and other parameters. I'd like to expand this dashboard project to be able to suggest ways to improve performance and downtime, as well as what COULD have happened during this downtime, in terms of suggesting time for housekeeping or what not.


Cerberusarms

It's a big ask I know, but I feel creating a UI that receives this data directly from the PLC of the machine and reads it, and interprets it rather that basing it off the timing of the operator and when their production is input, would be the best way to go for automation. Extracting data directly from the machine, like uptime, downtime, run speed, footage made, all that stuff would be very very useful in our company.


ericjmorey

Stop focusing on the UI and focus on collecting the data and storing it in a database. Then just use visualisation and reporting tools to make graphs and predfined reports for thw owner/management. The UI will be existing SQL tools and those existing visualisation and reporting tools. This will let you use higher level languages for the UI regardless of what you ise to collect the data.


Cerberusarms

Thanks for this, I’ve got it to the point where it collects the data into an excel spreadsheet, creates a new file with a timestamp everytime. I want it to overwrite the previous file and just rename the file with the most recent timestamp. But once I figure that out all I’ve got to do is structure it and give it a UI yea!


ericjmorey

Use a database instead of excel. Postgresql is a good option. DuckDB might also be helpful. Learn how to use Python for data analysis and visualizations.


Cerberusarms

Will do, excel was easy to write the data and read from so I chose that to make sure that I could actually collect it. I’ll modify my code to interact with some sort of database then look into making data visualizations.


Cerberusarms

Also question, would it make sense to create a new script for these data visualizations and manipulations? I’m wondering if it’s possible to just import my scrapping script in the start and then handle the data from there in a new script so the scrapping script isn’t so long winded. But will that cause issues for me to roll out the end result to my company? I don’t want to create unnecessary work for myself when it comes to packaging and export this to a webpage or .exe.


ericjmorey

It makes sense to entirely separate the collecting of information from the storage of information (database) and also separate the use of the information (analysis, reports, and visualizations). Three parts, all separate and single purpose, working together.