What is the use case of a subtask in Redmine? [closed] - project-management

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I read about related issues and subtasks (including this). And now I'm utterly confused about what use case the subtask is intended for.
If I understand correctly a subtask is just a type of related issues that automatically enforces the following workflow:
the parent task's done percentage is the sum of the subtasks' done percentages
the parent task's deadline is the deadline of the last subtask
the parent task's spent time is the sum of the subtasks' spent times
the parent task's priority is the highest of the subtasks' priorties
Without these 4 bullet points, a subtask would be no different from a simple "related to" (ignoring some UI differences). Correct?
At first glance, I thought if S1 and S2 are subtasks for T, it means that S1 and S2 are steps to complete T. But clearly that's not the use case behind subtask:
First, because in my use case, S1 and S2 block T, but subtask relationship doesn't imply this.
Second, because in my use case the priorities of S1 and S2 are driven by T's priority, but with a subtask the priority of T is instead driven by S1 and S2.
So there must be a canonical use case for subtasks that I am missing. What is it?
EDIT:
To make things more confusing, this issue suggests that maybe the above workflow should be potentially removed. If that happens, how is subtask different from a simple "related to"?

The way I have used it in the past, subtasks exist to break a larger feature down into manageable / assignable chunks, in a way that is more management-friendly than simply doing relations using blocked-by, follows, etc.
There are a lot of features in Redmine/ChiliProject that exist for flexibility, i.e. to let a user or a group manage the project their way, without trying to shoehorn their workflow or thought process into a box built around somebody else's workflow. I would argue that subtasks are one of them; they are useful to some, useless to others, and downright dangerous to still more people.

Related

How do I implement a ranking system like instagram? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 1 year ago.
Improve this question
I am developing an app in which people can upload a TaggedImage that can be visualized by anothers.
So the thing is that I want to implement a ranking system that retrieves the data in function of how well recieved is, how new the item is, if it is shared etc,
But, I couldn't found any info that helps me as guide for. I really don't know where to start, it is from the SQL server, from the app service, or another backend service?
Where can I get more practical info about this topic?
Ranking means mapping your potential items to a number i.e. finding a function r(x): X -> R, where X is your set of items, x is some arbitrary item from X and R is the set of real numbers.
In practice you use all kinds of information about your items, also known as features which has a correlation with some actual goal you are trying to optimise. You need to define your goal - it may be related to engagement i.e. the amount of time the user spends using your application, it could also be the amount of revenue this user generates, or the number of likes he ends up leaving during the current session.
Once you have a goal and your features, you need to build a function. It could be hand-crafted or optimised. Optimisation involves searching for parameters that maximise your objective function in order to pick the best ranking function out of some family of functions. This is in essence what Machine Learning is about.
Endless books have been written about what features you might want to use for your particular problem, what objective functions you might want to use to achieve your business objectives and what algorithms you can use to increase your chances of finding a good set of parameters.
So I won't go into a lot of details but I will give you a few pointers on each of the three issues.
Features
Number of total likes for this item
Number of likes today
Who posted this item
When it was posted
How many comments were left
Who liked the item
The caption text
Hashtags used
The image itself
Objectives
Engagement with the item (like, comment, dwell time)
Engagement with the application (likes, comments, dwell time, posts)
Item diversity
Algorithms
Boosted Decision Trees
Neural Networks
Image Classification (for binary events, regression otherwise)

