SitePoint Sponsor

User Tag List

Page 2 of 5 FirstFirst 12345 LastLast
Results 26 to 50 of 116
  1. #26
    SitePoint Wizard
    Join Date
    May 2003
    Location
    Berlin, Germany
    Posts
    1,829
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Well the only thing I don't like is that you seem to like retrieving data based on strings instead of their respective IDs.. like:

    PHP Code:
    return $owner->getDepartment($task->getName()); 
    Okay Marcus, looks good so far. THis is in the Task Manager module (one file). Now I want to create a memberlist (another module -> another file), so I will need a Person finder and a person iterator as well. Would you put these general iterators etc. down in a third file and require them for each or would you implement them a new for every module?

    DRY would mean going for the former approach..

  2. #27
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by DarkAngelBGE
    Well the only thing I don't like is that you seem to like retrieving data based on strings instead of their respective IDs.
    At this preliminary stage yes. It is very important that IDs don't leak out beyond this level or it can cause problems. For example what happens if you serialise and then write it back out to the back-up server which has just come on line after the main one crashed? What happens if you craete a view from a union? What happens if you have to change the schema and completely reload the tables, but the IDs have found themselves in another DB. I tend to use IDs for joins and stuff that is purely internal. For your example an ID would be fine.

    Actually, who said we were using SQL ?

    Quote Originally Posted by DarkAngelBGE
    Okay Marcus, looks good so far.
    Let's stress this design first. I said the third use case is where the fun begins. Can you think of something else to do with the tasks beyond simply listing them on the screen. Something where the task progresses in some way and so we must write data to it. Right now it's all a bit illusionary, just shuffling meta information around for it's own sake. Where is the business value in what has been created so far?

    How does the business actually use these tasks?

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  3. #28
    SitePoint Wizard
    Join Date
    May 2003
    Location
    Berlin, Germany
    Posts
    1,829
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Well, the businesses uses these tasks as follows:

    On the task view list there are are 3 links: New subtask (infinite level), edit task, discuss task (comment system).

    On the task itself we have the progress reports of that task somewhere in their own table. There is also a link "Add new Progress Report", along with an "edit" link next to each report that appears only for the author of the progress report (okay, so we need a permissions system ).

    There is also some dropdownlist (from 0 to 100, in 5-steps) that lists the progress as a percentage value, which can be changed.

    That should be about as much information as you need to have some fun, no?

  4. #29
    Non-Member
    Join Date
    Jan 2004
    Location
    Planet Earth
    Posts
    1,764
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    dropdownlist (from 0 to 100, in 5-steps) that lists the progress as a percentage value,


    Maybe as a suggestion, is that you display those percentages as an IMG instead ? Would be better from the point of usability

    which can be changed.
    Then provide means to change them, ie If in steps of 5, then why not look at RADIO buttons ? If you really like a challenge ( ) you could use Javascript to give a sliding bar ?

    There is a library for doing this somewhere on the Net, which I can't remember myself

  5. #30
    SitePoint Wizard
    Join Date
    May 2003
    Location
    Berlin, Germany
    Posts
    1,829
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    What do you mean, Widow, "display them as an IMG" ? Remember it is the means to CHANGE the progress, not to view it. For viewing purposes I have a bar yes.


    Here is some screenshot for you guys..
    Attached Images Attached Images

  6. #31
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by DarkAngelBGE
    On the task view list there are are 3 links: New subtask (infinite level), edit task, discuss task (comment system).
    These are really interface concerns, not business. What do people do when they edit a task? How do they benefit from editing that task. Let's take a possible answer, such as "a completed task is archived and is then only visible in the progress statistics". In other words the information has been converted to another form by a calculation. That has business value because the computer is doing a calculation rather than a real person.

    Quote Originally Posted by DarkAngelBGE
    On the task itself we have the progress reports of that task somewhere in their own table.
    Progress reports actually sound like something useful. Is there a single statistic they generate that could be used for our next thread of execution. We can then weave that thread into our existing code.

    Quote Originally Posted by DarkAngelBGE
    There is also a link "Add new Progress Report", along with an "edit" link next to each report that appears only for the author of the progress report (okay, so we need a permissions system ).
    This is very much the IT department making work for itself. Has the business mentioned logging in? If it is a small intranet then logging in will actually be a hassle. Could you not use SSL and HTTP authentication instead? Security doesn't add value unless you have identified a threat. It is a bit like optimisation in this regard, if you do it blindly you just make everything worse by complicating the code and living in an illusion.

    Quote Originally Posted by DarkAngelBGE
    There is also some dropdownlist (from 0 to 100, in 5-steps) that lists the progress as a percentage value, which can be changed.
    This is more user interface fluff I am afraid and worse, you are prejudging the solution. You want to list progress as a percentage of jobs done or you want people to set the percentage for a task? If the latter then your system is just adding more work for people. For example, would it not be better for each task to have list of subtasks with time estimates against them? Then the task could calculate it's own percentage of completion as work was done.

    The value to the customer here is knowing the progress of the project so far. You should state it in these terms and leave out anything to do with implementation. Clear designs start with clear requirements.

    Unfortunately, getting the requirements clear is no easier than getting the design clear . I would start with the simplest possible solution, such as task done or not done (what counts as done?). Write that and then show them the results in action. Once they see it they will be in a position to tell us what they really wanted all along.

    Quote Originally Posted by DarkAngelBGE
    That should be about as much information as you need to have some fun, no?
    Er...no.

    Choose one valuable output of the system in "business speak". What is it designed to achieve. You might even want to coin a mission statement for the application. Talk to your business people and find out what they expect from the system.

    In the meantime, pick something that you are sure that is needed and we will weave it in for that vital third iteration.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  7. #32
    SitePoint Wizard
    Join Date
    May 2003
    Location
    Berlin, Germany
    Posts
    1,829
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Is there some rough rule somewhere that determines what is business logic, when to use user authentication instead of http authentications, etc. ?

    All those fundamental rules.

  8. #33
    Non-Member
    Join Date
    Jan 2004
    Location
    Planet Earth
    Posts
    1,764
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    When I meant an image, what I meant was that you'd use Javascript to alter an image, from 0 - 200 pixels for example, to represent your 100 percent ?

    Wouldn't be too difficult using the DOM actually To alter the tasks completion percentage, you could use RADIO buttons, in 20 percent increments for example, no ?

  9. #34
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by DarkAngelBGE
    Is there some rough rule somewhere that determines what is business logic, when to use user authentication instead of http authentications, etc. ?
    No, but hey...we get paid more this way!

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  10. #35
    SitePoint Wizard
    Join Date
    May 2003
    Location
    Berlin, Germany
    Posts
    1,829
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    When I meant an image, what I meant was that you'd use Javascript to alter an image, from 0 - 200 pixels for example, to represent your 100 percent ?
    Nope, I simply concatenate the same image n times (n being the percentage value). DOM could be useful too for this task.

    No, but hey...we get paid more this way!
    Heh, nice one.

  11. #36
    SitePoint Addict silent's Avatar
    Join Date
    Jun 2004
    Location
    Roaming North America
    Posts
    220
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by lastcraft
    Write that and then show them the results in action. Once they see it they will be in a position to tell us what they really wanted all along.
    Not to bust in on this semi-private thread, but, what are the business users asking for in this Task Manager application (if they are asking at all)?

    I mean, if the business users (i.e. not the internal IT department) are asking for a "Task Management" application, then, surely these business users must think that their existing task management processes aren't "up to snuff".

    For example, let's say these business users are using Excel and Outlook to manage tasks and projects currently. Let's suppose that these business users are currently terribly inefficient at coordinating even the simplest of project tasks (usually, these user types are incessantly in "meetings" to "discuss" things...)

    Do these business users expect that this new application will fix their current inability to coordinate with each other on projects using their current processes? If so, in what ways shall this new software compensate for their current failures?

    Not to be cynical, and, frankly I am enjoying the high-level design discussion, but, have the business users attempted to address the true causes of their inefficiency, or are they simply looking to IT to fix shortcomings in their own internal processes and communication channels?

    Correct me, but aren't those the questions that business users should be asked before any of this discussion even starts?

    cheers,

    jay

  12. #37
    SitePoint Wizard
    Join Date
    May 2003
    Location
    Berlin, Germany
    Posts
    1,829
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey jay.

    Yes of course you are right. We (I am belonging to this business) are an online game developer who only meets in chat rooms and on forums. Therefore they thought some task manager tool that reflects the the tasks of each department would be needed.

    I see now where the real problem lies...the REQUIREMENTS.

    I asked my project leader to type something up for me, which he will post here soon (I hope ).

  13. #38
    SitePoint Wizard
    Join Date
    May 2003
    Location
    Berlin, Germany
    Posts
    1,829
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Okay here is the first draft of he new DD by my boss. Please tell me guys what you think.

    Code:
    WFG Intranet Task System
    
    Draft Version: 1.0
    
    Design Document by Jason Bishop (jason@wildfiregames.com)
    
    Purpose:  The purpose of the task system is to enable better staff management at Wildfire Games
    
    Introduction:  The task system idea came about in early 2003.  There have currently been 2 different working versions of the internet/task system.  The WFG chairmen found the tool to be most useful, and the following is a design document for the next version of the task manager.
    
    1.	Staff Hierarchy
    
                1.1.	Primary Group – Projects/Other (example: 0 A.D., TLA, Web Development, Community Development) This is mainly to distinguish between the greater groups.  There is one unique administrator to each of these groups are called project leaders.  They have full admin powers throughout the entire system.
                1.2.	Secondary Group – Departments (example: programming, graphics, news, moderator) This group is to separate the Primary Group into departments.  There is one unique administrator per department and they are called department heads.  They administrate over the staff attached to their department.
                1.3.	Tertiary Group – Divisions (example: AI, Networking)  Some departments are so large that they are broken into staff groups that are easier to manage.  This subgroup level is called divisions.  Each division has a division lead that administrates over all the staff attached to that division.
                1.4.	Staff – These are individual and unique to each staff member
    
    2.	Staff Privileges
    
          2.1.	Project Leaders
                2.1.1.	Can create/delete/modify departments – also edit/modify department description
                2.1.2.	Can create/delete/modify divisions – also edit/modify division description
                2.1.3.	Can add staff, remove staff, mark staff as away
                2.1.4.	Can assign tasks and sub-tasks to all staff
                2.1.5.	Can edit task descriptions for all staff
                2.1.6.	Can delete tasks for all staff
                2.1.7.	Can check off task as completed for all staff
                2.1.8.	Can edit all comments
                2.1.9.	Can edit project and department notifications
                2.1.10.	Can edit project and department links
          2.2.	Department Heads
                2.2.1.	Can create/delete/modify divisions – also edit/modify division description in their department
                2.2.2.	Can assign tasks and sub-tasks to staff that is attached to their department
                2.2.3.	Can edit task descriptions for staff that is attached to their department
                2.2.4.	Can check off task as completed for all staff that is attached to their department
                2.2.5.	Can edit department notifications
                2.2.6.	Can edit department links
          2.3.	Division Leads
                2.3.1.	Can assign tasks and sub-tasks to staff that is attached to their division
                2.3.2.	Can edit task descriptions for staff that is attached to their division
                2.3.3.	Can check off task as completed for all staff that is attached to their division
          2.4.	Staff (all staff)
                2.4.1.	Can update personal information
                2.4.2.	Can report progress on task
                2.4.3.	Can make entries in personal blog
                2.4.4.	Can submit task for review of completion by the individual who assigned the task
                2.4.5.	Can comment all tasks in project they are attached to
                2.4.6.	Can mark themselves as away and enter estimated date of return
                2.4.7.	Can assign themselves tasks
                2.4.8.	Can view all project and department pages
                2.4.9.	Can accept free-floating tasks
    
    3.	Navigation
    
          3.1.	Log In
                3.1.1.	Simply entry of name/password
          3.2.	Main
                3.2.1.	WFG News
                3.2.2.	Menu of WFG Important Links
                3.2.3.	Menu of Projects
                3.2.4.	Link to Staff Roster
                3.2.5.	Link to Control Panel (project lead/department head/division lead/staff dependant)
                3.2.6.	Link to Main Staff Roster
                3.2.7.	Listing of all tasks currently outgoing this user
          3.3.	Main Staff Roster
                3.3.1.	Following Columns: Real Name, Alias, Project, Department
                3.3.2.	Ability to sort alphabetically by clicking on column header
                3.3.3.	Clicking on user name would take you to their personal information page
                3.3.4.	Clicking on department would take you to Department Staff Roster
          3.4.	Department Staff Roster
                3.4.1.	Following Columns: Real Name, Alias, Tasks Assigned (includes subtasks), Tasks Completed, Ongoing tasks, Date of Last Progress Report, Away (yes/no; if yes – date of return)
                3.4.2.	Clicking on user name would take you to their personal information page
                3.4.3.	Ability to sort alphabetically by clicking on column header
          3.5.	Project Main
                3.5.1.	Project News (editable by project leader, and department heads)
                3.5.2.	Menu of Important Links for project
                3.5.3.	Menu of Departments
          3.6.	Department Main
                3.6.1.	Department News (editable by project leader, department heads, and division leads)
                3.6.2.	Menu of Important Links for department
                3.6.3.	Link to Department Staff Roster
                3.6.4.	Link to archive of completed tasks
                3.6.5.	Listing of free-floating tasks in that department
                3.6.6.	Listing of current uncompleted department and divisional tasks
          3.7.	Assign Task 
                3.7.1.	Who do you want to send to assign it to? Drop down menu of name selection
                3.7.2.	Type of task? Drop down menu (on-going, one time)
                3.7.3.	What is the difficulty? Drop down menu (easy, medium, hard)
                3.7.4.	What department? Drop down menu of department choice
                3.7.5.	What is the target date of completion?  Drop down menu month, field day, field year
                3.7.6.	Task Title: Field
                3.7.7.	Task Description: Field
          3.8.	Assign Sub-Task (parented to regular task – so some field are assumed)
                3.8.1.	Type of task? Drop down menu (on-going, one time)
                3.8.2.	What is the difficulty? Drop down menu (easy, medium, hard)
                3.8.3.	What is the target date of completion?  Drop down menu month, field day, field year
                3.8.4.	Sub-Task Title: Field
                3.8.5.	Sub-Task Description: Field
          3.9.	Task Navigation
                3.9.1.	Visible: Task Title
                3.9.2.	Visible: Task Description, if longer than 100 words require click link for more
                3.9.3.	Visible: Latest progress report for this task
                3.9.4.	Visible: Percentage complete
                3.9.5.	Visible: Last date of progress report update
                3.9.6.	Visible: Date progress was assigned and who assigned it
                3.9.7.	Visible: Target date for completion
                3.9.8.	Visible: Difficulty and Type
                3.9.9.	Link: Edit Task
                3.9.10.	Link: Edit Progress Report
                3.9.11.	Link: New Subtask
          3.10.	Completed Tasks
                3.10.1.	Listing of Completed tasks, 20 per page
          3.11.	Personal Information
                3.11.1.	Real Name
                3.11.2.	Alias (uneditable)
                3.11.3.	Join Date (field - editable only by project leader or department head)
                3.11.4.	Project (menu drop down selection - editable only by project leader)
                3.11.5.	Department (menu drop down selection - editable only by project leader)
                3.11.6.	Division (menu drop down selection - editable only by project leader)
                3.11.7.	Personal Website Link
                3.11.8.	Forum Avatar (uneditable)
                3.11.9.	Forum Signature (uneditable)
                3.11.10.	WFG Email
                3.11.11.	Alternate Email
                3.11.12.	MSN Identity
                3.11.13.	Job Responsibilities
                3.11.14.	Current Location
                3.11.15.	Birth Year
                3.11.16.	Home Town
                3.11.17.	Interests/Hobbies
                3.11.18.	Favourite Musician/Band
                3.11.19.	Favourite Computer Games
                3.11.20.	Long Biography
                3.11.21.	Short Biography
                3.11.22.	Currently Working On (uneditable - list of current tasks tittles)
                3.11.23.	Quote
                3.11.24.	Time Zone
                3.11.25.	Online Times (per day of the week, to/from fields – enter in times at your time zone and your Time Zone entry will convert to GMT)
    Last edited by DarkAngelBGE; Jun 30, 2004 at 09:17.

  14. #39
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    On your current course your project will fail.

    Quote Originally Posted by DarkAngelBGE
    Okay here is the first draft of he new DD by my boss. Please tell me guys what you think.
    Horrific . This is "over the wall" planning and doomed to failure. Remember how hard it was to find your way around 27 methods? Well now you have 128 .

    If that took 2 hours to write, then that is one minute per feature. What do you reckon the chances of those 128 features being the really important ones? The right ones? Most of them sound like they were pulled from thin air. Lot's of filing by this department and that division to no real purpose. Why do you file things? To look neat? Really? On a computer? You file things so as to be able to find them again. Why not just have a full text search? Now that would be useful. The detail has forced a design that was pulled out of the air in two hours, You have actually gone backwards.

    How did you end up with something so useless? I think you asked for a specification. Wrong question. That's more like a legal document and usually has nothing to do with real requirements. Where's the mission statement? How does it make anyone's life better? This would have been much easier to write. You could have stopped your boss in the corridoor and just asked him. Would have saved you both a lot of time. Requirements are much easier than specifications. They are "what" rather than "how".

    To make things worse the items are defined in detail, right down to who can edit what and what they see on each menu. That is more like designing the application than simply listing requirements. That's your job and has to do with usability. If your boss writes stuff like this, you will find yourself over constrained when you tackle it in real life.

    Sadly, getting requirements in this form is pretty typical. Faced with the impossible challenge of listing everything they want, the client went into too much detail just so they could think. They probably thought this was there only chance and you were going to mechanically come back with the whole project finished without intervention. There is no need to think this way. This is an in-house project right? You don't need a laundry list. If you forget something, then put it in later. The requirements task is actually easier than you (and your now harassed boss) are making it.

    The question is "what do you want to be able to do next month"? Expect a one or two sentence reply. Make them realise that you only want a single starting requirement and that you will be asking for more later. This builds in priorities and stops you being overwhelmed by pretty pointless peripheral tasks. Anything later does not need to be described in detail, you'll tackle it when you get there. You will ask your boss again.

    However, for now these statements are all we have so let's try to turn it into a document that may actually be useful one day. We need to extract...
    1) essential domain concepts
    2) the tasks that this project must do (use cases)
    3) priorities of what to do first.

    I am looking through now and I can see a few concepts emerging. For example what are "free floating tasks"?. Tasks are one as are project managers. Divisions seem to be just labels (as usual) so they can be ignored for now. Write a small glossary of terms trying to get one sentence for each. This is something that you can show your boss when you are stuck (total investment of his time = 30secs).

    This first step should clear your head as well.

    I can see that adding comments are important. How do I know this? Because this is the only thing actually done to the tasks . What is the content? Can you get an example from somebody? What would somebody on this project actually write here? What does a comment look like? How are they coping with this problem now?

    As far as priorities are concerned, just rip out all of the permissions and security stuff for now. Take a back up of your "requirements" and go through and delete anything that is a permission or a menu option and labelling and fluff. What's left...?
    Code:
    2.1.4.	Can assign tasks and sub-tasks
    2.1.5.	Can edit task descriptions
    2.1.6.	Can delete tasks
    2.1.7.	Can check off task as completed
    2.1.8.	Can edit all comments
    2.1.9.	Can edit project and department notifications
    2.2.5.	Can edit department notifications
    2.4.2.	Can report progress on task
    2.4.3.	Can make entries in personal blog
    2.4.4.	Can submit task for review of completion by the individual who assigned the task
    2.4.5.	Can comment all tasks in project they are attached to
    2.4.6.	Can mark themselves as away and enter estimated date of return
    2.4.7.	Can assign themselves tasks
    2.4.8.	Can view all project and department pages
    2.4.9.	Can accept free-floating tasks
    3.2.1.	WFG News
    3.2.7.	all tasks currently outgoing this user
    3.6.4.	archive of completed tasks
    3.7.2.	Type of task?  (on-going, one time)
    3.7.3.	What is the difficulty? (easy, medium, hard)
    3.7.5.	What is the target date of completion?
    3.8.4.	Sub-Task Title:
    3.8.5.	Sub-Task Description
    3.10.1.	Listing of Completed tasks
    3.11.1.	Real Name
    3.11.2.	Alias
    3.11.22.	Currently Working On
    3.11.25.	Online Times
    Not so bad now. Some of these (most in fact) are just data fields. It looks to me like tasks are "mini-blogs". Does this design metaphor fit? Ask him.

    The problem is again I cannot find anything that actually happens other than task completion and coment additions. Task completion is vague at best. Looks like there is some sort of review process - you will have to go back and ask for business rules on this.

    Reading the tea leaves here would be my first possible use cases...
    1) Creating a task
    2) Adding a comment
    3) Marking a task as complete

    The trouble is I bet there is more stuff in this project than is being stated explicitely. The departments may have more influence than the spec. would suggest. Anyway suggest these use cases as prelimenary work and ask for others. Make your use case list in conjunction with him, timeboxing the discussion to 10 to 20 minutes. Writing the tasks on postcards works well. This is an ongoing process.

    Once you have a few tasks ask him what he wants in the next two weeks. Estimate the time for each of them and then ask him again which ones he wants to drop or add. Ask him about the business value (dollar value if possible) of each to help him prioritise. What you have then is your work queue for the next two weeks. Make sure you deliver, or if you cannot inform him early.

    You must get something working and in front of real users as quickly as possible. Armed with real feedback you will be able to settle arguments on the relative priorities of various items. Your boss will be happier this way and so will you.

    That will put you on the road to success .

    With luck your laundry list will be abandoned. Don't quietly forget it, just make sure that it is examined in each meeting. Suggest that silly items (all those categories) can be replaced with simpler more flexible systems (full text search?). A rethink in light of the mission statement and working code may change things as well. For example, what about leaving an audit trail rather than worring about security? Much more flexible, so does it clash with the mission statement or usage in the field?

    Hopefully he will simply cross out the junk once he sees the thing in action. Early requirements are always wrong whatever you do.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  15. #40
    SitePoint Addict silent's Avatar
    Join Date
    Jun 2004
    Location
    Roaming North America
    Posts
    220
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by lastcraft
    How are they coping with this problem now?
    Exactly what I was saying earlier. Marcus, I completely agree with your assessment, but before any (more!) action is taken, shouldn't the question be answered whether an existing solution (as there are way too many task management/blogging/project management solutions already) would suit the needs.

    I mean, the 30 seconds of the boss's time aside, we're looking at potentially hundreds of hours of coding here. All on a project that has previously been written, and re-written. There are hundreds of PM solutions out there, and even the most expensive open source ones (US$500-600) would have 10x the functionality proposed already.

    Tim, evaluate your own time spent coding for weeks in comparison to $500 plus some training man-hours, and I think a pre-built solution would be a better bet. I'm sure your boss wouldn't mind the enormous cost savings!

    my two cents, and, marcus, I do actually agree with 99% of what you wrote; just think that even that would be overkill in this situation...

    cheers,

    jay

  16. #41
    SitePoint Member
    Join Date
    Sep 2003
    Location
    WA
    Posts
    7
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey guys, Tim asked me to stop in and make a reply.

    I'm the 'boss' that Tim's referring too and who typed up that "horrific" DD To give you guys a little bit of a background on what we are attempting to do with this task manager, please read this link:

    http://wildfiregames.com/0ad/viewtopic.php?t=164

    We are just a bunch of virtual, hobbyist, game developers. In other words, we are a bunch of ‘wannabes’ hoping we can collaborate on a project that will successfully propel us into the professional game development world.

    If it sounds like we don’t have a clue of what we are doing, well that is because we really don’t. We are just trying to complete the game and we manage to do a lot of trial and error mistakes along the way. I guess that’s the nature of being a newbie in this biz.

    Tim asked me to type up a little DD of what he was he was trying to accomplish. I think he asked me to write it because he was loosing site of the forest while walking among the trees; and I’m assuming Tim asked me to post here to show that we aren’t crazy. But, you be the judge when you finish reading the post

    Not to bust in on this semi-private thread, but, what are the business users asking for in this Task Manager application (if they are asking at all)?
    Ok, so to go back to the point, we are a virtual game developer… meaning we don’t operate out of an office, all the staff members voluntarily, and the internet is our sole communication channel. We aren’t an official ‘business’ no matter how we make an effort to make it appear that way. The intranet that Tim is developing is ‘virtual office’ so to speak. The main part of that is the task manager that Tim is working on here.

    I mean, if the business users (i.e. not the internal IT department) are asking for a "Task Management" application, then, surely these business users must think that their existing task management processes aren't "up to snuff".
    Right, I guess you could say that typical task management process that are usually employed in the business world aren’t up to snuff, because we aren’t capable of doing task management like a ‘normal’ game developer would do. This is mainly due to our team being fractured by oceans and time zones.

    Do these business users expect that this new application will fix their current inability to coordinate with each other on projects using their current processes?
    I hope so! But, its purpose isn’t to curb ‘inability of coordination’; instead it is to refine it.

    Not so bad now. Some of these (most in fact) are just data fields.
    You are correct; most all of this is just simple data fields. You could say it is very ‘forumish’ in nature. In fact, I’m not sure if Tim has mentioned this, but much of what we are trying to do linking the forum database to this intranet database. In fact, all the security and most of the personal information stuff is connected back to our forum database. I’m also not sure if Tim mentioned this, but 75% of what I have written here… Tim’s already got working. We have the staff different levels of the users (project leader, department head, division leader, plain ol’ staff), We can create/delete/modify departments, add staff, remove staff, mark staff as away, edit task descriptions for all staff. The parts we are missing is the UI. Right now, I have to go into the mysql and insert data manually instead of some sort of admin panel.

    I’m not sure why exactly Tim made this thread, because I think he most of it completed. He is probably looking for advice and recommendations to improve and streamline his code? Tim was asking me on MSN the other day that there were flaws in his design for the task manager, and he wondered should he scrape what he currently has and salvage code from it for a better design; a design that was evolving from this very thread? I told him that our primary goal is to gain real life experience from our passions here at WFG, and if there is quick and dirty way to do things or a long and learning way to do things… he should take the later. That is what will help us gain experience for the real world.

    Anyway, I’m rambling and I lost my train of thought. Thanks for you help, I hope you guys can help Tim find the answers to what he’s looking for.

    I’ll see if I can answer some of your questions:

    I can see that adding comments are important. How do I know this? Because this is the only thing actually done to the tasks . What is the content? Can you get an example from somebody? What would somebody on this project actually write here? What does a comment look like? How are they coping with this problem now?
    Here is an example:

    User = lastcraft
    Department = history
    Task Description = Write up a 200 page article on Roman formation tactics for the website
    Difficulty = 1
    Type = One Time
    Target Date = July 28, 2004
    Assigned by = Wijitmaker
    Assigned date = June 30, 2004

    That’s the task, now say 2 days later you input your progress report:

    Progress Report Date = July 2, 2004
    Progress Report = Having some trouble finding some resources for the article. I’m going to go to the library next Wednesday and see if I can find something. I at least started researching though.
    Percent Complete = 10%

    Now, here you come back and input another progress report:

    Progress Report Date = July 7, 2004
    Progress Report = Went to the library, but first watched Spiderman II (pretty cool flick BTW). Found a few books, and got some good photocopies from there. Still would like to find some more information on where Roman ballista were typically placed at the battle lines. Typed up most of the article.
    Percent Complete = 80%

    And here is where a comment could come in:

    User = silent
    Comment Date = July 8, 2004
    Comment = Hey saw you were looking for some of that ballista information. I found some stuff a while ago, and now it’s useful! I’ll email you the document, hope it helps!

    Then, here is your last progress report:

    Progress Report Date = July 8, 2004
    Progress Report = Thanks silent, it was exactly what I was looking for. Was able to finish the article and I posted it up on the website. Another task bites the dust.
    Percent Complete = 100%

    It looks to me like tasks are "mini-blogs". Does this design metaphor fit? Ask him.
    Certainly does. With the example you see above, that’s in essence what they are. It’s a way for the department leaders to see exactly what everyone is doing and work their way through a goal sheet they have typed up, which will ultimately lead to the completion of our game dev. Process. It beats trying to chase down everyone with email and instant messenger to see what they are up to, and if they need help or another assignment. It’s a one stop shop to manage all the guys in your department. Also, guys can see what others are doing. And finally it’s a way to gauge the development process and can be quite a motivational tool.

    Task completion is vague at best. Looks like there is some sort of review process - you will have to go back and ask for business rules on this.
    When a task is complete, it gets archived (task heaven). People can go back and look at the archives to view dates of things done or go back and review… would be great for post-mortems. Then, the department head would get a notification that a task from his department has been archived. He can go check it out, see who it was tasked to, check if they need a new task, and give them one if needed.

    what are "free floating tasks?
    Those are tasks that haven’t been given to anyone. They are up for grabs. If someone wants to take the task, they check a box, submit, and the task is now assigned to them.

    Well, there is probably more questions here to answer, but its getting late.. need to get some sleep.

    Thanks guys for your help, and I hope I don’t come off as to loony

    I’ll be back to answer any more questions you might have.

    Edit:

    bb code fixes

  17. #42
    SitePoint Addict silent's Avatar
    Join Date
    Jun 2004
    Location
    Roaming North America
    Posts
    220
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wijitmaker: (nice name, BTW! )

    I hear you loud and clear on some of the "higher-level" points you made; agree with most everything, except perhaps to say that, IMHO, "real world experience" many times means finding the right pre-built tools and working with them -- changing your own processes to fit the tool often is more efficient than trying to fit the tool to your own processes...

    That said, I applaud and recognize your fundamental desire to learn, and I think that's great.

    ------------- moving on ------------------

    What marcus said earlier in the thread about giving a task a specified "hours to complete" data field and having subsequent "task updates"/"progress reports"/"minitasks" provide the main task with a time spent amount makes a lot of sense given your reply.

    Instead of having progress reports that manually set a percentage complete of the main task, instead have the task history entries include a "time spent" data field, that will add to the task's "time spent" field. This way, the task automatically keeps track of its "competion %".

    I like to think in terms of hours and days when estimating and filing progress reports. It allows me to simply fill in the hours I worked on the sub-task and not have to worry about what "percent" I'd filled in... Going along this line of thought, let's I estimate a task to be 100 hours, based on a "feeling" of how long it's going to take. Over the next few days, I enter a number of task history entries into the system, entering in the hours it took me to complete each sub-task. Every so often, I (or a manager...) checks in on the main task, and sees that X % of the task is completed. Perhaps underneath the % completed, she sees a list of outstanding subtasks that may not yet be completed (or assigned). This gives her a pretty good idea of where the status of the task is, and whether she should allocate additional resources based on some deadlines.

    Continuing with the example, let's say I complete the task, and mark in all my completed tasks with each having the number of hours worked. I find that I have spent 60 hours, not 100 hours, completing the task. Oops.

    Let's assume I then go and mark the status data field of the task complete.

    So, what do I now have? Well, a lot more information about how the task/project turned out! Without entering actual hours, I would have simply updated the % completion to 100%. OK, great, but that doesn't give me any REAL information as to how the project turned out. With the number of hours data field, the task status data field, and the % complete calculated field, I now have enough information to determine:

    1) The status of the task
    2) How many hours it took to complete
    3) The actual vs estimated hours difference (this is crucial when analyzing a project's ongoing efficiency and effectiveness)
    4) The hours each task took to complete

    which is much better than simply a task status and a highly subjective % completed data field (versus calculated field)

    YOu can take the example further by assigning each task a type data field, and making sure each sub-task has both estimated hours to complete and actual hours to complete. When that is the case, you can pull reports such as:

    1) Estimated Vs. Actual Hours by Task Type

    This could show you the exact project areas where estimations are either falling short or coming in over the top. Say you set up type for "development", "research", "management", etc., and ensure each task (and subtask...) is assigned to a type, you can then see whether research, development, or management is being underestimated. This gives you the information you need to properly allocate or adjust your team...

    2) Gantt

    Gantt charts are based around timelines, and they use actual hours and days to display in a linear fashion how and when a project is to be completed. Without storing actual and estimated times to complete, I don't know any way that you can produce a Gantt type chart.

    Hope I haven't rambled on too long. This is a great discussion so far!

    cheers,

    jay

  18. #43
    SitePoint Member
    Join Date
    Sep 2003
    Location
    WA
    Posts
    7
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wijitmaker: (nice name, BTW! )
    Hey thanks It was kind of funny to see a "Widow Maker" in this thread because my name was intended to be a play of that when I started using the nick 5 years ago.

    I hear you loud and clear on some of the "higher-level" points you made; agree with most everything, except perhaps to say that, IMHO, "real world experience" many times means finding the right pre-built tools and working with them -- changing your own processes to fit the tool often is more efficient than trying to fit the tool to your own processes...
    Yeah definitely. We looked around for such tools a year ago. It seemed most of them were overly complicated for the pretty simple we were looking to do. Like you said:

    There are hundreds of PM solutions out there, and even the most expensive open source ones (US$500-600) would have 10x the functionality proposed already.
    That pretty much our findings. They were usually A) over technical for what we were looking for and it seemed the extra features... just made it confusing; and B) cost money that we don't have as we are a freeware project.

    But, yeah, it would be good to look at some of the php code they wrote and use some of the concepts they used in thier design.

    The estimated hours vs. the actual hours is a great idea! Like you say, we could get some pretty good reports off that It hadn't occurred to me to do something like that, but now that you mention it... I think that would be really useful!

    What you think Tim

  19. #44
    Non-Member
    Join Date
    Jan 2004
    Location
    Planet Earth
    Posts
    1,764
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

  20. #45
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by Wijitmaker
    I'm the 'boss' that Tim's referring too and who typed up that "horrific" DD


    It is really the process that is horrific of course (certainly nothing personal was meant). It is also so very common to get requirements in this form .

    Quote Originally Posted by Wijitmaker
    and I’m assuming Tim asked me to post here to show that we aren’t crazy. But, you be the judge when you finish reading the post
    Not crazy. I think it will be doubly important to be aware of process when working remotely, especially as you cannot be stopped in the corridoor for a chat. Hm, tricky...how is it working out?

    Quote Originally Posted by Wijitmaker
    The intranet that Tim is developing is ‘virtual office’ so to speak. The main part of that is the task manager that Tim is working on here.
    Presumeably to be used alongside IM solutions as well.

    Quote Originally Posted by Wijitmaker
    You are correct; most all of this is just simple data fields. You could say it is very ‘forumish’ in nature. In fact, I’m not sure if Tim has mentioned this, but much of what we are trying to do linking the forum database to this intranet database.
    To give this thread some kind of closure I'll take a punt at your requirements (only fair) and you can point out possible difficulties. I'll pretend that it is not yet started, otherwise I would have to know too much current information. I'll pretend also that I am in your shoes.

    Task manager...

    Mission: This tool should keep track of ongoing tasks for a geographically separated development team. It should report the state of the project. Each task is a mini blog that can be picked up and owned by a developer.

    First iteration: We want to open and close tasks.
    1) Should be able to add tasks. Tasks have a goal description.
    2) Comments can be added as a mini blog to the task.
    3) A completed task is submitted for review. If successful it is archived as complete.
    4) Security is by web server access files (temporary measure).
    5) Developers need to show their current tasks.
    6) A developer should be able to pick up a free floating task.

    Second iteration: We want to log hours.
    1) New tasks should have an estimated number of hours.
    2) Developers can log hours completed against a task with a comment.
    3) A report of the state of the project can be created.

    Third iteration: We need to be able to find relevant tasks.
    1) Full text search of archive and current tasks.
    2) Listing tasks (archived and current) by developer with hours.

    Additional as and when:
    1) Need to be able to split tasks into subtasks.
    2) Need to be able to group tasks in as yet undefined ways.
    3) Need to harmonise security with the other site components.
    4) Need to add additional meta information (project, etc) to tasks.

    Notice how things get more and more vague the further into the future we go. Notice how we have something useful in the first iteration so we can get rapid feedback on how things are going. This is what I mean by requirements rather than a full spec. You only do enough planning to get you to something immediately useful. Somewhen during the second iteration the whole lot will change I am sure, so there is no point in listing anything in detail when an e-mail will just resolve the problem if it arises. This is typical.

    Quote Originally Posted by Wijitmaker
    I told him that our primary goal is to gain real life experience from our passions here at WFG, and if there is quick and dirty way to do things or a long and learning way to do things… he should take the later. That is what will help us gain experience for the real world.
    Cool. The most sustainable route is to keep training your developers. Nothing improves productivity like it.

    Quote Originally Posted by Wijitmaker
    It beats trying to chase down everyone with email and instant messenger to see what they are up to, and if they need help or another assignment. It’s a one stop shop to manage all the guys in your department. Also, guys can see what others are doing. And finally it’s a way to gauge the development process and can be quite a motivational tool.
    Actually this is a much better mission statement than the one I wrote.

    Quote Originally Posted by Wijitmaker
    Thanks guys for your help, and I hope I don’t come off as to loony
    I would have a look at some of the software process stuff out there. There is alot of stuff on work queues and chuns of work (e.g Scrum) that you could cherry pick from. Requirements stuff especially. Even if you don't use any of it I think it will give you an eye for spotting potetial problems.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  21. #46
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by silent
    3) The actual vs estimated hours difference (this is crucial when analyzing a project's ongoing efficiency and effectiveness)
    This is often the only figure I ask teams to keep. The ratio is called load factor. If you estimated a task at 2 days and it took 5, then your LF is 0.4.

    What do you do with your next task? You try to get a better estimate, right? Strangely this doesn't work so well. You will still get an over optimistic assessment. In fact even after three or four goes you will be lucky to be within a factor of two . Something about programmer nature.

    Here is a system that works better. Get developers to estimate time in "ideal days". Ones without interruptions and screw ups. Now take that figure and divide by your current average LF. Use this new figure to plan your project. Although you are encouraging people to underestimate this way, the figure will at least be a consistent underestimate as it takes out a lot of the second guessing. It works surprisingly well, and most teams settle down to about 0.33 to 0.4 LF.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  22. #47
    SitePoint Member
    Join Date
    Sep 2003
    Location
    WA
    Posts
    7
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Holiday weekend, I'll reply when I return

  23. #48
    SitePoint Addict pachanga's Avatar
    Join Date
    Mar 2004
    Location
    Russia, Penza
    Posts
    265
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    @lastcraft: i just wonder why there were no test cases yet

  24. #49
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by pachanga
    @lastcraft: i just wonder why there were no test cases yet
    I think the best time to build acceptance tests is at the start of each iteration so that you know when you ae done for one cycle. So they wouldn't be far away .

    In fact putting the detail into the tests saves you cluttering and tangling your requirements. Helps to keep the requirements high level and flexible and also means that the detailed stuff appears only once. It also means that the details are checked by machine (they love that) rather than humans (we hate that).

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  25. #50
    SitePoint Wizard
    Join Date
    May 2003
    Location
    Berlin, Germany
    Posts
    1,829
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Well, I will remind Jason of this thread I think.

    One other issue I am having is how to implement the permission system? I mean I have a good start with the one from the php anthology, but as you see there need to be more fields then like "allowedToEditTasksOfMembersOfSameDept", etc.

    Any idea on how to better implement it?


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •