I was thinking along the lines of hooking into an existing one (you would specify the repository and possibly username/password for the project management system to use). Honestly, I find this to be extremely valuable as a developer, but it’s also one of the features that you might push off for a bit because it will take a large chunk of time.
I had a feeling this would be something that would take a lot of time, and it would be hard to add in at the end if I had time, as a lot of stuff would build on this (I’ll talk more about this point later on in this post)
I guess I was sort of just running down the line (you can have multiple projects, each project can have multiple milestones, each milestone can have multiple tickets, etc.). It’s up to you if you want to have tasks be separate from tickets or tasks/tickets can have types (user defined would be great). There’s enough similarity that they could easily be combined, but many systems separate them because of the conceptual differences (i.e., the difference between proactive and reactive).
Good point about the proactive/reactive, thats something I’ll try to incorporate, but maybe a more generic name, as certain types of users might be confused by ‘tickets’, and I want to avoid lots of “What does this mean” things, as on they’re own they don’t matter much, but once you have a fair few, it might out of normal users (non devs)
As I plan on letting both the company and client access the project, I might make client submission under tasks appear as a user ticket or requests… small change, but I think it will make a difference (I can’t beleive I’m paying attntion to things such as names of things so early on)
I think this is something where the user should be able to create as many types as they want (just use a separate table and foreign keys). For instance, those three might be good in general, but I might want to make “Show Stopper,” “Vital,” “Man, this would be nice, but I know I’ll never get to it,” etc. The table could essentially just be id, name, rank (or weight, basically, a numerical importance compared to other types).
This was just an idea so as to keep it simple… also, I’m not sure how many users would use custom priorities? (but this is why feedback is so important, I would have just done the 3 and been done with it)
I might have the 3 as defaults on each project/account, and then they can add more if they need, think thats the best compromise 😊
That would actually be pretty cool, especially once you get to the point where you can create reports showing how long different milestones or types of tasks took.
It would also be useful if you bill by the hour, maybe hook into an invoicing app via an API
Estimates start to get tricky though because you have to compare task similarity, which isn’t easy. I’d suggest leaving “Due Date,” “Expected Hours,” and other such fields blank, or else give the user the option to create defaults.
This might be more useful as a per project thing, so if you normally spend X hours on R&D, this could be the suggested value etc. Maybe hook with up with the time reporting?
That’s good. You might try coming up with some scenarios for possible uses to ensure that the system will still meet those possible needs. From a web development team to a manager at a fast food store, you can decide how broad you want it to reach. You might also have a setup script that allows the user to select which scenario most matches his/her expected use in order to create good defaults.
Thats a really good idea, have a generic base, and then build layers on top for various usage scenarios. I can imagine that would be one of my later additions 😊
It also means the PMS can adapt to new markets fairly easily
Well, you could use cURL to interact with external APIs, but you can create a specific controller for your own API (such as a REST-based one). Again, I think this is probably something that would come a little later on, but it’s worth thinking about upfront, so that you can plan for it and ease its development later.
How much would an API differ from my models (I know you can give an exact answer as you don’t know what my models are like). Should there be much more then adding a wrapper which authenticates the user with an API key, calls the models and structures it however it should
Hmm, that’s actually an interesting idea. You could have a nice sidebar for that and interaction with some of the other aspects of the system. That would be great for me because I like throwing chunks of data/thought into a place quickly when working on certain things. I’d say it’s your own, and you get one per project. Usually notes like that aren’t so helpful to others. It’s worth having a simple wiki for projects though.
Yeah I guess keeping it specific to that user will probably make the most sense
Not sure if this is what you meant, but you gave me a good idea with the interaction with other stuff…
If you type something in there with a keyword, it does certain actions, eg:
[milestone] 23/5/09 Complete end user testing
This would then create the milestone instead of adding it to your scratchpad
This would obviously be veruy limited at first, and you’d have to get the right syntax, but it coould evolve into a very powerful feature
Glad to help. I have actually thought off and on quite a bit about writing my own project management software, but I always put it off because writing it would take a good chunk of time that I could just be using on the actual projects, haha.
This is something I’ve been wanting to do for a year or so now, but never had the time. Then we had to either suggest our own 3rd year project or pick one from the list… so I grabbed the chance to finally do this 😊