Details about Aggregates and where to use Aggregates [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 1 year ago.
Improve this question
I read many articles and watched videos on youtube about aggregates but every time I am getting more confused by them. So please describe in detail with a specific example. I understood little about that is it is a collection and it can used in DDD(Domain Driven Design) pattern and in identifying microservices boundary. If I am wrong please correct me and describe more about aggregates.
Thanks in advance.
An AGGREGATE is a cluster of associated objects that we treat as a unit for the purpose of data changes. -- Evans, 2003.
Aggregate is a pattern, that Evans describes in the lifecycle management chapter of the blue book.
The motivation is that we often have two or more domain entities that must always agree with each other in some way. That will normally mean that we want to save them together (otherwise, a badly timed failure could leave us in a state where the entities are not consistent with each other), and will normally mean that we want to have both entities available in any case where we might change one (because we'll need to make sure that change is consistent with the other).
See also: Coarse Grained Lock.
A somewhat contrived example:
Imagine a system that keeps track of bids for some commodity. Our entity might include a collection of BUY orders (with a price and an amount for each), and a similar collection of SELL orders.
Our job is to pair off BUY and SELL orders that are close to each other and time and have a common price. So when a new BUY order comes in, either it gets added to the collection of BUY orders, or it is matched against a SELL order, which is removed from the SELL collection.
In effect, these two collections are managed such that they never overlap. To ensure that property holds, we keep both collections in the same "aggregate", so that they are always saved as a unit, and we are protected from data races that might make the two entities inconsistent with each other.
Often, this will constrain our data model - for instance, if we are using a document store to hold our domain information, then both of these entities would be represented within the same "document".

Scheduling & Routing Optimization [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
I am having the following optimization problem setup:
Given:
about 100 Mechanics, each with
Work time per day [e.g. 8 hours]
Break time per day [e.g. min 1 hour]
Maximum overtime per day [e.g. 1 hour]
Location [e.g. Detroit]
about 1000 Tasks, each with
Location [e.g. Chicago]
Duration [e.g. 1 hour]
Fixed time slot [e.g. 1pm] [optional]
The goal is to schedule all tasks to the mechanics with short paths. One constraint is that every mechanic starts & ends at his home location.
Is there any way to solve this problem in an easy & understandable way? Are there any similar examples online in e.g. python?
Not all workers would be available to do a task because of Location. If Locations don't overlap, you could at least segment the problem into Location-specific one to avoid dealing with it. Then you could assign the fixed timeslots first, always picking the workers with the least hours on the schedule. Since hours are a discrete value, you could pick the nearest worker by distance when choosing a worker amongst several that have an equal number of scheduled hours.
This would be a very basic approach that would do the scheduling but may not do it in a practical manner - for example, two close-by jobs may be assigned to different workers and efficiency may not be good at all when you consider travel time between jobs. You would have to iterate with the business and apply some heuristics to get to a usable solution.
I'd advise you to get a real-world sample of the input data - availability, locations, jobs etc - as large as possible, and create some evaluation function first: overtime, travel time, utilization of the workforce should all factor in, then you could see what heuristics need to be applied to the basic algorithm.
Another approach would be to cluster the jobs by location, into 1-worker-per-day clusters, and assign close-by jobs to the same worker. Look into graph clustering algorithms for that. Within a cluster you could assign the fixed-time jobs first, then the rest in random order. You could also limit the clusters to not have overlapping fixed-time jobs.
Either way, you'll have to come up with heuristics, whichever approach you take.
Finding the optimal solution may be an NP-hard problem http://www.cs.mun.ca/~kol/courses/6901-f14/lec3.pdf

Does it have a mature algorithm or theory for a scenario about best distribution? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
Scenario:
We have 10 kinds of toy,and every kind include 10 toys.
We will distribute toys to 100 children.Every child have different degree of satisfaction for 10 kinds. Tip:In the real project we will have 300000+ children records in my database.
My Question is:How to measure and define the best solution for distribution?
And how to get the result?Please give me a hint.
Some friends suggest me to try KM algorithm, I'm not sure it will work for me.
Thinks.
This problem is hard because you haven't decided what you want to optimize, and because many optimization methods will be expensive to run if you have 300K children - or customers - to worry about.
What do you want to optimize? If you try and optimize the sum of some set of per-child satisfaction score, can you really compare the subjective satisfaction of two different children, let alone add them up to produce anything sensible? If you decide on such a system, can you prove that it cannot be distorted by children who decide to lie about their satisfactions, for instance saying that they will be devastated if they don't get one particular toy?
What if somebody decides that the sum of satisfaction scores isn't the right metric, but instead that you should minimize the dis-satisfaction of the most dis-satisfied child?
What if somebody decides that inequality is the real problem, so if there is one very happy child, you should take away their toy and give it to somebody else to minimize the difference in satisfaction between the most and least satisfied child?
What if somebody decides that some children count more than other children, because of something their great-grandparents did, or didn't do?
Just to not be completely negative, here is a cheap scheme, and an attempt to prove a property about it. Put the children in random order and allocate the toys as if each child were to choose according to their preferences in this order - so each child would get the toy they most preferred according to the toys left when they came to choose.
One property you might want for a method of choosing is that, after the toys were distributed, children wouldn't find that they could trade toys amongst themselves to produce a better distribution, making you look silly (aka not a pareto optimal solution). Suppose that such a pattern of trades was possible among the children in this scheme. Consider the trading child who came first among these children in the initial randomization. They chose the toy they wanted most from all those available, so there is in fact nothing the other trading children could offer them that they would prefer. So this scheme is at least not vulnerable to later trades.

Is this number 10,000,000 on Stack Overflow? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
Well, the title pretty much says it.
(Q1) Is this question number 10,000,000 on Stack Overflow?
But, since it is probably not (though I made an 'attempt'):
(Q2) Which question is number 10,000,000 on Stack Overflow?
I realize that this is not exactly a programming question yet, so I will try to turn it into one:
(Q3) How can one determine which is question number N on Stack Overflow without administrator access to the Stack Overflow database?
I came up with all these while visiting Stack Overflow a few hours ago. The question counter caught my attention, because it resembled a price tag (all those 9s). I admit I did not give it too much thought. So maybe there is an obvious answer, but I can't see it right now.
What I've 'tried'
Obviously, the total number of posted questions T is one parameter to consider (i.e. the counter at the top-right of the the questions page). However, it is not directly related to any particular question. I also suspect that it is just an approximation of the real value since I've just seen it going up and down a few times. So it might be precisely evaluated just once every few minutes. One other cause of this behavior could be that questions can also be deleted. I might have caught the system during 'cleaning' time. In consequence, there might be more than one "question number N". But there must be a 'first' one. And a 'last' one, to be determined after the moment when questions that were posted before it stop getting deleted or become 'unlikely' to get deleted after that moment.
Second 'clue' I could think about was the question URL. It has this format:
https://stackoverflow.com/questions/<id>/<title>
The id part and T seem to be correlated. The difference in between the two values is not a constant, though earlier today it was around 22,107,000 and was increasing at a relative 'slow' rate. This might be because the id is an aggregate counter (I suspect it counts both questions and answers, possibly more). So unless one has an overall view of how the number of questions and/or the number of answers evolved over time, this is not the way to go.
Due to the distributed setup of the whole system and due to the fact that the above parameters are hard to track accurately (at least by an average user), it seems hard to come up with answers to any of the questions above (if they are well defined in the first place). All these indicate that there might be no exact answers, but rather a probabilistic discussion should take place. Thus an attempt to make this question number 10,000,000 was hopeless in the first place.
Though I can see no practical use for all these (at least not from the point of view of an average user), chances are that I am not the only one wondering about it. Any other ideas?
It appears my question was a bit unclear for some of the users (though I did receive an appropriate answer, addressing the problem I had in mind, before it got put on hold). So I will make an attempt to rephrase it.
In the image below you can see the question counter (labeled (1), above referred to as T). The value of this counter is changed by some logic. Ideally such a counter would increase by 1 each time a new question meets all the requirements and would never decrease. However, this one goes down from time to time. So, a first question would be: what is the logic that changes the value of the counter?
Additionally, I would like to know which is the question that turned the value of this counter from 9,999,999 into 10,000,000. Due to the nature of logic that modifies the value of T, this change could have taken place multiple times. To simplify things, I am curious about which one question did it first. This question is the last step needed in order for the banner message labeled (2) to be legit and it is what I above referred to as 'question number 10,000,000'.
If there is a way to determine this question an acceptable answer would come in the form of a URL pointing to it and an proof that this is indeed the question I am looking for. Any possibly related ideas are also welcomed (since the logic that modifies the value of T might not be deterministic after all).
http://stackoverflow.com/questions/4
shows me question number 4.
id 1 - id 3 were deleted. If you check the autogenerated URL for that id http://stackoverflow.com/questions/1/where-oh-where-did-the-joel-data-go/ you'll recognize that it were questions from "joel". On the page itself it says: "This question was removed from Stack Overflow for reasons of moderation." --> that's quite selfexplaining (I guess maybe some dev-tests, or useless clutter).
Well, I also recognized that if I use a non-existent ID, it redirects me to the "nearest" ID. Means the ID with the smallest difference to the given URL parameter is shown. For example, ID 341888 will redirect you to id 341743: http://stackoverflow.com/questions/341743/c-string-that-can-be-null/
Regarding the above facts I THINK it's not possible to determine which
question is (or even was) 10,000,000 as a lot of them get deleted
for moderation reasons, etc.
I hope this helps.

Resources