Skip to content

Instantly share code, notes, and snippets.

@runemadsen
Created April 26, 2011 00:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save runemadsen/941519 to your computer and use it in GitHub Desktop.
Save runemadsen/941519 to your computer and use it in GitHub Desktop.
Thesis essay
1. Introduction
Since the birth of the software development discipline, programmers have dedicated time and effort into creating digital tools that optimize the process of going from an initial idea to a fully fledged product. This task is a hard one. How do you model a tool to support the non-linear, unstructured process of thinking? How do you create a tool that allows you to turn your thoughts into a digital document? A tool where you can build upon this document, iterate away on tangents when you get inspired, and quickly revert to a former state if this proved unsuccessful? More important, how do you create a tool that allows a group of people to collaborate on the same project, when that project doesn't have a structured form yet?
One answer to this question is the concept of a version control system, that today plays a central role in any serious software development project. It allows individuals to iterate code-based projects in a flexible environment, and to share these improvements with collaborators. Some of these systems, like Git, allows this collaboration to happen in a way that closely models how people share knowledge and inspire each other in real life: via de-centralized, tangled networks. Over the last 5 years, Git has made a tremendous impact on how programmers collaborate and share open source projects, especially after the release of Github, an online git hosting community.
Even though Git so closely models the kind of real-life environments that optimize creativity and innovation, the use of these version control systems outside of the software development world is close to none.
The premise of my thesis is that these version control systems, and especially Git, are more than a tool for streamlining programming, but a new and more flexible way of working with anything involving iteration.
My thesis project Versionize is a web-based tool for iterating ideas individually or in groups, built on the version control system Git. Versionize is made for optimizing ideation - the process of going from an initial hunch to a fully fledged idea. From no structure to structure. It is a personal tool for people to write down hunches, and keep iterating them by adding text, images or links to them. It is also a collaborative tool, as these hunches can be made public for anyone else to participate in the iterative process. It is a structured and flexible replacement to the personal sketch book.
To understand why I believe Git makes for such a great tool for ideation, one also has to understand what kind of environments enable creativity. In this paper I will try to explain how good ideas come about, what makes git such a great tool for this, and how I created Versionize as my thesis project to test this thesis.
2. Ideas and creativity
In my thesis I've been using the word idea to describe the inspirational process of going from an unstructured thought to a structured concept. This is a process you find in almost any creative field: music, architecture and graphic design. In arts, science and engineering. Although these fields use different tools, this process is - in the words of Steven Johnson - remarkably similar:
The patterns are simple, but followed together, they make for a whole that is wiser than the sum of its parts. [...] cultivate hunches; write everything down, but keep your folders messy; embrace serendipity; make generative mistakes; [...] let others build on your ideas; borrow, recycle; reinvent. Build a tangled bank."
People tend to think of brilliant ideas as something rather singular and anti-social: a brilliant mind sitting alone in his lab or studio, who suddenly gets struck by lightning, and a creative impulse falls upon him, so powerful that it can only be sent by higher powers. We’ve all heard the stories about Mozart, Newton or Einstein who’s work single-handed redefined how we think of the world. Although this sort of innovation plays an important role, Johnson claims that this is actually not the way most ideas come about. Instead, most ideas can not only be attributed to the people around us, but also to the current state of society at large. These ideas take on the opposite characteristics of the former ones: they form in environments where people talk and learn from each other, where iteration is of key focus, and where the final idea has no single owner, because it came about in a social and entangled way.
Johnson's conclusion is that an unmistakingly large number good ideas - even far back in history - can be classified as coming from non-market based, networked inventors. The idea that the free market’s competitive characteristics drive innovation seems not to be the whole truth, if not a lie all together. Even though great ideas often need a single, devoted person to develop them, they also need people around them to provide critique, noise and spillover from other ideas. In places where people from different fields have unconstrained interaction, good ideas happen.
This has been a key focus of my thesis: To create a tool that not only serves as a central repository for inspiration and iterative tests, but also a tool that can provide the necessary spillover from other ideas or people, when going from no structure to structure. These 2 key features, networking and iteration, seem utterly important if creating a tool for optimixing creativity.
3. Current tools
All the words from my presentation
Single state - you're afraid of moving forward
Un-networked
So what tools do we have that supports this unstructured structure?
One important thing to notice is that there seems to be a divide between what tools people use for as personal tools and as collaborative tools. How many collborative tools do you know?
Personal tools:
Write stuff down in a personal sketch book
Bookmark stuff / Instapaper
Collaborative tool:
Google Docs
It's the premise of my thesis that these tools do not work well enough as a central place for your messy folder, nor as a central place for collaboration. git does
4. Git
Why is Git so good?
History of file changes
Go back and forward
Branching
Merging
Share work
Pull / push
Github
All these features seem destined to be used outside of the world of programming, yet no one ha succesfully created something on the Git software that can be used for ideation.
Versionize
Versionize is an attempt to create a tool that works equally as well as a personal tool and as a collaborative tool. A tool that allows for all of these above features.
Versionize is meant to be a tool you use for your personal notes AS well as a collaborative tool. Actually, it works best if you start messy folder -> open it up for collaborators
----------- Take the things below and copy / paste up in the correct section -----------------------------------
>> Introduction
>> Ideas and creativity
>> Tools we have for ideation, how people work now
To be able to understand why I believe Git will improve almost any creative workflow associated with digital documents, let's look at what kind of tools we currently have for
People do repititive tasks
[People still mess around with files on their computer in multiple versions]
>> Git history
>> Git features
So how does Git this different?
Commits - every time you save, it saves a screenshot of your file structure. You can navigate back
--- however these the features are hard to use for beginners.
One of the few outstanding fields that continually keep developing new ideation tools is the field of software development. Software developers want to share their work, and they are capable of building their own tools to do it. In the heart of every software development process is the version control system, which allows the single programmer or team great flexibility in the ideation and development process. Let’s focus on Git and Github as an example. Git is a Version Control System built by Linus Thorvalds for the development of the Linux Operating System. The basic concepts of Git is commits, branches and repositories. Every time a programmer starts a new project, he also creates a new Git repository. Whenever the programmer feels he managed to get a task done, he commits the current state of the project to the Git repository. A commit is like a backup of the files, and in the end of a project a programmer can have hundreds or thousands of commits. If his program ever breaks, he can always roll back to an earlier commit, and the files on his computer will reflect how the code looked when that commit was made. This gives great flexibility in the ideation process, as the programmer can allow himself to “think in code”, and throw away the results immediately if it doesn’t work. Another important aspect of Git is branching: the ability to not only have a timeline with snapshots of earlier commits, but to have multiple timelines. A branch is exactly this, a way to branch out and have multiple current versions of the same project. This makes it even easier for the programmer to test ideas quickly. Create an “experimental” branch to do all the work in, and when it works, merge it back into the master branch. If it doesn’t work, delete the “experimental” branch, and everything is back to normal. This flexibility is key to a productive environment. Github takes these concepts and moves them to the internet. It allows you to upload your Git repositories easily (with all the commits and branches in your repositories), and share the code for free on their site. This enable all other users on Github to grab the code into a new repository owned by them, work on it, and notify the original user to pull the changes back into the original repository.
What’s important about systems like Git is that it allows the programmer to not care about failure. It allows him to work out of a tangent, and immediately revert the project to an earlier state if this doesn’t work. It also allows the programmer to make the code public on the internet, and allow everyone else to participate. This is highly in sync with Steven Johnsons description of how good ideas come about. But outside the world of programming, version control systems are not widely in use, even though the process of ideation people perform often model this structure closely.
Instead of using software, many use an idea book as a central repository for their ideas. Every time inspiration comes, the given idea is updated, and several ideas can turn into one on paper. Even though this process is a nice, tangible way of conveying an idea, it’s the exact parallel to a programmer using a a notebook to write down code. In the beginning it’s fast because you always have a pen at hand, but you lose important functionality that is core to the ideation process. You lose the general overview, search functionality and the innovation tree provided by the version control software. You lose the ability to have multiple versions of the same idea, and you can’t link your idea to other ideas.
>> Github
>> Versionize
Versionize was originally a tool for myself
For my thesis I’m taking the concepts from the version control system and applying them to an online website, which is both going to be a personal tool and a community tool for ideation through iteration. The website is called Versionize and is built on top of Ruby on Rails and Git. Instead of writing ideas down in a book, this website will allow the user to create ideas in an online interface. Every time an idea is updated, a new version is created, and the user can always navigate back to older versions. A user can also create several branches of the idea, working on the same idea in many different forms at the same time. Creating and updating an idea will be very similar to that of maintaining a Tumblr blog. It’s crucial to me that the process of ideation is simple and structured, yet flexible enough to not constrain the user in a bad way. On top of this the site will have community features that allow users to search through public projects and create new projects from these. Some sort of social network functionality and reward system will also be implemented. The following is a series of mockups of the basic features:
When creating a new idea the user can fill in idea name and description. He can also add more content like on a blog.
When an idea has been created and edited multiple times, the current version will be highlighted, and an interface to navigate back into older version will be shown in a bar to the right
Every idea has some sort of visual explanation of the ideation process. The user can navigate to a specific version by clicking it. This also gives the user an overview of many users created branches of the idea.
When browsing the site for ideas, any idea or part of ideas can be dragged to the dropbox to the right. The user can collect different parts of ideas on the site, and create a new idea from these. The idea tree map would show references to these ideas also.
A user can add links to content on the internet to an existing idea. By pressing a bookmark, the user can select specific text, photos or video to save to an existing (or new) idea.
Versionize will be free and open for anyone to participate. I believe the site will attract people between the age of 20 and 35, as these are the users who are in majority on other sites dedicated to creativity (Vimeo, Flickr, etc). The perfect user profile is a person who’s already carrying around an idea book and a smart phone, and who’s willing to try new tools to optimize their ideation process.
>> Existing sites
The idea-sharing site is a concept that has been tried before, and there is still a number of sites offering people to share ideas online. However they differ from Versionize in a number of crucial ways.
None of them manage to give the user a tool for ideation, as they only focus on sharing ideas. The problem is that sharing is not the main focus for the user, content is. It is only when the user has created something of value that he wishes to open it up to everyone else, and no value is created on these sites. This brings me to my next point that ...
... sharing ideas is not the same as sharing projects. An idea can be many things, and if the only cue you give the user is to “share his ideas”, then that’s exactly what you get. Short, uninteresting and often bad concepts. These sites are full of them. An idea can be many things, and these sites definitely get the lowest denominator. But give the user a tool they feel optimizes their own personal creativity and I promise you the ideas posted on the site will be different. I want to create something people will use as a personal sketchbook.
These sites allow little or no room for iteration. This comes back to my major point, that none of these sites create a tool. When you’re only focused on creating a database of listings, your focus is not on the iteration process.
>> Conclusion
I think this is a highly relevant and important project, and the possibility of creating a community tool focused on ideation is exciting. Collaboration is a key part of everything we do at ITP, and it’s astonishing how few creative tools are actually built around this concept. When ITP students meet with a new group, the first action is always to create a new Google Document. ITP students are often busy, and ideation must happen online. But imagine a different process, in which Versionize plays a part. The group could create a standard project idea as a starting point. Every student in the group could then start branching out ideas, iterate over a number of different branches, and merge ideas that end up with similar characteristics. The group could the meet again and try to merge these branches into one, or decide to focus on a single branch. It’s simply a more powerful way of conveying all the different inputs from every person in the group. And not only that. All the ideas suggested by each individual in the group will always be visible in a structured tree that is browsable for anyone. When the group is finished iterating the project and make it public, visitors will only see a complete and defined project, unless they decide to dig through the iteration tree map to see how the group settled on exactly this project branch. This is a direct model of the group dynamics that happen in everyday offices, and I believe it to be a strong tool to help students, companies or anyone else interested in creating something of value.
@XelaAl
Copy link

XelaAl commented Oct 21, 2021

This is exactly what I'm looking for. Thanks for sharing! And I'm sure I'm not the only one who finds this info to be helpful.

@Emili121221
Copy link

very cool job! I'm sure you got a good grade! Reading your work, I recall a time when I did not have to write such a work, but in medicine. it was very difficult for me, especially writing the documentation. But nursing paper writers helped me put everything right: without plagiarism and mistakes.

@ArtemVolf
Copy link

I finally found the information about the best UK essay writing services. I've been wanting to find this information and share it with students for a long time. On the website TopBritishEssays.com you can check out the most popular services on your own. You just need to choose one of these services and make the necessary orders.

@WilliamThompson7
Copy link

UK Dissertation www.uk-dissertation.com/ is a site that focuses on PhD paper writing, but they also offer services to students at other levels. Their writers are very professional and capable of handling all kinds of topics. They offer affordable prices and a guaranteed delivery. Their customer support team is helpful and responsive.

@KennethBruno
Copy link

Thanks for sharing your experience, it's very interesting for me. I now want to try to prepare my own written work with the help of your theses.

@Gabriella971
Copy link

Good afternoon! When choosing a platform for completing academic assignments, I always pay attention to many key points: the quality of the content provided on the site, the unique features that the site offers and how they differentiate it from competitors, security. I am interested in reviews because it allows me to better understand which services on the market can be trusted to write an essay for me without worrying about requirements and security. Exploring these aspects through reviews helps me gain a better understanding of what makes a site unique and what benefits it can offer me.

@artur290911
Copy link

Currently, the topic of using artificial intelligence in education is very popular, especially writing different types of essays. They can write essays, summarize long readings, and even help with faster Internet searches. One outstanding tool is Rytr me – it's efficient and budget-friendly. I have used it several times in my interests. But we believe in the possibility of choice. So, after some digging, we have listed 10 https://www.linkedin.com/pulse/rytr-ai-alternative-top-10-freepaid-alternatives-tool-nayeli-ellen-4xpee other tools, both free and paid, that are equally good for academic tasks and can be a worthy alternative to Rytr.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment