Mobile-Friendly Sign Up

Design_User Experience_User Interface

It may seem like a small improvement, but displaying the right keyboard to a user can help ease friction on sign up, and make the whole process faster and more pleasant. Ever notice your mobile phone’s keyboard varying from one that displays an ‘@’ sign beside the space bar and one that doesn’t… …or, one…

Taking Your Craft Seriously

Uncategorized

Although it is easily overlooked, being a software engineer comes with a great responsibility. According to Robert C Martin, a regular new car comes with 100 million lines of code, where he jokingly adds ‘written by a 22-year-old at 3 o’clock in the morning’. It scares him, and if you are tech savvy I am…

Vertical Rhythm in Your CSS

Design_User Interface

Typography and typesetting form the foundation by which your whole user interface stand on. For a designer, everything else—color, art direction—is relative to the intention of the product owner. It’s very malleable. The one thing that should be unbendable is the system by which the letters are laid out on the page. If it’s not…

SOLID Made Easy – Dependency Inversion Principle

Uncategorized

The last principle in SOLID is the Dependency Inversion Principle (DIP) stresses out the importance of having dependencies based on abstraction. It states that: High-level modules should not depend on low-level modules; both should depend on abstractions. Abstractions should not depend upon details; details should depend upon abstractions. The first statement of the principle simply…

The Viewport Size Is Rarely Equal to the Screen Resolution

Design_User Interface

It’s an easy pitfall to fall into for a designer to consider a screen resolution when designing and testing instead of an actual browser viewport size. After all, even that community that develops standards to help web designers and developers make better decisions about these things (w3schools.org) provides that sort of data. Even with shiny new…

What Satya Nadella Does to Make Software Development Cheaper?

Uncategorized

It’s that time of the year we have to hand in our budgets. Making a budget for software development is hard because of all the uncertainties. What are we going to make? How long will that take? What if it does not go as planned. The cost of software is not determined by how fast…

SOLID Made Easy – Interface Segregation Principle

Uncategorized

The fourth principle in SOLID is the Interface Segregation Principle (ISP) which is a very simple principle and we must put into practice whenever we can. The Interface Segregation Principle states that clients should not be forced to implement interfaces they don’t use. Instead of one fat interface many small interfaces are preferred based on…

SOLID Made Easy – Liskov Substitution Principle

Uncategorized

The third principle in the SOLID principles is the Liskov Substitution Principle (LSP), it was named after Barbara Liskov as together with Jeannette Wing she was able to come up with a definition for subtyping. They defined the principle as: Let (x) be a property provable about objects x of type T. Then (y) should…

Microinteraction—Think Small

Design_User Experience

Common knowledge’s understanding of design doesn’t usually go farther than what the eye sees, but a cultural icon of invention said: “Design is not just what it looks like and feels like. Design is how it works.” —Steve Jobs Most of the time, when a user is asked why they like a product that they often…

SOLID Made Easy – Open-Closed Principle

Uncategorized

After learning about the Single Responsibility Principle, we have the Open-Closed Principle which is the second principle in SOLID. A class should be open for extension but closed for modification. The open-closed principle suggests that when a new functionality is to be implemented we should create another class or object rather than modifying existing code…

11 hidden requirements for your IoT devices

Uncategorized

The world we currently live in is going to change – it is predicted that by 2025 we will be having 7 trillion devices connected to the internet serving about 9 billion people. In this decade we will have to overcome a lot of challenges to increase bandwidth capacity to cater for all these devices…

SOLID Made Easy – Single Responsibility Principle

Uncategorized

The SOLID principles are a foundation of good OOP practices. In order to develop high-quality software applications, it is essential for every developer to understand and to practice them. SOLID stands for: S – Single Responsibility Principle O – Open/Closed Principle L – Liskov’s Substitution I –  Interface Segregation D – Dependency Inversion Single Responsibility…

A Developer’s Morale

Uncategorized

Have you ever wondered why your software development team loses motivation? Valuable members of your team start looking around for other jobs? They are less motivated to improve the product? People start showing up a little bit later, or go home a little bit earlier than before? One way or another, they are not happy…

How the FAQ may kill your App

Uncategorized

Software development is expensive, but this should not be the reason your users are left in the dark trying to find their way around in your application. A product design sprint will help you test your ideas before you actually start developing. If you own an application that is used a lot – you will…

Code Less in C#6

Uncategorized

When a new version of any technology comes out they usually boast something that would make that version stand out. In C#6, the main focus was on the small features and improvements in order for C# developers to write better and cleaner code. Let’s find out how many new features are in this sample code:

How talking to a Rubber Duck Improves Productivity

Uncategorized

Have you ever had that feeling that your solution could be coded in less lines? Have you ever been stuck and can’t find a way out? The intent of today’s post is that if you find yourself in any of these situations, that you regain productivity. Here are a number of random tips that I…

10 typical problems in software development projects part II

Uncategorized

This is part two of the article that I wrote to advice on overcoming project management pitfalls in software development projects, as found in the original post here on tech republic. The first post can be found here. 6. Poor Communications. Avoid mistrust by keeping the communication lines open at all times. SCRUM states that during…

10 typical problems in software development projects part I

Uncategorized

Today’s post may not be anything you don’t know yet. Software engineering is a craft and takes time to perfect, but a lot of typical problems can be addressed. Always when I google “problems in software development” I end up on this page on tech republic, stating 10 common software development problems. In this post…

2 simple rules to keep in mind when designing a report

Design_Uncategorized

Graphical excellence is that what gives the viewer the greatest number of ideas in the shortest time with the least ink in the smallest space. I read this quote in different variations over the years, and you can see that it is old as it refers to ink rather than pixels. Nevertheless, it is very…

5 best practices your exception handling strategy can’t do without

Uncategorized

Users are demanding of the software they use. It needs to be reliable and assist them to complete their tasks every single time in a user friendly manner. A user may accept a well written error message when they understand the cause cannot be attributed to your application, but it is important to have a…

9 practical tips to better estimate software development effort

Uncategorized

We are often requested to quote for a Minimum Viable Product (MVP), however before we actually have an idea on how long it takes, we need to understand the problem domain. We also recommend to find out if your users are actually happy to use your new idea using the UX Sprint. Once you get…

Instant insight in hard to maintain code

Code Quality_Tools_Uncategorized

Usually I would not write about commercial software however today someone gave me this link of a great online service that use a very smart data visualization technique to give you direct insight in the parts of your source base that are more difficult to maintain. We have blogged before that controlling your metrics is…

16 valuable tips to better express your intent.

Code Quality_Training_Uncategorized

There is no single definition for good or clean code. The definition will change per developer or team, but one thing the definitions will have in common is that good code expresses its intent properly. When your code looks like the hard to read scripts they show in Hollywood movies, take these tips to improve…

5 Principles to Help You Achieve Visual Clarity In Your UI

Design_User Interface

Humans are allowed a finite amount of time each day, and with all the demands of post-postmodernist day life, a designer must come to realize that an application’s users only have small attention span to allocate for such things. That is what separates these tools from humans: they shouldn’t demand a long amount of attention as most…

9 Tips to Speed up Your Web Application

Design_User Experience

“The results indicate that web pages that were downloaded faster were perceived to be more interesting than the slower ones.” Another conclusion from the same study: “The results show that satisfaction decreases with increases in response time.” The latter quote does not only apply for web pages, but also for desktop applications or mobile apps. The…

2 Tips to Reduce the Cost of Your Software Development in the Long Run

Uncategorized

For many decision makers, it is not clear that software maintenance is generally more expensive than the actual development of the application as this document shows. Historically in software development there are 4 types of maintenance cost. Corrective (21%) maintenance: Correcting discovered errors, generally the result of bugs or misinterpreted features. Preventive (4%) maintenance: Correcting latent…

