The week is coming to an end and that means it is time for us to look back on the week that passed, the best design news, resources and other goodies. This week we look at amazing WordPress Themes, 2013 for web designers, as well as trends and predictions for 2014, amazing ways to showcase your portfolio and much more.
Clean and minimal web design has certainly grown in popularity, and typography plays a big role in this type of design. If you have been struggling to find the right font for your clean designs, we’ve rounded up 8 fresh free fonts that you should find very useful.
Holiday season is here and this year will come soon to an end. Web designers released a bunch of great, high quality, free WordPress themes last year, and we collected the best 20 to showcase in this post. Here are 20 Best Free WordPress Themes that we want to share with you now. Which ones are your favorite and which ones will you download and use in your own projects?
In 2013, we covered a ton of new apps, resources, and more for designers and developers. In fact, we covered hundreds of resources! So rather than you having to go back through our archive of posts, we’ve gathered up the best of what was new over the past year in one place! We’re not including everything (after all, some resources are no longer available, sites may have changed hands, apps may no longer be active, etc.), but rather have put together a true “best of” compilation, with more than 130 entries! Including our favorite featured font from each month! Enjoy, and let us know in the comments what your favorite new resources were for the year!
Music is one source of creative inspiration, there are times that we rely on music to boost our creativeness. It has been a flavor of our daily life, it can be in our home, in our car, office lounge and not to forget our little tiny media player. Music web sites have evolved over time to become one of the most diverse and creative genres of web designs. Every website is unique, has its own purpose, and speaks to its audience in a different way. For web designers, one factor that must always be kept in mind is the target audience of the site you are designing. This post is of music sites that do a wonderful job of designing for their audience.
Couple of months ago I showed you how to create RSS feed logo with CSS3. I figured it’d be fun creating something a little bit more complex. In today’s post, I’m going to show you how to create not one, but two variations of Gmail logo using just CSS3.
As a web design enthusiast, I’m constantly on the look-out for what’s hot and what’s not in the web design world. While some may think that trends are just passing fads, I beg to differ – trends are what makes ideas grow to fruition, and what better way jump early on the first bandwagon than to predict these trends yourself? Here are some web design predictions I collected. There are only single day left until the month of January is upon us – hopefully most of them would come true.
Drawing and sketching were once activities limited to pencil and paper, but for budding artists in the digital age, there’s a wealth of online, browser-based tools to let your creativity run wild. It doesn’t just have to be a hobby or pastime, though — drawing is useful for brainstorming and problem-solving, and these web apps can aid in any profession. We’ve picked 12 of the best drawing and sketching apps to suit any level of artist, ranging from professional-grade applications to simple tools for doodling. They’re all free, and since they’re all online, they can be accessed from anywhere.
Adobe Muse comes like a revolution in Web Design industry. It helps users in creating websites without writing any kind of coding. Everything can be done in design mode and your website will be ready without any complications. In this article I collected some of the most wanted Adobe Muse Templates from 2013.
Whether you’re a web designer, developer, photographer, writer or any other type of creative professional, you need to show off your work using an attractive portfolio website. A beautiful portfolio not only helps you get new clients, but also build your brand and network. So having your online portfolio is a must to promote you and your work on a global stage. This is where great online portfolio tools step in and get useful. Without programming knowledge or a prior design, creating a good-looking portfolio is a very time-consuming and complicated task. But don’t worry, there are plenty of tools out there which let you showcase, share and sell your work online by creating a standard portfolio. In this post, we’ve compiled 15 of the best online portfolio tools that are ideal for you to present your creative work to the world. Let’s have a look at them one by one.
As a programmer, you spend a lot of time in front of the computer. Well, that’s not something unusual mainly because 90% of us are spending a lot of time in front of a computer. But as a programmer, and in our case as a web developer, you actually need to be productive and not just browsing reddit therefore a good IDE is needed in order to accomplish your tasks. There are many versions out there, free or not and after all, it’s mostly a matter of taste but I think that 10 of these IDE’s are worth knowing about. In this article you can see a collection of 10 powerful IDE which are great for any type of web developer.
Web development is a rapidly changing and evolving space. So is the way people read and consume content online. This is why it is important to keep your site design up to date with the latest trends and techniques. If you don’t your site will fall behind and will start looking out of date and old fashioned. It might seem difficult and complicated to keep up with the latest trends, especially if you are not a developer, but this is where using WordPress and having access to thousands of themes and plugins comes very handy. You can join most of the trends below by switching to a more modern theme or by installing a plugin or two. Not much actual coding and development is needed from your side.
This is the yet another new collection of Photoshop UI Design free PSD files for Web and Graphic Designers. All PSD files are available for free download. This is a fresh collection of free PSD files, no doubt, these psd files are very helpful and save lots of time on design projects. This is not the as usual long list with all the available PSD Files on the web, but it’s an latest collection of handpicked high quality free PSD files for designers.
2013 was a great year for one page websites around the web, and 2014 is looking even better! We saw new trends and techniques take off in 2013, like responsive web design, flat designs, and even more parallax than the year before. One Page Mania also had a makeover… rebranding, redesign, and tons of great new features added. Thank all of you for your support, especially from the design community for feedback and great submissions:) So, without further ado… here is a list of our favorites (mine and yours)… made up of some of my personal favs, and the sites with the most votes from you. These are in not in ranking order, but divided up by categories. If you don’t see your favorite site, let us know to include it in the comments below. Enjoy, and don’t forget to share it:)
This time, we have gathered for you guys, more than 95 out of the box Responsive HTML5 Premium Landing Pages. A Landing page can be a great marketing tool to augment the loyalty of the visitors of a website. It welcomes a visitor with a distinctive outlook of a website denoting something special in the page the visitor is currently visiting. A successful landing page is required to have an easy navigation, light weight and elegant design. It should be enthralling enough to make visitor deem the content in that particular page as his mere objective. Lander, an online marketing terminology stands for these landing page. Online advertisement or search engine results are often directed to these landers for the best outcome. However, with an increased usage of mobile devices, the landing pages have been hit hard with a serious issue of responsiveness. Thanks to media query which have repeatedly helped off to get over with the mess. Also, one should not neglect the role of HTML5 in web designs. It is verily the HTML5 that have taken the web designs to a whole new level. Below is the manifestation of the aforesaid. Have a look at 95+ Ideal Responsive HTML5 Premium Landing Pages.
Research wall, design wall, research board, ideation wall, inspiration board, moodboard, pinboard — Working walls are known by countless names. Underlying them all is a single idea: that physically pinning our sources of inspiration and work in progress, and surrounding ourselves with them, can help us to rearrange concepts and unlock breakthrough insights.
In their 2009 paper on creativity in design, human media interaction researcher Dhaval Vyas and his colleagues coined the term “artful surfaces” to refer to “surfaces that designers create by externalizing their work-related activities, to be able to effectively support their everyday way of working.” According to Vyas and his colleagues at the University of Twente (in the Netherlands), designers integrate these surfaces “artfully” and organize information in such a way that it empowers them to visualize and extend their work in progress.
Working Walls And Design Thinking
In this article, you will learn how displaying data and ideas on a large vertical surface can enhance your design thinking process. One of the first things to know is that the practice of using “working walls,” as we will call these surfaces from now on, is scarcely documented in scientific literature — hence, the need for a working definition of a working wall (redundancy intended). For the purpose of this article, we’ll define it as a large vertical surface on which ideas, data and work in progress can be displayed, rearranged and extended.
This design thinking tool being as powerful as it is, it comes as no surprise that a myriad of other fields have adapted and used it for years. But just how do working walls come into play in design thinking? Tim Brown, president and CEO of IDEO, defines design thinking like so:
“A human-centered approach to innovation that draws from the designer’s toolkit to integrate the needs of people, the possibilities of technology, and the requirements for business success.”
To further define this approach, The Institute of Design at Stanford (or d.school) has outlined five steps in the design thinking process:
It all starts with empathizing with the people you are designing for. Then, you define a clear perspective of the process by making sense of a large amount of information. You proceed with ideation, exploring a wide array of concepts and generating possible solutions. Prototyping involves building an object (or artifact) that a user can experience and give you feedback on. Testing is about triggering an actual response from your intended user.
Working walls can facilitate every step of the design thinking process, and they offer unique advantages to bolster creative thought. The tool can help us empathize with and gather input from users, define a focused approach based on a large amount of data, capture the ideation process, display a low-fidelity prototype that users can interact with, and keep track of the way we’ve tested our creative assumptions.
Hopefully, the following benefits and working wall templates will inspire you to create your own today.
1. Empathize: Enable Peripheral Participation By Users
Large vertical surfaces can be used to spark interaction with your intended users. Wall-sized displays allow for easy visualization and intervention, which makes them particularly useful for consumer research.
Vyas and his group spent over 250 hours studying design departments at universities and companies in the Netherlands and concluded that artful surfaces are “an important vehicle for peripheral participation in a project, allowing visitors to enter its context.”
They labeled this participatory environment a “creative ecology,” where users are free to interact via their inputs on working walls.
5 Guys Burgers and Fries, for instance, has been using working walls to invite customers to describe their dining experience.
(Image: Carly Baldwin, NJ.com)
Here’s a working wall template that you can use to gather input from your audience and to empathize with their wants and needs:
Try out some of these prompts:
- Name one thing you love or enjoy about X?
- Name one thing you hate or dislike about X?
- What would you change about X?
- How does X make you feel?
2. Define: Synthesize Key Findings By Detecting Affinities
Once you’ve collected information about your audience, pinning the raw data onto a working wall will help you to rearrange and make sense of it. This type of working wall displays what we call an affinity diagram. Although people have been grouping similar ideas under labels for thousands of years, it was Japanese anthropologist Kawakita Jiro who originally developed the affinity diagram in the 1960s.
The premise of an affinity diagram is that, at first glance, several points of our data might seem unrelated, convoluted or unclear. However, by grouping related concepts, we are able to detect patterns that will help define our design approach.
Consider private detectives. You’ve seen them in the movies and on television. The sleuth will often map out a suspect’s life on a sketching wall and proceed to make breathtaking connections. In this case, a working wall is used to find affinities along the subject’s journey (“What are some patterns we can expect this person to follow?”), to find affinities in the lifestyles of the subject and their peers (“What do we know about A’s relationship with B?”) and to solve fuzzy criminal cases in general.
Take the “gladiator wall” from Shonda Rhimes’ award-winning television show Scandal:
(Image: Scandal Moments)
(Image: Esther James)
Here’s a working wall template that you can use to identify affinities in a fuzzy dataset:
These questions will help you get started with the template:
- “How is data point A similar to data point B?”
- “How are both A and B different from C?”
- “Is there a category (i.e. label) that describes these data points well?”
- “Why does a certain data point look isolated? Does this ‘outlier’ yield an interesting insight?”
3. Ideate: Stimulate Divergent And Holistic Thinking
Psychologist J.P. Guilford coined the term “divergent thinking,” which the Gale Encyclopedia of Psychology defines as “the ability to develop original and unique ideas and to envision multiple solutions to a problem.” This essential design skill is the key to ideation.
We could design several types of working walls to brainstorm, gather inspiration, and fully map out concepts and their relationships.
When brainstorming individually or in a group, stick notes at the top of the working wall to show all ideas. Then, using the affinity diagram method described above, identify which ideas are related, and categorize them accordingly.
To maximize inspiration for ideation, set up a “moodboard” layout on the working wall to collect ideas from different sources. Fashion designers, for instance, observe a phenomenon called “planned obsolescence,” which basically means that they design garments knowing that those garments will eventually become unfashionable.
This instability demands a disciplined creative process in which (almost) everything can become a source of inspiration. Fashion designers everywhere use inspiration boards to capture seasonal trends, textures, accessories, sketches and muses when ideating for their next collection.
Fashion designer Christian Siriano poses with the inspiration board for his spring/summer 2014 collection. (Image: The Derek Daily)
Here’s a working wall template you can use to get inspired with ideating:
Ask yourself these questions to get started with the template:
- “Does this finding relate to the overall structure (such as the layout or grid) that I am trying to implement in this project?” (If so, include it as a source.)
- “Is this particular aesthetic treatment (such as the use of color or typography) similar to the one I am trying to convey in this project?” (If so, include it as a source.)
- “Is a particular functional feature associated with the utility I am embedding in this project?” (If so, include it as a source.)
- “Does a certain mood (such as an atmosphere or emotion) in this source inspire what I am trying to convey with this project?” (If so, include it as a source.)
The working wall style we’ll explore next can help you map out a given concept and find important relationships between its subconcepts. Think about it: Doesn’t working on a large surface help you to visualize the big picture? What if you had enough space to add more concepts related to your subject? Working walls get it done.
This kind of big-picture reasoning has been called “holistic thinking.” According to psychologist Richard Nisbett at the University of Michigan, holistic cognition involves “an orientation to the context or field as a whole, including attention to relationships between a focal object and the field.”
This is the opposite of analytic thinking, whereby we pay attention primarily to the object and its categories, using rules (i.e. formal logic) to understand the object’s behavior.
East Asians tend to be more “holistic,” while Westerners are more “analytic,” according to Nisbett and his colleagues at the University of California (Berkeley), Seoul National University (Korea) and the Ecole Polytechnique (France) in a 2001 paper titled “Culture and Systems of Thought: Holistic Versus Analytic Cognition.” This groundbreaking research earned the team a grant from the National Science Foundation.
Evidence suggests that if you were raised in a society influenced by classical Greek thought, holistic thinking might not come all that naturally to you. However, product and service design is holistic by nature and, thus, requires stepping out of our comfort zone and transforming our mindset. Working walls are invaluable tools in this process.
Wartime generals, for example, have been using working walls to map out large-scale military intelligence strategies for decades. Winston Churchill kept some nifty underground chambers covered wall to wall with maps, thousands of color-coded pins and tiny annotations. These maps helped Churchill and his administration plan military advances, ideate different scenarios and think collectively about the best tactics to pursue.
Failing to see the big picture could mean the difference between victory and defeat in war and design.
“The Map Room” in the Churchill War Rooms. (Image: Kaihsu Tai)
Use the template below to map out a concept and its relationships. The width and marker of each arrow represent the strength and direction of a relationship, respectively.
Ask yourself these questions to get started with the template:
- “Does concept A influence concept B, or is it the other way around?”
- “How strong is the relationship between concepts A and B? Is there one?”
- “If concept A influences B, is the effect reciprocal? Does A exert a stronger influence over B, or is the strength of their force upon each other equal?”
4. Prototype: Create And Change Prototypes Easily
You could combine elements on a working wall to create a prototype of a design solution. This low-fidelity version of the solution could make use of mixed media such as the following:
- screenshot printouts;
- 3-D material, such as textures;
- wireframes, blueprints and diagrams;
- evidence from primary research;
- evidence from secondary research;
- text quotes that capture a mood;
- other artifacts.
Interior designers combine elements on a working wall to create a scheme for a room. In the absence of a finished space, these boards serve as a low-fidelity prototype that gives the client sufficient clarity.
Working wall for a cabana design in Vero Beach, Florida. (Designer: Erin Paige Pitts)
Here’s a working wall template you can use to create a low-fidelity prototype that users can give you feedback on:
And here are the questions to get you started:
- “Into what major components can this product or service be broken down?”
- “How can I show the user what the materials for a particular component will look like?”
- “How can I show the user the flow of their interaction with the product or service once it is finished?”
- “How can I give the user a glimpse of the final outcome? Would mockups, wireframes, sketches or blueprints help them to visualize it?”
Prototypes evolve, and unless we have a quick way to access previous versions of our own work, that sense of progress will fade and we’ll lose sight of the design decisions that took us from A to B in the first place. Second thoughts, insecurities and analysis paralysis take over. Understanding and being able to visualize our process give us the confidence that we are building on a strong foundation and give us the strength to justify our design choices.
Interaction designers, for example, must somehow navigate a dense jungle of user experience design, visual style, branding, layout, grids, typography and function changes. Working walls are an essential asset for succeeding in that.
The BBC UK published an amazing article explaining how it redesigned its website. It printed out every single screen of the old website and pinned it up on what the team now calls the wall of shame. The team gathered around this large vertical surface to prototype and pin new versions of its website. The result is a triumphant wallpaper-sized timeline of where the BBC used to be and where it stands now.
“A New Global Visual Language for the BBC’s Digital Services,” BBC Internet Blog
Here’s a template to visualize prototype changes over time:
And here are the questions to get started:
- “Into what major features can this product or service concept be broken down?”
- “How does each feature currently look?” (Include this in the column for the version you are currently working on.)
- “What elements will we add to this feature going forward?” (Include them after the plus sign in each of the arrows pointing to the next version.)
- “What elements will we remove from this feature going forward?” (Include them after the minus sign in each of the arrows pointing to the next version.)
5. Test: Visualize And Validate Design Assumptions
Researchers in every field experiment and iterate on their results. In the previous step, we saw how to use a working wall to create and refine a prototype before introducing it to our target users. Stage five of the design thinking process, testing, can also be facilitated using a different type of working wall.
Startup founders use a “validation board” to visualize their prototype tests. The free canvas created by Lean Startup Machine helps you to display the different iterations (or pivots) that your design solution hypotheses have undergone. You can also classify your assumptions depending on whether they’ve been validated. As on other working walls, elements may be moved around as the process unfolds.
(Image: The Validation Board: A Free Tool for Testing New Startup Ideas From Lean Startup Machine,” Harrison Weber, The Next Web)
Use this working wall template to visualize and validate your design assumptions:
Here are the questions to get started with the template:
- “Which assumptions haven’t we tested yet?” (Include them in the first column, labeled “Untested.”)
- “How do we go about testing this assumption? How will we know whether it is true or false?” (Include this “experiment design” in the second column, labeled “Testing”.)
- “Has this assumption proven to be true or false?” (Move the original sticky note in the “Untested” column to either the third or fourth column, depending on the result of the experiment.)
Working walls are invaluable tools for design thinking. They empower research, sense-making, ideation, prototyping and testing. Using wall-sized displays in our design process empowers convergent, divergent and holistic thinking — all essential creative skills.
I hope you’ve found inspiration in these different and innovative uses of working walls. The next time you start a design project, keep these templates and ideas close to heart.
Do you know of other effective uses and layouts for working walls? Comment away!
© Laura Busche for Smashing Magazine, 2014.
2013 has come to an end and 2014 is here. We have compiled some amazing wallpapers you can use to spice up your desktop. We look forward to an amazing year with loads of new design trends. We look forward to sharing these with you, enjoy 2014.
New Years Eve is just around the corner, fireworks and parties everywhere. We have found 10+ Amazing New Years brushes that are a sure way to spice up any design. We hope you all get into 2014 safe and that the new year brings you loads of amazing experiences. Without further ado, here are the brushes, enjoy!
In the age of responsive web design, where websites are able to expand to the infinite widths of your browser window, it’s sometimes hard to know where your computer screen ends, and the real world begins (Not really — but for the sake of this post, please bare with my exaggerations.) Ever since the popularity of full screen, responsive design took hold, I’ve noticed an increasing trend in the addition of borders to websites. While borders on websites offer an elegant design aesthetic, they also provide a needed sense of space, and help to establish boundaries, within the the boundry-less world of responsive design.
The week is coming to an end and that means it is time for us to look back on the week that passed, the best design news, resources and other goodies. This week we look at amazing flat designs, best personal websites of 2013, awesome jQuery Plugins, as well as some of the best responsive designs and much more.
Creating awesome web/graphic design projects takes time, involves a lot of creativity, commitment and hard work. Sometimes help is needed, and in order to save some time and focus on the most important parts of a projects, designers use freebies in their works. Today, we selected the best 20 freebies of the month, you should download right now! This list includes a selection of some really cool and useful tools, resources, fonts and graphics. These will surely help you save some precious time in your design process. Download them for free! You’ll find the best freebies of this November, from themes, icons, UI kits, to codes, plugins, fonts and much more.
When the third version of the framework was released development process became much easier, productive and handy. Into the latest release there were included new and really helpful features that can effectively reinforce your website, thus spice it up with the so-needed functionalities and design improvements. As for the design, you’ll be able to customize your interface managing the CSS properties. We’ve already published number of blog posts dedicated to Bootstraps including tutorials, customization tips, freebies now it’s time to share with you some Free Bootstrap Templates from around the web.
Last year’s big trend was responsive design. As a result, there was a lot of demand for all types of responsive wordpress themes. This year big trend is flat. Hence, I suspect there will be a lot of you looking for flat wordpress themes. In this article, I rounded up flat wordpress themes for photographers. I picked this niche as I suspect there are many people who want their own photography sites. Doing such a collection of such themes will benefit them in their search. If you have a flat photography wordpress theme that isn’t feature here, let me know.
Designers and Developers are constantly seeking out the latest web tools by which to efficiently expedite their work flow within a quicker time span. The amount of free web development tools which are available on the web continually increase on a daily basis, which make finding the appropriate ones quite an laborious time consuming task.Thus, in order to save you some precious time, we have amassed 20 Free Tools for Developers and Designers, in order to help you simplify your development process and enable you to achieve the desired results within a given deadline. We hope you’ll find the list handy and useful for your upcoming projects and development tasks. Enjoy!
Web designers are the most hard working professionals who work day and night to create websites for clients and themselves. It is important to take inspiration and learn new techniques to keep one’s creative senses aware of any changes that are occurring in this ever changing field. As a web designer you have to be creatively inspired, full of ideas and active in using different web design software and techniques. We want to inspire you that is why we have collected a superb assortment of some of the best web design tutorials that will keep you motivated and will help you through different stages of web design. Learn to use CSS, create website layouts including creating portfolio site layout to business web themes and gaming site layout and a lot more in this web design tutorials post we are sharing with you today. Enjoy!
They say that stranger’s soul is incomprehensible, but we can’t entirely agree with the statement. Most often we just don’t want to notice the obvious, pretending that it’s too personal matter or something of the kind. In fact, a human soul is not as dark as it seems. It is always ready and even willing to reveal its secrets to the confidant. As a rule, web community members having their own websites are open for communication, socialization and other things like that. Besides, personal websites serve as a kind of virtual CVs for their owners. Most often, if you are as sharp as a needle, seeing a person’s website, you’ll easily tell even more about site owner than he/she wanted to say.
Forget luxury clothes and designer couture: the real battle ground for fashion statements is on the web. Unlike high-end real-world goods, however, the web is democratised, allowing individual designers to seize on a trend and create their own interpretation. Before we launch headfirst into the hottest trends in web design, you might be wondering what makes a design approach a trend, or what make it hot? Put simply, if there’s a particular design aesthetic that’s popping up widely across the web, we consider it to be a trend. The more a trend is adopted and used on the web, the hotter it is! Make sense? Great, let’s get on to the list!
At present, in the field of website development and designing, we are enabled to get quickly result with the endless resolutions and devices. It is a sophisticated task, but not impossible for a professional and expert. Responsive website designing is the approach that recommends that designing and development should properly respond to user’s behavior and environment in screen size, platform and orientation. The best responsive designing services need a mixture of perfect layouts, images, CSS media queries, embedded links, flexible grids. For user’s preferences, latest and innovative technologies should use in website that automatically responds to more audience.
Over the past few years CSS grid systems have become a very popular way of rapidly producing layout scaffolding in web design. They can be a fantastic time-saving resource, with talented coders having intelligently crafted systems which cater to a wide array of possible layouts designers might need to create. However, this isn’t the only way to approach grid-based web layouts, and today we’re going to examine an alternative.
A while back, I wrote a post about starting an open-source project. The focus of that article was on starting an open-source project as an individual. I received a lot of positive feedback and also some questions about how the process changes when you’re open-sourcing a project at work.
Open source projects are always a team effort, and they alwars require a dedicated commitment to the project. Image credit: open source way
Many companies are starting to investigate and participate in the open-source community, and yet few guides for doing so exist. This article focuses primarily on the process of open-sourcing a project at work, which brings with it other concerns and decisions.
Why Open Source?
Before delving into the how, it’s useful to step back and talk about the why. Why is it that so many companies have or are starting to establish an open-source presence? There are actually a number of reasons:
- Technical brand
Companies want to be known as a place where smart people work. One excellent way to show this is by releasing code that has been written at the company. Doing so creates mindshare in the community, familiarity with the company and its contributions, and fodder for future technical brand initiatives (such as giving talks at meetups and conferences).
Time and again, you’ll see contributors joining companies that sponsor open-source projects. I saw this happen frequently while at Yahoo, where YUI contributors would sometimes end up as Yahoo employees after having contributed to the project on an ongoing basis. Similar hires have occurred in the Node.js community. The reason is pretty clear: If you work on an open-source project in your spare time, imagine how great it would be to turn that hobby into a job. Additionally, allowing job candidates to see some of the company’s code gives some good insight into what working at the company would be like.
- Giving back
A lot of companies benefit from open-source software, and contributing open-source software back into the world is a way of giving back. These days, it’s part of what it means to be involved in the technical community. When you receive, find a way to give back. A lot of companies are embracing this philosophy.
There are many more reasons why companies are choosing to open-source, but these are the primary drivers. Therefore, the process of open-sourcing a project must be aligned with these goals while protecting the company’s interests.
Suppose someone at your company wants to open-source something. This has never happened before and you’re not sure what to do. Do you just put it up on GitHub? Announce it in a press release or blog post? How do you know that the code is OK to open-source? There is a lot of planning to do, and it all starts (unfortunately) with the legal department.
Giving away company assets is as much a legal issue as anything else. The very first conversation should be with an appropriate member of your company’s legal team to discuss the ins and outs of open-sourcing. In larger companies, one or more intellectual property (IP) attorneys are likely on staff or on retainer; in smaller companies, this conversation might start with the general counsel. In either case, it’s important to lay out exactly what you want to do and to clarify that you’d like to formalize a repeatable process for open-sourcing projects.
The primary legal concerns tend to be around licensing, code ownership and trade secrets. These are all important to discuss openly. Because many companies have done this already, you should have a fair amount of evidence of how other companies have established their processes. The most important thing is to engage the legal department early in the process and to have a champion on the legal team who you can work with should any issues arise.
Choose A Default License
One of the first topics of discussion should be which open-source license the company will use as its standard. Leaving the team for each project to decide for itself which license to use is a bad idea, because a lack of awareness could quite possibly lead to two projects from the same company having incompatible licenses. Decide up front exactly which license to use, and use it for all open-source projects in your company.
I touched on the different types of licenses in my previous article (also, see “Understanding Copyright and Licenses”). In general, companies tend to standardize either the three-clause BSD license or the Apache license. Very rarely will a company standardize the MIT license, because the standard MIT license doesn’t contain a clause that prevents use of the company’s name in advertisements for software that makes use of the project. The Apache license has additional clauses related to patent protection, which some companies prefer.
The ultimate choice of a license typically comes down to legal considerations on the nature of the code being released. The philosophical implications of which license you choose are not important; using the same license for all projects in your company is important.
The next topic of discussion should be to define an outgoing review process. Just putting code out in the public without some sort of review is neither safe nor sane. In general, a request to open-source a project should be reviewed by the following:
As mentioned, the legal department needs to be kept in the loop during this process. They will likely not review the code, but rather will want to understand what the code does and whether it could be considered a company secret.
Someone with a security mindset should actually look at the code to make sure it doesn’t reveal any security issues or contain code that should not be made public. This process could be manual or automated, depending on the complexity of the code.
Someone on the executive team needs to approve the request, basically saying that they believe this code is safe to share and that they are aware that the code is being published.
Exactly how an outgoing review gets started tends to be company-specific. It could be done by submitting a request to a mailing list, filling out a form or just setting up a meeting. How it’s implemented isn’t as important as the fact that the review occurs and is done quickly. So, setting a deadline for a response is a good idea. Depending on the size of the company, this could range from a few days to a few weeks, but setting up the expectation ahead of time helps to alleviate any scheduling issues.
One part of the process that is often forgotten is figuring out rules for accepting external contributions. Open-sourcing a project is basically a way of saying, “Hey, we’d love to have you fix our bugs!” Part of the point is to get people interested enough to want to contribute to the project. Establish a process so that you know how and from whom external contributions may be made.
When building something, accepting external contributions can significantly benefit the project, but you need to establish a process for contributions first. Image credit: open source way.
The company should require a contributor license agreement (CLA) to be signed before accepting contributions from external developers. A CLA is a legal document that typically states a few things:
- The contributor asserts that they are the original author of the code they are submitting.
- The contributor grants the project the right to use and distribute the code they are submitting.
- The contributor has the right to grant the previous two points.
- Any code submitted by a contributor is not guaranteed to be accepted or used.
Take the Node.js CLA. It’s a pretty straightforward form that defines the expectations for contributors and asks for the contributor’s name and other information. These days, asking for someone’s GitHub user name as well is quite common (to help automate the process of checking CLAs for commits).
The CLA will be important should any legal action be taken against your company as a result of the code contained in the project. Because the company is the maintainer of the project, any legal action would likely be directed at the company itself, rather than any individual contributor.
CLAs are sometimes controversial, and some developers refuse to sign them. That’s an acceptable loss to protect yourself and your company from the legal risks of open-source projects. Those who are familiar with the open-source community and the reason behind CLAs will be more than happy to sign on and contribute to your project.
Maintaining The Project
An overlooked part of the open-source process is maintaining the project once it’s been published. Many developers (and some companies) view the step of open-sourcing a project as the end of the process — they’ve already spent considerable time creating software that they now want to share with the world. In truth, open-sourcing a project is the beginning of a journey. The act of sharing now makes it, effectively, communal software, and you can now expect the project to be discussed and to evolve as a whole.
Once a new project is open-sourced, eventually you’ll start receiving suggestions, requests and pull-requests. Maintenance is a task that is often overlooked in open-source projects. Image credit.
Many companies that are new to the open-source community make the mistake of publishing their code and leaving it behind. Issues are left unresolved and unanswered, road maps are not shared, pull requests are ignored, and there is no way to get in contact with the people behind the project. As much as open-source projects can enhance your technical brand, leaving projects in this state can hurt it.
Once you’ve open-sourced a project, you must commit to maintain it. Even stable software will have bugs, and some of those bugs could be found by people outside of your company. If you have no intention of interacting with anyone outside of the company on this project, then you might want to consider simply distributing the compiled binary or library freely, and not actually open-sourcing the code.
While there are no established rules for maintaining a project, here are some guidelines I follow:
- The public repo is the source of truth.
Once you’ve published your source code to a public repository (or repo), all development should happen in that repository. The public repo shouldn’t simply be a clone of an internal one. If the project is being actively developed, then that development should happen exclusively in the public repo in order to be as transparent as possible. Developing in private and then updating periodically prevents the use of pull requests and makes forking your project extremely difficult and frustrating.
- Plan in public.
Use a public bug tracker to track all issues, so that others can see what’s being worked on and what’s already been reported. Post a road map somewhere public that shows plans for development. Be as transparent about the development process as possible. In short, open-source the way your project will grow and evolve.
- Dedicate company time.
If you are the primary author of the project and you’ve open-sourced the code, then you (or a delegate) should set aside time to interact with external contributors. That means making timely responses to pull requests and issues, which in turn means setting aside time daily or weekly. This has now become part of your full-time job, not just a hobby.
- Open channels of communication.
Give external contributors a way to interact directly with the maintainers. This could be through a forum, mailing list, IRC chat or another channel. Make sure that these systems are public; for example, an IRC chat should not be on your company’s chat server. Plenty of free communication services exist to make use of. The simplest and least disruptive method is to create a free mailing list using Google Groups or Yahoo Groups.
- Commit to document.
Lack of documentation is a huge problem with open-source projects. From the start, commit to writing good documentation that explains not only how to use the project but also how to set up a development environment, run tests and work effectively with the code as a contributor. There is no better way to discourage people from using your software than to give them no way to get up and running on their own.
- Maintain regular outgoing communication.
There should be a steady stream of outgoing communication about the project. At a minimum, post announcements about new releases and security issues that require immediate upgrading. Maintain changelogs that describe differences between versions, and follow a predictable and regular scheme in your versioning (such as by following semantic versioning). This will help both users and contributors understand the impact of filing issues and submitting pull requests.
An open-source project very quickly takes on a life of its own once released. If a community forms around the project, then it could take up more and more of your time. That’s why a commitment to maintain the project needs to be a part of the open-sourcing process. Letting a project languish without any attention sends a horrible message to those outside of your company and will discourage people from contributing.
Most open-source projects, whether by individuals or companies, are started with the best of intentions. Typically, the goal is to share learning and code with the world. However, the Internet is littered with abandoned projects. If your project ends up like this, it could hurt your and your company’s reputation. Projects slowly decay over time and can usually be identified by one or more of the following characteristics:
- “Not enough time”
The more frequently this phrase appears in responses to pull requests and issues, the more likely the project is headed for the graveyard. This is one of the top reasons why projects die: The maintainer runs out of time to maintain it. As should be obvious from this article, maintaining a project requires a significant amount of work, which is frequently not sustainable in the long term.
- Too few contributors
If most contributions come from one person, then the project is likely either early in its life (on the upswing) or close to the end. You can easily tell which is the case by looking at the date of the first commit. Thriving projects tend to have a large number of commits from the maintainer and a small number of frequent commits from a few others. Another good way to measure this activity is in the number of merged pull requests in the last year.
- Too many open issues and pull requests
A surefire sign that a project is on its way out is issues and pull requests that are left open with no comment. More than a few issues that have been open for a year means that the project isn’t being cared for.
- No way to contact the maintainer
If you can’t find a reliable way to contact the maintainer, whether through email, a mailing list, Twitter, issues or pull requests, then there’s not much hope for the project. Maintainers aren’t maintaining if they aren’t communicating.
Keep an eye on these patterns in your own project. If you recognize the warning signs, then you’ll have to decide what to do with the project. Either someone else should become the maintainer or it’s time to end-of-life the project.
At some point, you or your company might find that there is no longer interest in maintaining the project. This is a natural evolution of software — sometimes a project outlives its usefulness. When this happens, you need to appropriately end-of-life the project.
End-of-lifing typically starts with a public announcement that the project is no longer being actively maintained (along with a post in the project’s
README file). The announcement should address the following:
- Why is the project being end-of-lifed? Has it been superseded by something else? Is it no longer in use? Do you recommend different software written by someone else?
- What will happen to outstanding issues? Will bugs still be fixed? Will all outstanding issues be closed without being fixed?
- Is there an opportunity to transfer ownership? If someone really likes the project, is your company willing to transfer ownership to them or their organization?
Ultimately, you might decide to delete the repository completely. While being able to see all of a company’s projects, even those that have been end-of-lifed, is sometimes nice, that comes at a cost, and so removing repositories from time to time might be prudent. In doing so, be certain that you have effectively communicated that the project is going away, and give at least 30 days notice to allow others to fork the project if they are so inclined.
Open-sourcing projects at work is a great initiative for many reasons. When done correctly, an open-source presence will do a lot to promote your company and its employees. Active open-source involvement signals your company’s willingness to interact with the technical community and to contribute back, both signs of a strong technical brand.
On the other hand, a poor open-source presence is worse than no presence at all. It signals general laziness or apathy towards a community of developers, a community that might very well want to help your project succeed. Few things are as demoralizing as trying to work on an open-source project that has been abandoned. Don’t be that company.
© Nicholas C. Zakas for Smashing Magazine, 2013.
It’s the most wonderful time of the year, by now most of the presents have been opened and everyone is still stuffed from all the amazing food. We at Design Reviver would like you wish you all Happy Holidays. May the presents under the tree bring you loads of happiness and joy.