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…

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…

Written by Samuel3 years ago

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…

Written by Kjell3 years ago

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…

Written by bmedina3 years ago

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…

Written by bmedina3 years ago

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…

Written by Samuel3 years ago

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…

Written by bmedina3 years ago

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…

Written by Kjell3 years ago

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…

Written by bmedina3 years ago

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…

Written by Kjell3 years ago

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…

Written by Kjell3 years ago

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:

Written by bmedina3 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

When I was a junior developer I had no clue what I was doing and I had no one above me that guided me in the right direction. All I had was a lot of confidence (that I was the best software developer in the world) and a lot of good intentions. Since one of…

Written by Kjell4 years ago

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…

Written by Samuel4 years ago

“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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by bmedina4 years ago

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,…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Samuel4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Kjell4 years ago

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…

Written by Samuel4 years ago

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…