Windows planning program

S

sylvia

Guest
hello guys.

i am kinda new to game maker (not that much experience)
so i hope some of you could help me out on how to start to go like step by step.

i want to create a program(not a game) that holds info and with that info looks for the best result.
so what should the program do ?
depending on the data given (diffrent shifts , persons, the functions they have, the machines they can operate)
he should look for the best possible result to make as many machines possible run .

what info could be found in the program?
-the diffrent shifts (a,b,c,d,e)
-the persons for each shift
-what persons are available and not
- personsinfo
-functions the persons know (like operator , quality ...
-machines the persons know (mach1, mach2, mach3 ...)

the hard part is that some machines need only 2 persons to run while other machines need sometimes a team of 6 man .

why i want to make this program and learn it myself .
now at my work i am litterly each year working hours on the planning. then suddenly someone get sick or someting happens and i just have to start over.
so for myself to make my work easier and to also learn at the same time about programming and algorithms.

i am not really sure but if there is any Nederlands person here from belgium, holland or know the language NL , and you would want to like say teach me the steps from start to end i would really appreciate it .

i hope some people could help me out how to start where and what to do or what tutorials should help for this.

kind regards sylvia
 

TheouAegis

Member
First off, plan everything out on paper.

Keep the number of variables small. It will make handling the data easier. Enumerate each skill, as well as each machine type, manually by powers of 2 (1,2,4,8,16,32,64, etc.), which will allow you to store flags for multiple skills or machine knowledge into one variable. If you don't have too many skills and too many machines, you could store both skills and machine knowledge in one variable, but personally I would keep them separate variables: so one variable for what skills a person knows and one variable for which machines the person can use. With the machines, I would consider breaking it down into adeptness on a binary scale (unfamiliar [0], familiar [1], and skilled [2], which optionally would open up into veteran [3] if you set both familiar and skilled). This would double the increments you used for the machines and your enums would start with 3 and get multiplied by 4 each grade (3,12, 48, 192, etc.). I worked in a printshop mailroom staffed by a dept. manager (strictly manager, though he was familiar with the machines), a sr. engineer, his wife, two assistant dept. managers trained by the sr. engineer, three to seven temp staff trained by the sr. engineer (some kept on call), and then up to 30 more throwaway temp staff (give them the no-skill jobs) who occasionally had some experience there already. Temps like me who were put on the call list could operate a machine either alone or with one or two experienced temps if the job was too big for one person (those were the fun days). So in other words, the throwaway temps had an adeptness of 0 on that machine, the experienced had an adeptness of 1, I and the other trained temps had an adeptness of 2, and the main staff had an adeptness of 3. Big, important jobs required one or two supervisors who usually weren't temps but could be, so that spread our crew out to the point we would need one to three more temps called in to compensate for the shift in labor. My god, the logistics are giving me a headache and I don't work there anymore. LOL

Managers and stuff I would assign manually; don't make the program do that. If your manager calls out and you need to cover that, have a drop-down menu display everyone trained to manage. Loop through all the other stations to see if that person needs to get pulled away and if so, set a variable to notify you that you have positions needing to be filled.

Maybe have some sort of GUI that shows green when a machine is fully staffed, yellow when it may be understaffed, orange when it is definitely understaffed, and red when it may be inoperable due to staffing.

Just like manager positions, make machines manually adjustable so you can manually pull staff off one machine and put them on another.

If some projects will require additional loaders (like in my printshop job), make sure your database of projects includes a value for the preferred staff number.

I would make it so you would manually assign projects to each machine and then manually set the priority (optionally) of that project. Then your program would loop through all the stations, sort them into a priority list, then work through the list so high priority jobs get all the staff they need. Even if that results in a low priority job not getting enough staff, at least your floor supervisor should be able to shuffle a couple staff around.

But I think the biggest thing is going to be you will need a comprehensive employee database that stores their name, skills, machine adeptness, and availability.

If your company brings in a lot of skill-less temps, i wouln't treat them as employees and just have your program allow you to manually assign TEMPDUMMY to stations and then output how many temps you used so you can call the temp agency with that number.

By the way, all those skill and adeptness flags I talked about earlier would require you to be at least familiar with bitwise functions. 1, 2, 4, 8, 16 and so forth are all bits. 3, 12, 48, 192 and so forth are all pairs of bits (1+2=3, 4+8=12, 16+32=48). Variables in GM can only hold a limited amount of bits. You can circumvent this with a string of 1s and 0s, but try to avoid that method as it will be much slower and messier to code. But the fewer variables you are passing around and reading, the easier it should be to manage. Although that's just me.


I mean, maybe you could do everything in Excel instead of GM. Are you the only one in charge of staffing the whole plant? If not, propose upper management fork over some dough for someone to write a staffing program, cuz once you are gone, then what?
 
S

sylvia

Guest
well i am the only one . i have some partner that helps me but it still is damn lots of work . as you mentioned excel how could that be done ? is that even possible ?
btw thanks already for the reply
 

TheouAegis

Member
LOL I haven't used Excel in a long time, but I do know some people have done some cool stuff in Excel. The one plus side to doing it through Excel is y ou can have your database of employees AND the program essentially in the same place already.

As I said, eventually you're going to move on and your replacement will have to deal with all this crap. So if you don't want to work on this for free, make a proposal to your upper management about getting this program made either by you or by someone that knows what they're doing (no offense intended at all). At the print shop I worked at, the software we used for barcode-based page matching verification (to ensure no envelope got mailed out without all the correct contents) was supposedly written by the son of one of the owners. So I mean, if you make a strong enough proposal, you might get something out of it. But yeah, it's going to be a lot of work. You'll seriously need to draft out a detailed, thorough plan on paper or use a flow chart program/website to figure out what you are even going to need. I was writing everything up at 2AM (my time) trying to think in terms of just one department at that print shop. It's going to be a lot different at your workplace most likely. At least with an outsider writing the program, if he's worth his money, he'd be sitting down with you and discussing everything you would need to go into the app, everything you'd need to get out of the app, and brainstorm ideas with you for things that you maybe don't realize you want or need in the app. He might even bring in a consultant for the GUI. Essentially the planning and the coding would become his (or her) problem, not yours. LOL
 
S

sylvia

Guest
Wow didn't know exel could do that. I still kinda would want to make it also in gmk since I want to use it to grow in my company and I want to learn about programming and algorithms .
 

sylvain_l

Member
ms project is also a possible solution (didn't use it for nearly a decade so I'm not fully aware of the alternative and it's current status).

it's a very common problem IRL, in industry or even for association when they need to handle volunteers for a manifestations. So solutions of all sort are already available.

the problem is much more complex to handle than you think. (because of each case particularities/constraints)

Most of time, problem finding the "best" solution is that it's not a hard constraint problem; but a soft. Employees can be ill, or quit, you can hire temps; machines break down, you can have formation to extend the machine knowledge, practice on a specific job could increase the skills (meaning if you look for a month or for year it's not the same; you could afford to loose on a month to gain skills to get better output for the year) etc... The key point being, you not only want the highest output (in term of what? raw earning; benefits,... just defining that can be tricky^^); IRL you often look also for the most resilient solution; because if you are 💩💩💩💩ed because one key person is missing or whatever goes wrong; that's not going to be good :p
 

TheouAegis

Member
Yeah. Like, your lead mechanic calls out. He was scheduled to work alone on a project. Your second could get the work done (maybe not quite as well, but whatever), but he's been tasked with another project already. So is the lead mechanic's project important enough that you need to pull the second off his project? Maybe not, so you look to the third in skill, but he's not familiar with the project requirements at all, so maybe that would disqualify him. Then you look down further. You find you have no one that could do the lead mechanic's job that day. So do you suspend the job until he gets back, or do you shuffle your second mechanic up and pull someone from another project to his? Or do you just put the second mechanic's project on hold? Decisions, decisions, decisions. You'd want a very flexible app to help you with that, but it would need an up-to-date personnel database like sylvain pointed out.
 
S

sylvia

Guest
Is ms project something from game maker or something else.
It's more I want to make it so each day I can select the machines and people who are available and then let the planning program see who could be placed where and who would be left as reserved persons . So it should be used on daily base
 

Miradur

Member
Hi, take a look at holiday(vacation)-planner in Excel and replace the vacation with your machines.
It's very similar and worth a try to understand the way such a planner works.


Miradur
 
S

sylvia

Guest
Hi, take a look at holiday(vacation)-planner in Excel and replace the vacation with your machines.
It's very similar and worth a try to understand the way such a planner works.


Miradur
But I guess I can't say to excel those persons are available those machines . Now go find the best solution to fill the machines?
 

Miradur

Member
Hi, so if you don't know when, which machine is available, you have completely different problems. How will you divide people
if you don't know when they can work?
You need certain key data to be able to work with it sensibly and one of the few constants you have are the machines (people
can get sick or have an accident or whatever). A machine can also become defective, but should usually be repaired in 1-2
hours. Of course you assume that a machine is ready for use and then you know how long a particular job will take. Now you
have a certain number of workers at your disposal and you can start dividing them up.
It's like a mathematical equation, if you only have unknown values, then you can never solve them :)


Miradur
 
Top