Anyone care to be my sounding board?
I'm working on upgrades to my projects module. I currently have a deliverables table that stores, among other things, a Due Date and a Completed Date
I'm thinking of using instead the following fields:
Start Date
Length
Percent Complete
Date Complete
This will allow me to use some GD library functions to create tracking images. Basically, the old table is pretty much useless, unless the task is complete, in which case it's mostly useless.
How would you recommend that I handle upgrading an old installation?
My current thought is to just use the current date as the "start date" for tasks, set anything with a Completed Date to 100% done, and then ... basically the user is going to have to go through and check every single project. This seems unfair, but I can't think if any other way to do it. However, I feel like my head is so wrapped up in this that I might be missing something obvious. Any help or advice or just telling me to get on with it already would be helpful. :D
Watch
GitHub Core
Show your support for Zikula! Sign up at Github account and watch the Core project!
GitHub Modules
- mesteele101 responded to »ERR (3): E_USER_ERROR: Smarty error: [in pagesvar:pagesitem2en line XXX]…« 07:01 AM
- mazdev responded to »Pages 2.5.0 and updating - Page not found« 06:41 AM
- ehdwma created topic »Hide "Register new account" and change template to 3 col« 06:27 AM
- mesteele101 responded to »Zikula 1.3.3 - Selecting a category in Pages not working« 01:29 AM
- mdee created topic »How to implement returnpage ?« 01:00 AM
- nestormateo responded to »Fillters in Clip« 24. May
- damon responded to »Can the Updated Version Check be Turned Off (Z 1.3)« 24. May
Zikula Blog
- Anatomy of Open Source Projects on Mar 07
- Continuous Review on Mar 01
- Not Invented Here on Feb 24
- How to Contribute Your Code at Github on Jan 13
- 10 Steps to Coding-Nirvana: Tips for Successful Module Writing on Nov 12
- Submitting Bug Report Tickets That Get Results on Aug 17
- Cozi Tricks #1: Syntax Highlighting on Aug 07
Login
Some advice on upgrading a module
-
**unknown user**
- Rank: Senior
- Registered: Mar 16, 2002
- Last visit: Oct 21, 2009
- Posts: 2330
I don't think you should scrap the "Due Date" field. When you say "tracking images" I'm assuming you mean some sort of graph? If so, a bar graph could work out. You could set it to display from ground zero to the due date as grey, and then any time over that as red to show a time over-run. Maybe this could help users identify which projects became time-sinks (or more importantly, why they did.)
I'm thinking that setting the current date to the start date wouldn't be the best idea. What if I can't enter the project that day? What if I want to "slate" a project to begin next week?
I don't know this module, so forgive if anything I've said already has a fix or feature in place. Just sounding off! ;) -
**unknown user**
- Rank: Softmore
- Registered: Mar 16, 2002
- Last visit: Oct 21, 2009
- Posts: 379
Thanks for the good points!
Yes, you have described pretty much exactly what I want to do with the task area as far as images.
The reason I'm thinking of scrapping the Due Date is because I want task to have lengths, rather than a project start and end date. That way, the user only has to change the start date for the task to recalculate the end date. This will also more easily allow for milestones. I'm just not sure how to make this happen in upgrading the module.
Also, using the start date as "today" is only for upgrading the module. The user could then go in and adjust the start dates for the tasks, and all new tasks would be given different start dates when they are entered.
What I'm thinking of doing is offering one upgrade that just updates some layout stuff and adds a "spent" field, then offering another that offers those changes PLUS the task updates, with the caveat that there will have to be a lot of changes entered by the user. -
**unknown user**
- Rank: Senior
- Registered: Mar 16, 2002
- Last visit: Oct 21, 2009
- Posts: 2330
jediping
Thanks for the good points!
Yes, you have described pretty much exactly what I want to do with the task area as far as images.
The reason I'm thinking of scrapping the Due Date is because I want task to have lengths, rather than a project start and end date. That way, the user only has to change the start date for the task to recalculate the end date. This will also more easily allow for milestones. I'm just not sure how to make this happen in upgrading the module.
This might work out assuming that no end-dates would have to be changed. It almost "locks" you into a project taking x amount of days, even if it took longer...or maybe I'm not understanding...
Quote
Also, using the start date as "today" is only for upgrading the module. The user could then go in and adjust the start dates for the tasks, and all new tasks would be given different start dates when they are entered.
What about having a dedicated column to capture the old date data...and auto-insert it into the proper new fields during the upgrade. This column could be left in without being used afterward, or if success was had, it could just be deleted. My reasoning is that when you tell someone they're going to have to do "work" to get the next version totally working, they might just stick with the one that already is. -
**unknown user**
- Rank: Softmore
- Registered: Mar 16, 2002
- Last visit: Oct 21, 2009
- Posts: 379
Quote
This might work out assuming that no end-dates would have to be changed. It almost "locks" you into a project taking x amount of days, even if it took longer...or maybe I'm not understanding...
Actually, there will be a "Completed date," which will be the date the task was actually completed. That way, the difference between the estimated length and the actual completion date can be mapped. (Man, I've spent too much time with project management software!)
Quote
What about having a dedicated column to capture the old date data...and auto-insert it into the proper new fields during the upgrade. This column could be left in without being used afterward, or if success was had, it could just be deleted. My reasoning is that when you tell someone they're going to have to do "work" to get the next version totally working, they might just stick with the one that already is.
My concern is definitely that they won't like the idea of doing a lot of work to upgrade. Problem is, I'm not sure how to avoid it.
I guess I could make the Due Dates into milestones, maybe. The length of the task would be lost, but if they don't care, it's not really going to be a big deal. Then adding lengths and adjusting the start dates would be like a new feature. Hey, I like this idea! I think it could work!
Thanks! :D It's always good to have a sounding board. ;) -
**unknown user**
- Rank: Softmore
- Registered: Mar 16, 2002
- Last visit: Oct 21, 2009
- Posts: 379
Okay, I found another problem that I'm going to have with this. I need to change what I just did as varchar fields to text fields. I think I can change most of the formats using regular expressions and some fancy string-splicing, but just looking through some of the things some of my users have entered, there will be some things I won't be able to change, and I probably won't be able to anticipate what those who use the module will need to change. So, in other words, there's going to have to be some preliminary or during-the-upgrade work done by the user.
What I'm thinking of doing is to tell them in the documentation to re-work the dates of the milestones into a particular format. Since not everyone will, when doing the upgrade, I'll have the script make what changes it can figure out, then list those that it couldn't figure out, give an error message, and shut down.
Does this sound unnecessarily complicated? If I could do this in stages it might be easier. "Here are the milestones with dates. Make sure they're in this format. All done? Good, let's go on." It wouldn't be a simple push-the-button upgrade, but in order to get this module to where I'd like it to be, it's going to be necessary. Is there a way to do this in Postnuke? I haven't had to upgrade many modules, so I don't know if any of them have done it in the past.
Any thoughts greatly appreciated! :D
- Moderated by:
- Support
