Posts Categorized: Uncategorized

Taking Your Craft Seriously

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…

What Satya Nadella Does to Make Software Development Cheaper?

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

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

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…

SOLID Made Easy – Open-Closed Principle

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

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

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

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

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

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

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

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

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

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

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

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

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.

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…

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

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…

The Two Sides of Software Development

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

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.

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

Featured Video Play Icon

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…

11 Tips for successful software development outsourcing

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

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

Featured Video Play Icon

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

Featured Video Play Icon

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…