Thursday, May 30, 2013

The CS 210 Experience

CS 210 is...

Software Engineering + Product Management +
Founding a Company + Managing Group Dynamics


CS 210 provides hands-on experience with...

- Knowledge and rational capture
- Market awareness - brainstorming, need finding, and benchmarking
- Rapid prototyping
- Agile development (Scrum framework)
- Readme Driven Development (RDD)
- Distributed source control (Git & Github)
- Issue tracking (Trello)
- Team communication (email & Facebook group)
- Documentation for new employees (Google Drive) + potential customers (blogging)


CS 210 requires from its student teams that they...

- Build team identity (team name, logo, members pic + bio, communication channels, product definition/mission statement)
- Develop and iterate on product ideas aligned with sponsoring company's (SAP) product theme
- Engage in user feedback driven prototyping ("pink bagel" testing)
- Present to company (SAP) liaisons at various product stages (in Palo Alto and on campus)
- Convey how the team would attract desirable new hires ("closing a candidate")
- Formally demo software twice - at the course halfway mark and at the end of the course
- Present to an unaffiliated corporate audience (ShopKick)
- Present to company (SAP) at international headquarters (during spring break in Walldorf, Germany)
- Compose necessary documentation to onboard a new hire efficiently
- Maintain a blog presence throughout product development
- Enter into a contract with company liaisons on what team intends to deliver by course end
- Launch product to a real-world audience

My personal takeaways...

- Just because you like someone doesn't mean you'll like working with them on a long-term basis
- Around The Corner (ATC) would have benefited from more frequent user feedback during development - we developed in a vacuum most of the time
- The ATC team should have elected a media relations manager in its later stages to organize outreach
- User interface design is HUGE
- Having a solid team and product identity promotes team bonding and unity (why t-shirts matter)
- Assigning team roles and responsibilty over particular product aspects is crucial to really getting things done
- Rotating a few key members through the acting role of "CEO" can be effective in managing burnout
(section may be updated in future)

Saturday, May 11, 2013

What is TechM?: Vision

First of all, "TechM" stands for "The Tech Machine." You'll see why if you read the proposal linked to below.

In preparation for presenting TechM to our SAP liaisons (as discussed in "The back story"), I prepared proposal documentation outlining my entire idea:

"The Tech Machine: Proposal" (now outdated)

In this proposal, TechM was originally thought of as a way to make the benchmarking process (as heavily championed by the CS 210 teaching team) more streamlined and effective. It was going to be a product that helps you discover pre-existing products in a space more quickly, an app for discovering the next up-and-coming apps or products or ideas, an app that can organize tech blogs and track up-and-comers based on hype and popularity (i.e., a HypeM for tech blogs). Then the idea was to eventually let users hashtag or link different up-and-comers together to allow for a search tool that lets you navigate pre-existing products or products within a certain space.

The idea has evolved greatly since this proposal.

My teammates pointed out that since HypeM is a web application, perhaps this idea also makes more sense as a web application rather than an Android or iOS app. I agree, especially since I believe that native applications will eventually fall out of favor, and cross-platform mobile applications will soon dominate the market.

An observation that I made is that the idea outlined above has two core features: (1) aggregation and organization of tech blogs, and (2) comprehensive search of the result set from this aggregation and organization. Feature (1) is a mammoth task unto itself, so why not focus on that as the sole core instead?

A third observation comes from my life as a college student these past four years. When I lived at home with my parents and younger sister, the living room television was always on (except if everyone was not home or sleeping), even if no one in particular was watching it. And about 95% of the time, the television was tuned to the news - whether it was the 24-hour news cycle of CNN or MSNBC, CBS Evening News or W-MAR ABC 2 local news, Dateline or Nightline. And occasionally, the television was tuned to more "frivolous" news like SportsCenter or Entertainment Tonight. Bottom line: news was the constant chatter in the background of my pre-college life.

Once I came to college and lost easy television access, that chatter vanished entirely. I had to actively search for all my news for the first time in my life, and I hated having to do it daily. I hated the idea of having to scroll and click through dozens of articles a day, teasing out 10 or so articles that may actually interest me. Even the new mobile news apps popping up everywhere (Pulse, Flipboard) were too verbose and time-consuming most of the time to satisfy my needs. And I didn't like the idea of picking out a few "interests" and "passions" like technology or music to read about - rather, I was more interested in being aware of whatever big things were happening in the world since the last time I checked in. So with no solution in sight, I sank into my Stanford bubble and became grossly unaware of the world at-large. If news reached me, it reached me by mistake - like I happened to see it in my Facebook news feed, or someone mentioned something at a meal. And I was not alone in this behavior among my peers - some of my peers had never been very aware of the news to begin with. Their parents weren't like mine, attached to world affairs.

These three observations made after my initial TechM proposal shaped the idea even further. Now, TechM aims to:

  1. Be an HTML5 web application that is compatible with mobile devices
  2. Aggregate and organize technology-related (to begin with) news stories. But much more than that: extract the entities - persons, organizations, products, events - most vital to each story and build an index that can determine a hype and buzz factor around these entities within any given time frame (the most important time frame being a single day at first).
  3. Build an experience that delivers the entire daily news landscape to users succinctly. This product is not a destination, but rather a pit stop designed to get the user in, out, and on with their day as efficiently as possible.

The back story

February 11, 2013:

First small group meeting (SGM) for my CS 210 team. CS 210 (Software Project Experience with Corporate Partners) is a two quarter-long sequence of classes that fulfills the senior project requirement for CS majors at Stanford. My team was sponsored by SAP, a multinational, multi-billion dollar corporation that provides enterprise software solutions, and we called ourselves the "Socially Awesome Penguins" (or "SAPenguins" for short). Cute, right? I came up with that name.



On February 11, we were just coming away from a pretty disappointing reception by a panel of venture capitalists on our first product idea - mobile-to-mobile screen sharing. The VCs (invited by the excellent Jay Borenstein to provide expert opinions to all the project teams in the class) called our concept uninspired and unambitious. They thought we had a lot more potential to do something great.

So in that SGM, we committed as a team to seeking out fresh, new project ideas to present to our corporate liaisons from SAP on February 20. We ditched the screen sharing idea, and we ditched all the other half-baked ideas that screen sharing had beat out over the last month. After a week-and-a-half of intense brainstorming, featuring a couple long and arduous team brainstorming sessions in Old Union, we settled on presenting our liaisons with two new ideas - code-named "SmartSense" and "TechM."

February 20, 2013:

Long story a little bit shorter, SAP liked the "SmartSense" idea better because it tied in with the project theme they had originally given us - letting the mobile device become a proxy for the identity and/or context of a human user. "SmartSense" gradually evolved into "Around the Corner" and became our final project direction - essentially, a mobile application that allows users to observe and utilize the paths along their daily commutes to find new venues they haven't discovered yet, despite passing by these venues all the time, despite them being "around the corner."


"TechM" did not connect to the SAP project theme, and given that they were our financial backers, it was reasonably tossed out without further thought. But "TechM" was my brainchild from the marathon brainstorming sessions, and I still saw great potential in the idea. This senior project class was not to be the right platform for turning this idea into a product, and so I am free pursue it as an individual.

Read more about the vision behind TechM.