- RSS Channel Showcase 2958183
- RSS Channel Showcase 3393214
- RSS Channel Showcase 7388570
- RSS Channel Showcase 5112869
Articles on this Page
- 11/29/17--16:43: _That time I acciden...
- 11/29/17--16:49: _Roadtrippers 4.0 - ...
- 11/29/17--19:55: _Fontastic Web Perfo...
- 11/29/17--19:56: _Localisation and Tr...
- 11/29/17--22:08: _How to handle error...
- 11/30/17--00:22: _Free CSS Grid Tools...
- 11/30/17--00:55: _The New Mobile Work...
- 11/30/17--01:10: _8 Tips To Convert T...
- 11/30/17--01:24: _I interviewed at Fa...
- 11/30/17--02:08: _How to escape from ...
- 11/30/17--12:25: _A Big List of Typog...
- 11/30/17--12:33: _Excited to announce...
- 11/30/17--13:05: _How to design for V...
- 11/30/17--13:08: _6 Topics Every Cust...
- 11/30/17--13:40: _SketchCleaner
- 11/30/17--13:52: _The Front-End Check...
- 11/30/17--13:56: _Want to boost your ...
- 11/30/17--14:13: _Introducing 'Approp...
- 11/30/17--14:51: _Donate Your Website...
- 11/30/17--14:51: _People Redesigning ...
- 11/29/17--16:43: That time I accidentally overwrote Bash… in Bash
- 11/29/17--16:49: Roadtrippers 4.0 - The only map built for travelers
- 11/29/17--19:55: Fontastic Web Performance
- 11/29/17--19:56: Localisation and Translation on the Web
- 11/29/17--22:08: How to handle errors in Express
- 11/30/17--00:22: Free CSS Grid Tools & Resources For Developers
- 11/30/17--00:55: The New Mobile Workforce
- Successful UX Design is Intentional Design
- Journey Mapping is the Key to Gaining Empathy
- Making Yourself Stand Out in the UX Industry
- Prepping for Design Interviews (My Microsoft Onsite Experience)
- UX is Grounded in Rationale, not Design
- The Types of Design Research every Designer should know NOW
- When did Design become so Easy?
- 11/30/17--02:08: How to escape from “Story Card Hell” in three simple steps.
- The target group (who will use the product)
- The needs (of the users)
- The product (key features)
- The business goals (e.g. how is the company making money from the product?)
- A product vision sets a goal and helps to keep development on track.
- Story Mapping provides a big picture as context for the stories.
- Just-in-time specification makes sure that you detail only the most clearly understood stories.
- Fosters the relationships to the stakeholders
- Is good at communication and conflict resolution
- Is not afraid to say “No” from time to time
- 11/30/17--12:25: A Big List of Typography Books
- 11/30/17--13:05: How to design for Virtual Reality
- 11/30/17--13:08: 6 Topics Every Customer Service Online Training Program Should Cover
- 11/30/17--13:40: SketchCleaner
- 11/30/17--13:52: The Front-End Checklist is just a tool… everything depends on you.
- 11/30/17--14:13: Introducing 'Appropriate Experience (AX)'
- 11/30/17--14:51: Donate Your Website - Donating web traffic to a cause
- 11/30/17--14:51: People Redesigning the F1 Redesign
“I know what I’m doing.”
Five years ago, a few weeks into my very first Programming Job™, I was tinkering around in bash trying to get some code to run.
I was becoming increasingly frustrated. Why wasn’t that file in my $PATH? It should have been, I felt certain of that.
But, growing more and more desperate to get something to work, I moved the file to a folder I knew was in the $PATH:
> mv ./file.whatever /bin
At least, that’s what I meant to type. In reality what I typed was:
> mv ./file.whatever /bin/bash
My employer-provided MacBook Pro yelled at me, like any good UNIX system:
mv: rename ./file.whatever to /bin/bash: Operation not permitted
And like any good programmer, I blindly added a sudo and typed in my password as quickly as I could. Stupid computer, thinking it knows better than me.
Having just unknowingly overwritten the very shell I was using, I was shocked to find my code still wouldn’t run.
“I don’t know what I’m doing but it’s okay.”
I opened a new OS X Terminal tab to try a new approach to getting my code running, and instead saw this:
> permission denied: ./file.whatever
Hmm, that’s weird. Not sure why bash isn’t working, but at least it’s doing something with my file!
I switched back to my previously-open bash shell and continued trying a few commands. They still worked, of course, because the bash program was already in memory at the time I overwrote its executable.
So some Terminal tabs aren’t working, but others are. Probably ghosts in the machines.
To sort out this weird-but-definitely-probably-not-a-big-deal bash behavior I decided to do the tried-and-true cure-all: quit the app (Terminal) and open it again.
“Oh god! what have I done?”
Out of nowhere, the reality of what had happened hit me like a snowball to the face. Oh no oh no oh no I just overwrote Bash.
I no longer cared about getting my code to run. All I wanted to do was go back to the way things were.
“This is probably fixable…”
I spent a long time Googling things like “deleted bash” and “download new bash OS X” and got nowhere. I was in too much of a panic to think about using other shells — which I vaguely knew about, but didn’t realize were already installed on my machine. (And I certainly didn’t realize these shells were also usable by just changing a setting in the Terminal app. #facepalm)
Eventually, I sheepishly confessed to some coworkers what I had done and after we all had a good chuckle I got one of them to email me a copy of his bash program so I could manually move it back into the /bin folder in Finder. (Hooray for point-and-click interfaces!)
Except… Finder wouldn’t let me go to the /bin folder. OS X (that version of it, at least) hid /bin and other system folders it deemed unsafe for meddling users like me to see. Stupid computer, thinking it knows better than me.
So I Googled some more, this time for things like “view hidden folders in Finder.” I found a handful of different ways to do that, but every single one of them required me to type some magic command… into bash, which I could no longer open. Kids: if you delete your shell but have an instance of it open, don’t close it!
“OK… this is may be fixable…”
At a loss for what to do next, I found an old internal Q&A system the company had and posted a quick description of my problem, trying to strike that balance in tone between heh what a funny but probably not uncommon situation, right everyone? and please someone anyone help me I’m panicking. The site looked like it wasn’t ever used anymore but I was hoping someone got an email when a question was posted.
Lo and behold, my Hail Mary quickly got a response: someone recommended booting from a Linux Live CD (this was back when computers had CD drives), and then from within Linux accessing my OS X file system to add bash back to its rightful place. I understood about a third of the suggestion, but went ahead anyway — what other options did I have? I found a Linux CD, did a bunch of things I didn’t understand to get it to work, and waited impatiently as the machine went through all of the myriad setup steps until — voilà! A desktop appeared!
I Googled around until I found out how to mount the OS X filesystem, and eagerly opened bash (what a good feeling!) to copy that machine’s bash executable back over to OS X… only to encounter an error message: the OS X partition was read-only from Linux. I did find out about a way to make it writable, but that required restarting back in OS X and — you guessed it — running a command in bash.
I tried a few different Linux Live CDs (each of which took about forty minutes of impatient pacing to boot), but each had the same result. Once again: if you delete your shell but have an instance of it open, don’t close it!
“What does fixable even mean anyway?”
Unsure where to go from there, I reached out to coworkers again and eureka! — someone knew of a way to navigate to any folder — even hidden ones — within Finder. All I had to do was restart in OS X again, copy the emailed bash executable to /bin, and everything would be gravy. So I shut down Linux, removed the Live CD, restarted in OS X, and…
Hmm. I couldn’t log in, because, well, the OS X login process uses a shell under the hood, and guess which shell that is?
Was I doomed to spend the rest of my career living off of Linux Live CDs? I pictured myself years in the future, a babbling hermit kept around to scare the new kids: “Don’t delete bash or you’ll end up like crazy old Jake.”
“I’ve never been happier to see an error message”
I had given up all hope, when another coworker (goodness, these people knew so much!) told me about single-user mode, a special OS X startup mode that helps you resolve login (and other) errors. Single-user mode let me boot a bare-bones, command-line version of OS X through a different shell (/bin/sh, I think). From there, it was just a matter of finding the right incantations to get the bash executable back into /bin and off of a USB drive (where I put it in another painfully slow iteration of the Linux Live CD boot).
Once that was done, I restarted the Mac and all was finally well again! Well, except that of course my code still didn’t run.
In this talk Monica Dinculescu takes a deep dive into webfonts and how the
font-display CSS property lets us control the way those fonts are rendered. She argues that there’s all sorts of huge performance gains to be had if we just spend a little bit of time thinking about the total number of fonts we load and how they’re loaded.
Also, Monica made a handy demo that gives an even more detailed series of examples of how the
font-display property works:
This depends a lot on how you are using your webfont, and whether rendering the text in a fallback font makes sense. For example, if you're rendering the main body text on a site, you should use font-display:optional. On browsers that implement it, like Chrome, the experience will be much nicer: your users will get fast content, and if the web font download takes too long, they won't get a page relayout halfway through reading your article.
If you're using a web font for icons, there is no acceptable fallback font you can render these icons in (unless you're using emoji or something), so your only option is to completely block until the font is ready, with font-display:block.
The other day Chris wrote about how the CodePen team added
lang='en' to the html element in all pens for accessibility reasons and I thought it was pretty interesting but I suddenly wanted to learn more about that attribute because I’ve never designed a website in any other language besides English and it might be useful for the future.
As if by magic Ire Aderinokun published this piece on Localisation and Translation on the Web just a couple of days later and thankfully it answers all those questions I had:
Coming from the English-speaking world, it can be easy to maintain the bubble that is the English-speaking World Wide Web. But in fact, more than half of web pages are written in languages other than English.
Since starting work at eyeo, I’ve had to think a lot more about localisation and translations because most of our websites are translated into several languages, something I previously didn’t have to really consider before. Once you decide to translate a web page, there are many things to take into account, and a lot of them I've found are useful even if your website is written in only one language.
I had no idea about the experimental, and currently unsupported,
translate attribute or the mysterious
margin-inline-start CSS property. Handy stuff!
The grid is a staple of every webpage. Whether you realize it or not, your layout runs on a grid.
Most designers and developers opt towards frontend frameworks that come packaged with a grid system. This is wildly helpful because it saves time manually coding your own.
The downside is adding more files to your page and increasing HTTP requests. That’s why building your own grid sometimes makes sense – but not by hand.
These tools should prove wildly helpful for anyone serious about grid design. They’re all free and they all work right in your browser so all you need is some Internet and a bit of patience.
YUI Grid Builder
YUI is a user interface kit that features a great design style with reusable assets. Their team also released a handy YUI Grid Builder completely separate from the YUI framework.
As of this writing it seems the YUI library has been discontinued, yet the grid builder lives on. It’s hosted for free on GitHub so you can bet this likely won’t ever be taken down.
All you do is enter your max layout content width, total columns, and type of layout design(usually fluid). This also means you’ll want to design for responsivity using proper CSS breakpoints to handle smaller devices.
Overall a great tool that even offers a cool preview to help visualize your grid in action.
Responsive Grid Calculator
This Responsive Grid Calculator is yet another webapp for generating your grid’s design.
I find this one a bit more complex to learn, but the interface is also somewhat “cleaner” in how you copy/paste your codes.
Just select the total number of columns and your margin percentage size. The calculator outputs all your raw HTML/CSS code using percentages so you can forever use this as a fluid grid layout. Pretty cool right?
For the true visual designers out there you’ll adore Responsify.
It’s again entirely free to use and works right in your browser. However this tool is perfect for generating a grid without just looking at numbers and percents.
As you update the columns and gutters you can see the changes in real time on the page.
Don’t like your new changes? Roll it back until you find exactly what you’re looking for.
CSS Grid Template Builder
CodePen is full of glamorous snippets and neat little webapps that are truly superb. Most of that stuff you won’t find anywhere else online.
This is a fully-functioning grid generator with auto-updating visuals on the page.
If you’re gonna use this webapp be sure to save the fullview version. This gives you more room to work and arrange a grid to suit your needs.
Easy of use and simplified inputs best describe the GridCalculator.dk webapp.
This tool works much like other calculators where you enter the data for your grid and get a live preview of the final result. But this calculator has one thing that others don’t: exportable grids.
You can save your grid as a PNG file, or export the design for Photoshop & Illustrator. This tool is best used by designers who want to create mockups using grids, but don’t want to recreate new grids every time.
Cloud-based IDEs are quickly becoming the new norm for frontend coding. They’re handy for testing ideas and quickly bootstrapping new layouts from any computer.
Gridlover is one such example of a webapp that lets you write code directly from your browser.
But this one focuses primarily on grid design for typography and page layouts. By default it auto-fills text into the HTML and gives you a template for the CSS.
You can edit this to suit your needs and to support pretty much anything. The visual gridlines also make it super easy to plan your typography for maximum readability.
Grid by Example
Whether you’re an experienced developer or a novice just getting started, Grid by Example is a super handy resource to save.
It’s kind of like an online library of grid styles that you can study, clone, and repurpose for whatever you need. The whole thing feels incredibly simple to browse through, and the live previews are fantastic.
All of the demos are hosted on CodePen, so you have full access to the raw HTML/CSS code.
Take a look at their design patterns for grid ideas to use in future web projects.
Zurb CSS Grid Builder
Zurb’s playground offers quite a few nifty tools from animation editors to custom newsletter templates. One of my favorite tools is the grid builder with automated code output.
You get to see a live preview of the grid right from your browser along with highlighted columns for a stronger effect.
It’s the ultimate tool for rapidly prototyping grids from scratch. And these grids can even tie into the Foundation framework if you’re planning to build a site with Zurb’s frontend library.
Super simple and pretty straightforward, Gridley couldn’t be any more minimalist if it tried.
With just a single page and a few input fields you can quickly generate grid codes for your layout. The final output CSS appears on a new page which I find a tad annoying. But the final code is clean which is always a plus.
There’s even a help page for getting started with this framework and learning the ropes from scratch.
CSS Grid Demo – New Terminology
Lastly I want to wrap with a beautiful grid demo hosted on CodePen. This shows just how much you can do with a pure CSS grid and some knowledge of frontend languages.
This isn’t a web app or something that can generate custom grids. But it does work as a resource for studying CSS grids and learning to apply these techniques into your work.
Check out the full view to see the whole page and feel free to fork this pen to play with your own custom grid ideas.
Citrix and Red Bull Racing are reimagining how they work at the track, the garage, the factory and everywhere in between.
Is your online training course creating an emotional connect with corporate learners? Does it give them the chance to put their skills into action? In this article, I’ll share 8 tips to turn those traditional online training materials into engaging and interactive online training resources.
This post was first published on eLearning Industry.
Facebook is a company whose product is used for connecting and keeping in touch with friends. While that’s only part of what they do, I believe their goal is to meet the needs of billions of people across the globe.
I resonate with a lot of the work Facebook is doing, such as empowering small businesses with Community Boost and using Messenger’s conversational UI capabilities for social good. These initiatives are extremely relevant when you’re trying to connect with the right people, and they make once unreachable resources extremely accessible.
For any aspiring designer wanting to make big impact, it’s no surprise that we get extremely excited when we have the opportunity to work at a place known for doing big things. I recently had the opportunity to interview at Facebook where they thoughtfully matched me with the Business and Ads team.
I was excited about the opportunity to potentially work in an environment that values accessibility and inclusiveness while developing deeper human connections across all parts of the product. This is something I am currently looking for in a company.
Overall, interviewing with Facebook was a great learning experience. I discovered more about what the company does, how it aligns with my work, and what I want to do in the future.
Regardless of the outcome, every interview experience is a part of assessing where I am — from the way I think about products and craft to how I communicate my design process with others. After all, you can only get stronger and be more aware of the kind of work you want to do in the future.
I’ll discuss some takeaways from my interview experience, along with some of Facebook’s values that I glimpsed during the process.
There needs to be intentionality behind every design decision you makehttp://www.intentionalitymodel.info/index.php?page=defining-the-intentionality-model
When we talk about our design process, we often forget to explain why we did something and simply state what we did. This way of talking about our design is fine if someone wants to know about the product itself.
But for any design interview, the interviewers want to know how you got to a solution. What went wrong? What went right? How did this step influence the outcome, and what was the next step? For every design decision, always — Explain. Why.
Intentionality is important, because it makes sure we have contextualized the problem and really understand who our audience is. It shows other designers how we work based on constraints, our ability to work with others, and how we connect decisions to solving the problem.
If we can explain our decisions, it shows people that we were not making a decision just for the sake of making a decision. Rather, it shows that we understand the effect our design decisions have and how those decisions address people’s problems.
While interviewing at Facebook, it became clear that the designers I was speaking to wanted to understand the story behind my project and the intention behind my design decisions.
The small details do matterhttps://marketingland.com/facebook-will-disable-like-button-third-party-mobile-apps-228159
While I was presenting my portfolio, I thought I would receive questions about my overall product thinking. Instead, I received questions about the details behind my design, such as why I made the border around a dashboard green and what purpose that served. This is because small details convey the bigger picture of a design. They influence how we interact with a product to get to our desired goal.
It’s important to consider every detail and have a reason why it exists — does it enhance x feature, or is it for visibility purposes? It can make a big difference in the long-run. Take Facebook’s Like feature, for example.
The Like feature is small but it has many implications. It allows people to engage with content that they enjoy. From a business perspective, it allows Facebook to rank posts based on popularity.
It is a feature that is used extensively and encourages people to interact with each other for long periods of time. The person who designed it probably didn’t know the amount of impact it could have until they tested it.
Here are some articles that discuss designing the small details at Facebook if you want to read more about them in depth: Caitlin Winner’s How We Changed the Facebook’s Friend Icon, and Jasmine Friedl’s What I’ve Learned Designing Small Things At Facebook.
Giving feedback is just as important as soliciting ithttps://www.prodpad.com/blog/team-foundation-server-tfs-integration/
We need feedback to grow, but we also need to be able to present feedback to others to help them grow and improve their designs. The ability to explain our work and be proficient in the craft of design is what most companies want. But from what I observed at Facebook, they go above and beyond by assessing our product thinking and communication skills within the product critique.
Product intuition is something we all hope to have, but articulating it can be a challenge. You need to generatively understand interaction design and visual design along with how the two relate to the product’s goal. All this while thinking about the audience the design was intended for.
It’s easy to get wrapped up in describing what a design does, but we also need to explain how it conveys value. The hard part is balancing the way we explain the details: why was x designed this way to begin with, and how do we concisely connect it to the way it solves a user need?
If you can’t do this well, then how will you communicate your work and give feedback to other people?
Here are some links to the value of design critiques at Facebook: Tanner Christensen’s A Design Critique with Facebook and A Peek inside a Facebook Design Critique, and Julie Zhuo’s How To Do a Product Critique.
Telling a story makes our point of view more relatablehttp://99u.com/articles/17652/the-five-beats-of-successful-storytelling-how-it-can-help-you-land-your-next-job
When we explain the outcome of our design, whether it’s working someone through our prototype or key screens, we often explain what our design does but don’t explain in it in a way that involves people. We need to remember that the things we are designing are for real people.
We need to explain our products so that people will be able to relate to what the product is trying to do. We want them to understand the complexities of our product without getting lost in the details of how it works. We don’t want to confuse people, but want them to understand the story behind what the product is and why it exists.
When I worked for QuickBooks, I was presenting a solution to the problem of accountant-client collaboration on a project. I started by explaining how the product addressed a user’s pain points, but I didn’t center it around a relatable story or contextualize it. It sounded less human when I used “accountant” and “client.”
But then I characterized the two roles and centered the story around two personas, giving them names and daily tasks. This allowed me to give context to the experience and explain who these people were, what they were trying to do, what their problems were, and how my solution was able to help them with their workflow.
By talking about an experience with humans, I could explain my story better without outwardly explaining the complexities of the product. I wasn’t explaining the features, but I was explaining how a real person would use those features in a certain context.
As humans, we are wired to tell stories. We use a basic story structure, because it makes things simple to understand while tying them back to values we can all relate to. People will understand better, and they’ll know that your design is meant for people. This means that humans need to be in the stories we are telling in order for other humans to understand our ideas and how our product will exist in the real world.
Impact is a metric for the value you can bring to an organizationhttps://momentfeed.com/blog/momentfeed-recognized-for-ad-technology-excellence-by-facebook/
My teacher, who is a design manager at Facebook, emphasizes showing real work versus theoretical work. This is because real work offers leverage and value to a company: there are stakes involved, and you are making things that have tangible meaning.
Impact is what drives us to constantly create new things that are meaningful to us. We want to figure out new ways we can improve, whether it’s for ourselves or designing better experiences for others.
This is why making your designs public is so important. Real people will be affected by it and can potentially bring forth change. Design exists to be used — not as an artifact that no one is going to build.
Throughout this process, I’ve observed that having a deep curiosity to learn and grow is what leads to producing impactful work. We are encouraged to work on the things we care about, and we spread value to people who are in need of solutions to their problems.
When we show impact in a presentation, it is important to show metrics or hard data to support it. While data can make a good design great, data can’t make a bad design good. This is why showing impact with user insights over data analytics, or a combination of the two, can speak volumes. This approach expresses the thoughts and feelings of users that are hidden within the numbers.
Impact in the form of design intuition can also result in meaningful conversations. Showing data to support your point can either be right or wrong. With user insights, it’s harder to prove but it allows both sides to understand the problem in a more critical light.
It’s not all about the content, but how it is visually presentedhttps://www.smashingmagazine.com/2016/10/designing-card-based-user-interfaces/
Some designers say that as long as your product thinking is sound, then the fidelity of the outcome doesn’t matter as much. Like the small details, the visuals are what bring your idea to life in a more tangible way. The visuals are what will be facing people, so it is necessary to make sure that they’re presented in an intentional way. They should guide users to do the things they need to do while making it pleasing to the eye and making them feel good.
It is important to look at the big picture. But we also need to know how the details help us understand the bigger picture. Visual and interaction design skills are just as important as product thinking skills. The visual design highlights the thought process behind the decisions about why a product looks the way it does.
Even in presentations, alignment and consistency of content are key. Make sure you design cohesively and understand the basic principles of designing a job presentation: use less text, don’t overwhelm the user, and use visuals.
Facebook wanted me to walk through an interactive prototype instead of using static screens. They wanted to see how interaction design connects to visual systems — which is essential in creating visually cohesive experiences.
They also wanted me to show high fidelity visual design because it encompasses all of my design decisions. And they wanted to see whether or not my visuals connected to basic design principles, the problem, and who I was designing for.
Here is an article about the emphasis on visual design at Facebook and why product thinking simply isn’t enough: Jasmine Friedl’s How to Make Your Not-So-Great Visual Design Better.
Humility is key to designing for millions of usershttps://flipboard.com/@b1john/psychology-71aup88uz
When I asked the designers what values they resonated with when designing products at Facebook, a word that came up frequently was humility. This means really understanding people and guiding them to improve their lives in small, subtle ways.
“Design is creativity in the service of others” — Margret Gould Stewart
As product designers, we design with purpose to improve life because that’s what drives us. We want to bring meaning into other people’s lives. Deep down, we are doing it for the sake of humanity and for the pleasure we take in seeing people’s lives improved by the things we create for them. For Facebook, this might mean making the world more open and connected in part through great design.
UX design requires you to look at design beyond the surface. You have to look at the intentionality behind every design decision that is made. It’s not just about being able to execute using the design process. It is about utilizing different methods and frameworks that will allow you to strategically create thoughtful solutions. Design is thoughtful when the designer can explain it from different perspectives with the user in mind.
From interviewing at Facebook, I can definitely see that they care a lot about their designers: from the way they care about intentionality and open communication to their product thinking and the basic interactions of how a product will work.
It’s not just about stating what a design does, but it is about why something was made (the look, feel, and touch). It’s about how it solves the user’s problem and connecting it to what the business was trying to do for that user.
Interviewing at Facebook made me realize that it’s not just about the name brand of the company. It’s about the mission a company is working towards, its values, and the kind of work you want to invest your time and energy in.
Time is limited, and I want to be able to work for a company that will help me grow and provide challenges that inspire me to think beyond what’s currently possible. I resonate with Facebook’s mission statement and the kind of work they are doing across all teams, particularly the business team.
But if you are interviewing simply for the sake of finding a job, you won’t be satisfied. On average, it can take 2–3 years to see the impact of the growth you made. That would be a lot of time wasted if you weren’t passionate about your job.
Thank you for reading!
Links to some other cool reads:
I interviewed at Facebook as a new grad. Here’s what I learned about design. was originally published in freeCodeCamp on Medium, where people are continuing the conversation by highlighting and responding to this story.
Your backlog is full of detailed user stories. Your team is no longer able to manage them, or rank them.
You wonder what the product you’re building is all about. The stakeholders seem to change their mind all the time. You miss the big picture.
I think you are in Story Card Hell, as James Shore says.
Here are three ways to escape.
A vision states a goal. But it does not tell you how to reach it.
A great vision is challenging and inspiring. It transcends the individual. It brings people together to work towards it. It motivates them.
The company vision of SpaceX, Elon Musk’s aerospace company, is:
SpaceX designs, manufactures and launches advanced rockets and spacecraft. The company was founded in 2002 to revolutionize space technology, with the ultimate goal of enabling people to live on other planets.
The product vision of Apple’s iPod was:
All my music in my pocket.
Usually, a product manager/owner will come up with the product vision. So if you don’t know the vision, talk with your product manager.
If you are a product manager: how would you pitch your product to a potential investor in 30 seconds?
You can build a Product Vision Box together with other stakeholders. Take cardboard and build a box. Write and draw on the surface. How would the hypothetical product packaging look? The limited space will force you to focus on the top features of your product.
For a more sophisticated description of the vision, you can use a Product Vision Board:Product Vision Board by Roman Pichler (Creative Commons BY-SA 3.0)
The Product Vision Board explains:
How does a product vision help you to escape from Story Card Hell?
A vision gives direction. That’s why you should make it visible where development happens. Create a huge poster, for example, and hang it on the wall.
Everybody can check if new stories fit the product vision. And challenge stories that deviate from the intended direction.
Even if you have a vision, you may miss contextual information for your stories. This is the big picture.
There are several practices that help you understand the big picture. One of these practices is Story Mapping by Jeff Patton. Below you’ll find the way I practice it.Story Mapping
User activities are at the top. Frame an activity by a goal certain users want to reach. It can be for their own benefit or to get their job done. Order activities from left to right. The more to the left, the earlier the activity takes place.
Example activities of an online shop are: Add Product, Browse Products, Buy Products, Prepare shipment, Ship products. In most cases, a user performs an activity in a single sitting. Often in a matter of minutes or at most hours.
To reach a goal, users need to do stuff: the user tasks. Example tasks are Find Products and View Product Details for the Browse Products activity.
Together with the activities, the tasks represent the backbone. This is the structure you use to organize the stories.
From the tasks, you derive stories. From the View Product Details task, you could derive a story titled View Product Details (text only) and another story titled View Product Details (with image).
The higher the team places a story, the earlier the team implements it. Implementation moves from left to right in a row, and from top to bottom.
Do not store a Story Map in an electronic tool. Instead, put it up on a wall and use it to communicate within the team, with users, and with other stakeholders. Leave it hanging there, and you’ll always see the context of the stories.
Other practices to understand the context of stories include:
A crucial practice to escape from Story Card Hell is just-in-time specification. Only detail the stories for the next one to two sprints. Let’s walk through an example.
The product manager writes a story card:
As a customer, I want to find products by a property to know that the shop offers what I want.
The product manager has something specific in mind. The users should be able to search by product name, product number, product category, and price.
A week before the sprint starts, the product manager talks with the team about the idea. The developers tell her that another team released a powerful search feature a few days ago, for a different product.
It’s based on a simple text field, like Google. It would be less effort to reuse it than to develop something new. The team agrees on that, and writes down what they agreed upon as acceptance criteria.
So the team documents the details of the story shortly before implementation. That way, the team has as much knowledge from previous development as possible.
There are several practices to escape from Story Card Hell:
In the best case, you use all the practices. For this to work, you likely need a product manager who
If you want to know what I’m hacking on, visit my GitHub project.
How to escape from “Story Card Hell” in three simple steps. was originally published in freeCodeCamp on Medium, where people are continuing the conversation by highlighting and responding to this story.
We’ve all had a bad customer care experience and spent hours mulling it over. But have you thought about how well you train your customer service team? In this article, I’ll share 6 topics that every effective customer service online training course should cover.
This post was first published on eLearning Industry.
One month ago, I launched the Front-End Checklist on GitHub. In less than 2 weeks, more than 10,000 people around the world starred the repository. That was completely unexpected and incredible!
I've been working as a front-end developer since 2011, but I started to build websites in 2000. Since then, like us all, I've been trying to improve the quality of my code and deliver websites faster. Along the way, I've been managing developers from two different countries. That has helped me to produce a checklist a little different than what I've found on around the web over the years.
While I was creating the checklist, I continuously had the book "The Checklist Manifesto: How to Get Things Right" by Atul Gawade in mind. That book has helped me build checklists for my work and personal life, and simplify things that sometimes seem too complex.
If you are working alone or in a team, individually, remotely, or on-site, I wanted to share some advice on using the Front-End Checklist and the web application that goes with it. Perhaps I can convince you to integrate it into your development cycle.
#1 Decide which rules your project and team need to follow
Every project is different. Before starting a new project, the whole team (i.e. the project managers, designers, developers, QA, etc.) need to agree on what the deliverables will be.
To help you to decide, I created 3 different levels of priority: high, medium, and low. You don't necessarily need to agree with those distinctions, but they may help order your tasks.
The Front-End Checklist app was done to facilitate the creation of personalized checklists. Change some JSON files to your liking and you are ready to start!
#2 Define the rules to check at beginning, during, and at the end of your project
You shouldn't check all these rules only at the end of a project. You know as well as I do how projects are at the very end! Too hectic. Most of the items of the Front-End Checklist can be considered at the beginning of your development. It's up to you to decide. Make it clear to your team upfront what happens when.
#3 Learn a little more about each rules
Who loves reading the docs? Not most of us, but it's essential. If you want to understand the reasons for the rule, you can't avoid reading up about them. The more you understand the why of each rule, the better developer you become.
#4 Start to check!
The Front-End Checklist app can facilitate your life as a developer. It's a live checklist, so as you complete items your progress and grade are updated live. Everything is saved in
localStorage so you can leave and come back as needed.
The project is open source, so feel free to fork it and use it however you like. I'm working on making sure all the files are commented. I especially invite those interested in Pug to take a look at the views folder.
#5 Integrate automated testing in your workflow
We all dream of automation (or is it just me?). For now, the Front-End Checklist is just an interactive list, but some of the tasks can be automated in your workflow.
#6 Validate every pages before sending to QA team and to production
If you're passionate about generating clean code and care about your code quality, you should be regularly testing your pages. It's so easy to make mistakes and remove some essential code. Or, someone else on your team might have done it, but it's your shared responsibilty to be catching things like that.
The Front-End Checklist can generate beautiful reports you can send to a project manager or Quality Assurance team.
#7 Enjoy your work above all
Some people might look at such a long checklist and feel sick to their stomach. Going through such a list might cause anxiety and really not be any fun.
But the Front-End Checklist is just a tool to help you deliver higher quality code. Code that affects all aspects of a project: the SEO, the user experience, the ROI, and ultimately the success of the project. A tool that can help across all those things might actually help reduce your anxiety and improve your health!
The success the Front-End Checklist received in such a short time reminded me that a lot of people are really interested in finding ways to improve their work. But just because the tool exists doesn't directly help with that. You also need to commit to using it.
In a time where AI is taking over many manual tasks, quality is a must-have. Even if automation takes over a lot of our tasks, some level of quality will remain impossible to automate, and us front-end developers still have many long days to enjoy our jobs.
With so many people applying for software jobs, how can you stand out?
I recently switched careers to become a software developer and I got multiple job offers. There were many things I did that helped my successful job search such as getting a software degree, creating projects, and networking. But there was another thing I did that really helped me stand out in my job search.
Toward the end of 2016 I read Linchpin by Seth Godin. This convinced me of the importance of putting content out into the world. What I did next I’ve come to describe as building an authority piece.
An authority piece is a specific piece of work that establishes you as an authority in the field. It helps employers trust that you will be a good hire. In the best case scenario, an employer will have already heard of you before you even apply. But that was not my experience, and it is not necessary to have a successful authority piece. An example of an authority piece is a published book, e-book, video course, or popular blog.
Here’s the most important secret of an authority piece: You don’t have to be an authority to create it! The act of creating it makes you an authority! Many of the topics I created videos on were brand new to me. I had to research the topics to make the videos. And that process made me into an authority.
I have another friend who wrote an e-book about using Angular with Ruby on Rails. He said he had almost no familiarity with the technology before he wrote about it. It only took him a few weeks to research and write the book.
It doesn’t have to take a long time to develop an authority piece. Just like me, my friend found that having the authority piece made getting a job easier. A potential employer told him, “You obviously know your stuff on Angular. You wrote a book about it.”
One thing leads to another
Just putting something out there often leads to more opportunities.
Soon after I started posting videos on my personal YouTube channel, Quincy Larson from freeCodeCamp offered me the opportunity to post my training videos on the freeCodeCamp channel (with many many more subscribers than mine).
Then after seeing my training videos on YouTube, Manning Publications, a popular software book publishing company, asked me to create a video course on Algorithms.
While it helped my job search that my videos were posted on a channel that had over 200K subscribers, I think the most important thing was that I had created the videos in the first place.
Not everybody needs to create a video course. But I firmly believe that everybody can create something to show they know what they are doing.
Remember: you don’t actually have to know a lot about a topic to create something to teach others about the topic. You just have to have an interest and a desire to learn.
An e-book or email course are possible for anyone to create and it will help set you apart to employers. Just the fact that you created them shows you have initiative, creativity, and drive. And often, one authority piece can lead to another.
If someone were to ask pointed interview questions about every topic I’ve made a video about, I would probably get a lot of the questions wrong. It’s easier for me to know what I’m talking about when reading a script I developed after researching a topic than when I am just answering questions in-person with no script. That’s what is so great about an authority piece. You can show your understanding of a topic, even if it would be a challenge for you to explain things spur-of-the-moment in an interview.
At one of my interviews there was a coding question that I couldn’t figure out. I couldn’t remember a specific concept, but afterwards I realized I had made a video about the very thing I couldn’t figure out while under pressure in the interview. So the next day I emailed them a link to my video. And this became one of the companies that ended up wanting to hire me.
Steps to creating an authority piece
The first step is to decide what topic you are going to create something about. The key is a single focus. This is especially important if you are creating a blog to develop authority. It is best to become an authority in one specific topic, instead of everything.
Here’s an example to show why focus is important. Let’s say your sink is completely clogged and you want to hire a plumber to fix it. Would you rather hire “Affordable Plumbing” with the tagline “We do it all!” or “Super Clog Busters” with the tagline “We’ll unclog any drain in 10 minutes or it’s free”? Most people would choose “Super Clog Busters” because they specialize in exactly what needs to be fixed. And similarly, many employers would rather hire a specialist than a generalist.
When deciding what to focus on, you don’t have to pick something you already know about. Remember, you will become an authority just by creating your authority piece.
After you have your topic, decide what medium to use. The easiest things are a video course, e-book, or blog. If you can create a video course or e-book, these are better than a blog since they are more rare.
The final and most challenging thing is to work consistently on whatever you are creating. It is consistency that will ultimately set you apart from most other people.
If you start creating something, send me a link. I’d love to see what you're working on!
Also, if you're interested in getting occasional emails from me containing tips for your job search, including more ideas on creating an authority piece, join my email list below.
Something else that will help in getting a software developer job is to be very familiar with data structures and algorithms. This will allow you to pass the technical interview at many companies. On December 15th, I’m choosing two people at random from my email list to receive a FREE copy of my Algorithms in Motion course from Manning Publications! (So you might as well wait until then before unsubscribing 😉)
Want to boost your job prospects? Become an authority on something. Here’s how. was originally published in freeCodeCamp on Medium, where people are continuing the conversation by highlighting and responding to this story.