October 10

Scale up or go home

We have mentioned in our previous posts that in the early stages of developing a software, we focus on important features first. Now, it’s time to talk about future stages of the software – the time when your software will serve more users.

Think ahead of time; plan later

The most important thing to keep in mind is “Don’t worry much about scaling up!“. It is important to think about it from the beginning, but don’t claim that you know it all beforehand. You won’t know how to scale your software up until you need to. Every software has its own story, and there is no gold standard for scaling up. So, what should you do now? Just think about your software architecture and tools set and pick the ones that are modular and easy for maintaining. Later on, you can plan for scaling up your software. But don’t waste too much time now planning for scaling up. Continue reading

October 3

Care about users

Introducing a new software to the market is not an easy job. There is a barrier of entrance. People don’t like to change what they used to do using the old paper technique or another software tool. The question now is: how can we make a new user’s experience friction-less? The answer is to care about them ..

Customer care starts from software design

Continue reading

September 26

Less features is more

You do not necessarily need more features to increase the number of people using your software. In fact, the Pareto principle holds true for software as well. The popular 80-20 law of the vital few states that, for many events, roughly 80% of the effects come from 20% of the causes. In software, 80% of users are just using 20% of your software features. Why is that important? If you are starting to develop a new software, identify and develop those 20% of features first – known as bootstrapping.

Why bootstrap?

Continue reading

September 19

Developers dilemma

Software developers are among the smartest people in the workforce; no doubt (and there are reasons for that). However, team success is not proportional to the number of smart individuals in it. Rather, team success is a result of harmony among team members. In a software project, developers experience so many conflicts. Why? because everyone has a point of view to implement a module in a certain way, and everyone thinks his way is the best. Let’s get rid of these conflicts!

No abstract truth

Continue reading

September 5

We are not in Silicon Valley

Many apps are hugely influenced by the user experience in the American market although they target local people. That is because software engineers are often obsessed with what’s going on in silicon valley. They don’t respect the differences and they just copy and paste the same user stories. The point is: differences are opportunities. For example, American people feel very comfortable paying online and saving their credit card information online. However, online payments might not be very mature in our local markets in the MEA region. We tend to respect cash more. Therefore, developing a software that serves our local market and offering online payment as the only method to receive the service will distract our audience. So, how should we see opportunities in the differences? Continue reading

August 29

Smart focus

Developers have the arrogance to think that they can accomplish all kinds of things. Unfortunately, this leads to a chaos when developing software. To find a way through this, we should dedicate most of our time on tasks that matter in our product development. Being focused doesn’t mean being narrow minded. Being focused isn’t simply concentrating on a single task. Being focused starts with clearly identifying your software features, marking the most important out of them and drawing the development path towards shipping them.

Be very smart about prioritizing

Follow the well-known strategy to categorize your software features into four categories: Continue reading

August 22

Toxic software

The Middle East is not the United States in software development – don’t be fooled by the number of software houses, web development agencies or freelancers aiming to ship world-class products. We lack a big portion of tech education that propagates to the single line of code that leads to a toxic software. Before developing your software, you just need to design carefully and learn to filter out the knowledge you get from overseas. What works there might not be the best fit for your users. Let’s cure our solutions from toxicity ..

Architecture drives toxic software

Continue reading

August 15

Your software is not solving a problem

People fall in love with brilliant software ideas. That’s true! However, if you are going to dedicate all of your work efforts into one software solution, you might need to think twice. You should make sure that the idea is a brilliant one and it solves a real problem, which you can clearly acknowledge and define. You also need to research that the problem addressed is not already solved – at least the way you think it should be. So, how should you decide whether your software deserves to be there or not? Let’s go!

Are you addressing a real problem?

Fake problem are problems that only you see. Never think that your bubble is reflective of the outside world. At this point, you might think that doing a market study is where you should start. However, traditional market research methodologies are based on asking people what they want. The truth is people don’t really know what they want. You should push it to them. The key question is: “Does your problem matter for people or not?”. Now, you can figure out your software’s long-term value. Continue reading

August 8

How not to build software

I will be straight to the point. Most existing software applications are crap, whether they are web apps, mobile apps or desktop apps; and yes some IoT applications should be trashed right now! Hundreds of software applications are released every day by big corporations, independent software vendors or individual developers. Some end up being wonderful and used by many people and a lot are just there to occupy computational resources without a true added value, either on the small scale nor the larger one.

Why should you care?

Whether you develop software for fun or you put it in a business line to make money out of it, you should stop and think before attempting to build it from scratch. You definitely don’t want to start developing and then stop half road to discover that what you are doing is fruitless. Continue reading