13 User Behaviors Your Applications Need to Support

Design_Heuristics

Have you ever noticed that most, if not all, ‘next’ and ‘confirmation’ buttons of programs and wizards are usually located on the right-side area of the user interface? There is a reason for that. A good interface design starts with understanding your user. The better you understand your user the better your interface design, and…

How patient are you?

Design_User Experience

4 time-frames every developer should know Users will navigate away from your website when it takes more than 4 seconds to load. This is a very bold statement that I read somewhere online not too long ago. Although I have little doubts that this is true in some countries, the user’s patience is highly affected…

The Two Sides of Software Development

Uncategorized

As a programmer, it always amazes me when I think about how a single click of a button makes a huge difference in another person’s life. As developers, it gives us a huge sense of fulfillment to say that “Yes, we made that possible.” What’s even more fascinating is when I start to think about…

5 Guidelines for Writing a Good Error Message

Uncategorized

Regretfully, error messages are a part of our craft, and if I ask around, there are few developers who would know how to write a good error message. To give you a good idea on how poor developers are at this, have a look at the error’d section of thedailywtf.  Although part of the UX,…

80% of production code worldwide is of poor quality.

Code Quality_Uncategorized

I was shocked to find out the statistics about the quality of code. I ran into this document which claims it is estimated that there are about 100 billion lines of production code worldwide. As much as 80% of it is unstructured, patched and poorly documented. I have seen, been responsible for and have contributed to…

The Gang of Four Decorator Pattern

Design Patterns_Uncategorized

Design patterns can be defined as time-tested solutions, or problem solvers for recurring code problems. At You_Source, we love design patterns as they help us save time communicating about code, architecture, and they help reduce the time developers spend on understanding code (which, according to various studies, developers spend 20% up to 80% doing). The…

Why UI Patterns?

Design_User Interface

Charles H. Duell, once the commissioner of the US Patents and Trademarks office, said, “everything that can be invented has been invented.” A lot of people now would probably disagree with him, especially that we have the Internet, thinking and evolving non-organic things, and such. While the question of where invention ends and where innovation begins…

11 Tips for successful software development outsourcing

Uncategorized

They say there are two sides to every story; one that spreads like a wildfire and the other, the truth. Outsourcing has had a bad reputation all around the globe. Images of people working long hours in sweatshops and at very low rates are the first to come to mind when you hear the word…

11 Tips for Successful Unit Testing

Training_Uncategorized_Unit Testing

Unit testing makes or breaks a software development project. In small scale projects with a short life expectancy, this may not be integral but this is not the case for long-term projects. Maintainability of the source code matters, and testable code equals maintainable code. Unit testing your code will increase the lifespan of your application…

GhostDoc

Code Quality_Tools_Training_Uncategorized

If you are using StyleCop then GhostDoc is a tool you can’t do without. GhostDoc will help you document your C# code. GhostDoc is a Visual Studio plugin that runs from the editor in Visual Studio. It creates skeleton documentation, and even attempts to guess the documentation based on the name of your methods. If you…

StyleCop

Code Quality_Tools_Training_Uncategorized

StyleCop is an extremely useful Visual Studio plugin that helps you validate your style against a set of predefined rules. It runs straight from the editor and shows errors and warnings in your error list. The big benefits of using this tool become clear in projects with larger team sizes. All developers will code in…

The Prize of Running the UX Sprint

User Experience

How does one eat an elephant? For obvious reasons, one cannot eat it whole. It’s too big to fit in a human mouth. I can’t even imagine how one can cook a whole elephant. If ever it was possible—and I looked it up online—one would have to “cut it in edible chunks”. It’s just unimaginable…

9 Tips for Collective Ownership and Clean Code

Code Quality

Collective ownership encourages everybody involved to contribute new ideas to all segments of the project. As a project owner, collective ownership should be one of your primary goals. Although we developers take pride in being a species apart from the rest of the human population, developers are not very different from other people in the…