For the last couple months, I’ve been the primary developer for a new social network with a unique spin on dating. While I have gained quite a bit of knowledge and experience from this project, I feel like I have also seen the direct results of making the wrong moves when it comes to dealing with users, and specifically site features. Even though there was extensive planning involved, unforeseen problems as well as usage anomalies caused the reality to differ from the design dramatically.
The Idea – What’s in a Name?
In order to have a successful project (especially with something involving active design) you have to plan everything out very well. Figure out what you are going to do. Cut the fat by examining the purpose of each feature and design element. Why would the user care? Why would the user use it? These questions, along with many, many others, all have to be considered before you start. Sometimes things change – like in the case of Tagged which was initially marketed as a Facebook for high school, but eventually settled on being a “social discovery” network.
In the case with Holla at Ya Girl, these questions weren’t all answered before I jumped into it. I knew what we wanted to do, how we were going to do it and why. Eventually I realized that we lacked several basic ideas for site usage and features. These features were added later on, but at a cost to user experience. The features luckily didn’t change the dynamics of the website, which is still a fun, casual and nonchalant dating network. I felt confident then, and still do in the name. The site is for adults to hook up and hang out. The name is very memorable, to the point and gives the user a sense of how formal the site is.
Interpreting the Idea – Design Challenges
Once the idea was well thought out, it was time to move on to the specifics. What exactly is the user going to be able to do? What will the site look like? What happens when certain conditions are met? What happens when those conditions are not met? The need for specifics when developing a site like this is almost overwhelming. Consider building a house, or a large structure. The planning is the foundation. You cannot just dump a load of concrete and start building. The land has to be leveled. The foundation has to be set up so it will be able to support the building on top of it. The same concept applies towards social networking. If there isn’t a well-developed foundation, the site will go nowhere, very fast.
Now that we have a well-developed plan for the site, it’s time to start having fun (programmer fun that is)! One of my favorite things to do is design logic for computer systems and programs. The logic of any digital network determines from the beginning whether it is going to run smoothly, or run into major problems later on. Designing the logic of a script is probably the single most important step for any project. We know what the site will do, but don’t yet know exactly how. What technologies will be used? How will we implement different features? How about integration with other popular websites?
Designing the framework so the site itself works efficiently with the databases and is redundant in regards to user actions is the best sign of a well thought out script. Good logic puts you in a good position to determine what is going to happen before it even happens. By keeping it simple and directing the application to have clear routines for processes that are all unique, you can be confident of a scripts’ ability to perform flawlessly prior to running test simulations. The logic of the program is just like the structure of the building. We have the foundation, but we need to know how the structure is going to stand, and how it is going to withstand other variables, like wind and rain.
This step is the last step in actually creating the site. This is equivalent to the bricks used to complete the exterior. Even though they’re primarily used to determine outward appearance, they’re still substantial and provide several functional properties in addition to a sleek façade.
The different languages, technologies and standards were selected for Holla at Ya Girl long before the first line of code was written. We used countless technologies to provide the best experience we felt was possible, while also allowing the network to be easily modified, updated and improved. Actually coding the site can become tedious and outright boring at times. In the process of actually coding Holla at Ya Girl, I used a total of 9 web and 1 desktop development languages.
This was as much a project that allowed me to test new ideas and improve my abilities in several areas as it was about the site itself. The combination of programming languages and processes were optimal still (I didn’t elect to use a new technology just because I could), allowing for minimal load times and a fast, feature rich user interface. All parts of development are a compromise to some degree, but updated languages and relationships between data and display have allowed modern applications to tap into the best of both worlds. Who says you have to give up functionality for efficiency?
It’s Done, Now break it!
One of the most entertaining aspects in any kind of web development is testing. These tests include stress tests to see how the site will react to a large volume of users, security testing to figure out where the vulnerabilities are and how they can be exploited, and an overall what if test. What if certain conditions are met within a certain period of time?
All of these tests can be performed manually, and most were for Holla at Ya Girl, but we developed bots to perform several tests for us. This way we could focus on other issues while the tests were being completed. Each bot performed its required actions and logged the results autonomously. We were able to look at a formatted report instead of a bunch of raw data. The bots are the inspectors, much like architectural, electrical and structural inspectors make sure your building is up to code. After they say it is ready, you can move on to marketing and finding users to rent your house; or sign up for your site in our case.
Development of the site was fun and tedious at the same time. It takes a lot of effort, time and patience. You might finish a section, realize it doesn’t follow the logic you designed earlier and have to totally scrap it. You can minimize revision time by developing your basic framework with basic features, and then adding on plugins through hooks and add-ons. Some of the work will be relatively simple. Overall, I would say development of this site was a valuable experience for me. I will always see improvements that can be made, but I felt like the finished product was up to my standards. I have been by people with advice for what they’d like to see on the site, some venture capitalists and entrepreneurs that are interested in hiring me for their projects, and even about developing a similar site for those that do not meet the age requirement for Holla at Ya Girl – which would be simple since I have much of the programming and testing completed.
The fact that a little imagination and crap load of source code can create such amazing things, like entire social networks, still inspires me. Do you ever think sometimes “I wish I could design my own Facebook to fix all their problems they have, and invite all of my friends?”
The truth is that you can, and even though you’re not likely to replace Facebook, a quality design and experience can quickly propel your community to the top of any niche. Don’t have the knowledge to program an entire social network from scratch? Hire a programmer like me to do the leg work, but make sure that you play a large part in the decisions and problems we discussed. I encourage every reader to visit HollaAtYaGirl.com to see my handiwork, and to see what is possible.
Let us know: What is the extent of your programming ability?