Monday, February 28, 2011
Agenda for Second Meeting
Friday, February 25, 2011
Roberts Rules of Order
Wednesday, February 23, 2011
Agenda for first meeting
Tasks:
- Nominate a product owner
- Make a wiki with product backlog / tasks to do
- Have a script that can log onto facebook and access the Farmville app
- Establish a database and write a script that goes online, verifies the identity of the server, and then sends and receives verification of its certificate in the server database.
- Give "point" values to upcoming tasks on list based on time required
Sprint workshop:
- decide how many points to aim for on this iteration
- discuss in detail (user stories) all items to be accomplished this iteration
- estimate time to be taken by each sub-task and figure out how much time each team member will devote to getting this sprint done. Include "stretch" tasks for being done early.
- establish where we'll work and have a TODO list, "test cases in progress" list, "code in progress" list, "ready to be verified" list, and a "done" list
- establish a time for every day to briefly all check in together and report on progress since yesterday. Have scrum leader update "burndown" chart to indicate hours needed left to complete sprint.
Remember:
- team members should try to work on the same code together, and when your tasks are finished early, work on someone else's or a sprint task.
- review every sprint at the end, the burndown chart, the team velocity, discussing what went well, what could be done better, and what will be done differently next time. Continue process through every iteration.
First meeting with team
Monday, February 21, 2011
Pharmville specs
- This is based on the Volere Requirements Specification Template.
- Allow customers to gain experience, prestige, and credits inside Zynga games in an automated manner. This goal is actually a set of goals to be attained, and can later be transformed into a set of goals to make the service faster or more reliable over a set period of time.
- Starting small, we expect revenue to be in the 10s of dollars by the end of the semester. Further goals will not be stated here.
- Have the product and company comply with all state and federal laws, avoiding torts and copyright infringements.
- The product shall employ online verification mechanisms to avoid being hacked and distributed without permission.
- Production team shall learn how to employ agile techniques in the product development cycle, how to advertise on Facebook, how to program in Python, and how to use some of the Facebook APIs for python.
- Follow the direction of the teacher
- Be legal
- Use python, php, SQL, and developer APIs
- We expect school, as well as team members' houses. Maybe even the institute.
- Other classes
- 10 weeks
- No money
- Not started yet
- Not currently important
- TBD
- Users are to play with the product, but not reverse engineer or otherwise misuse it
- TBD
- Should be broken down into atomic parts, and kept track of by the product owner
- The product shall maintain a history of what it's done for the user
- The product shall check in with a server every 15 minutes for verification
- The product shall allow user to set different behavior modes
- There shall be a user database, that includes payment receipts and history
- The product shall be user tested by a wide demographic
- We'll cross that bridge when we come to it
- The product shall be easy to use
- The product shall be tested for sensitivity to audience's sense of appropriateness
Sunday, February 20, 2011
Imperfect Voting
Facemashing the Proposals
Friday, February 18, 2011
Thursday, February 17, 2011
Rank / score / name
(verbose notes in previous post)
00 / mine / JH
01 / 95 / TDG
02 / 85 / NS
03 / 83 / AR
04 / 80 / JD
05 / 78 / AH
06 / 76 / AK
07 / 68 / JD2
08 / 67 / IG
09 / 63 / LAG
10 / 55 / ANS
11 / 45 / DWS
12 / 41 / JD1
13 / 40 / GIA
14 / 38 / SM
15 / 37 / VS
16 / 35 / E
17 / 25 / MM
18 / 23 / AS
19 / 22 / ED
20 / 20 / BFR
21 / 18 / RH
22 / 15 / WC
23 / 13 / KN
24 / 11 / ALH
25 / 10 / CJA
26 / 05 / EA
27 / 03 / DH
28 / 00 / K
Tuesday, February 15, 2011
Thoughts about proposals (desirability going up to 100)
Friday, February 11, 2011
Concept Paragraph(s)
I originally wanted to design a web service that connected local service sector businesses with consumers, allowing consumers to rate the businesses that they have interacted with. The idea was to have a space for businesses to advertise and name their price, motivated by a need to find affordable local tutors by parents and college students, but extendable to small businesses advertising their services. A major factor in the design was how to allow the site to earn money. It could take a percentage of business transactions, like eBay, but local businesses could simply meet with their clients and not post their transactions online. It could make money by requiring merchants to pay a premium to post a larger amount of data or to be listed first on search returns. This functionality could stagnate the growth of the site if not done well. It could make money through advertising clicks, which may be effective after becoming more popular.
A great aspect about such a web service is that the design can be made simple, it can fill a niche market that isn’t quite filled yet, and it can start local and expand as revenue is made, thus paying for itself early on. This service has a chance to enable the service-sector entrepreneur – and in today’s job climate, it really has a chance to take off.
I don’t want that idea owned by UNM.
Thus, my second idea is to design a sophisticated bot to play through parts of the World of Warcraft MMORPG. This bot will not be sold to users. Instead, it will be used by several private machines to harvest gold on multiple WoW accounts. Websites will be set up that allow WoW users to buy gold for the game at competitive prices. A lot of effort in the project will be spent on preventing WoW administrators from discovering the bots and banning accounts / email addresses, and some effort will be spent on figuring out what countries we can host servers / our LLC in that can avoid legal issues with Blizzard. Early phases of the project will be carried out using unofficial Blizzard servers to begin testing out Blizzard with more formidable bots. Time will also need to be spent on making the UI that controls the bot easy to configure in real time, and also in writing or finding tools to assemble and analyze the massive data flows we will be experiencing as we run our project.
The motivation behind my second idea is to simply spend idle CPUs at cents per hour performing rote tasks that game addicts are willing to spend dollars for.
Agile development
This is what I gathered from looking at Scrum and Extreme Programming and narrowing down the ideas for our class:
1) Have a “product backlog”, which is a master list (via Google docs or something) of every feature and project-related issue from the user-perspective (not expressed as technical tasks) atomized into stand-alone doable tasks (not interdependent)
2) Nominate a “product owner”, who dedicates themselves to the completion of the project, the elucidation of its requirements, and the only one able to prioritize the product backlog
3) Negotiate as a team (minus the product owner) on the “points” of the highest priority items on the backlog and let the product owner decide whether to change priorities of certain tasks
4) Decide as a team how long to “sprint” for each iteration – for a 10 week project, every 2 weeks is about right
5) Hold a sprint workshop, where the team decides how many points to aim for on the iteration (over iterations, figure out the “velocity” of the team – points completed per iteration), they discuss in detail every item on the backlog that is to be completed this iteration, forming “user stories” to describe the bare bones of all the features to implement this cycle
6) Figure out time constraints for the team for the sprint. Break down all features into sets of tasks to be performed, estimating the time each task will take to complete. Decide on what will constitute being “done” with this iteration, and try to state all tasks or sets of tasks as “deliverables”. Make sure each task takes a day or less to complete. Adjust the goals for this iteration based on time estimates, also including “stretch” tasks if the team delivers earlier than expected
7) Establish a place to work with the team, and a place where the incomplete goals for the sprint (user stories) can be written down, along with (in columns) a TODO task list, an “test cases in progress” list, a "code in progress" list, a “ready to be verified” list, and a “done” list.
8) Hold a 10 minute daily meeting at the same time, where each member briefly reports on what they have achieved since the last meeting, what they will achieve before the next meeting, and anything that may be holding up their progress. Also update an iteration “burndown” chart, which indicates the hours of work, as a team, needed to complete the sprint, compared to original estimates per diem.
9) Get members of the team to work on the same code together, whenever feasible, and when a team member finishes their tasks early, have them work on the tasks of another member. Everyone should be familiar with everyone’s code, ideally.
10) Review every sprint at the end, the burndown chart, the team velocity, discussing what went well, what could be done better, and what will be done differently next time. Continue process through every iteration.
Wednesday, February 9, 2011
Functional vs Nonfunctional project components
Preliminary review of Amr Saad's project proposal
The design of the program seems to require universities to sign on-board, as well as a considerable amount of back-end work: databases in different locales, security protocols, and website design on top of any mobile applications.
The creation of a small games software suite is a great idea -- however, such suites do already exist and it is hard to see why combining it with a mobile chatting app would be of any benefit. It might be more feasible to integrate gaming apps directly into an already existent social application, such as facebook or twitter.
Thus the project seems to have too broad a scope and doesn't seem to have any way to make up the costs of the extra work required in building such a multi-featured app.
Jim Collins, in his book "Good to Great", explains the difference between what he calls the "hedgehog" approach versus the "fox" approach. A fox is wily, and knows many things, whereas a hedgehog knows one big thing. It turns out that companies tend to be successful most often when they focus on the one big thing they can do, that outcompetes everyone else. For this to be a viable idea, the project proposal needs to pare down the expected costs, and focus on the one big thing their app can do that will hold its own. Will it be a social app or a gaming app? In 12 weeks it can't be both.