Our thoughts on software development in Ethiopia
Software can't just be developed with a couple of people and be a better one. We need to have more people that codes and wite test for the software being build but when you limit the number of people who get involved in the process, the development might not cover the be a whole which might not produce a desired software at the end of the tunnel. The process always reflects the end result
On this blog we will try to discuss about our opinion on software development in Ethiopia. If you prefer a podcast instead of a blog post you can listen to our episode here
How many apps built in Ethiopia did you have installed on your phone, right now?
How many applications that are built in Ethiopia have you installed on your phone or laptop ( this might be rare ). How good are they? did they do what they say they would ? How do they fell compered to other apps you have on your phone or laptop .For me I have a couple of applications made in Ethiopia that i have installed on my phone , well for the question I asked I would say there are a lot of good applications that I usually use and some of them might even be telegram bots, but still there are also apps that are not that good or some that doesn't even do what they say they would. we will talk in detail about what problem we might face while using the app, In general at least we can relate to these apps that we have expected so much of but didn't live up to the hype.
Starting from the strength!
well some apps are just great we will talk about the development process later on but for the most part what make an application great is the fact that it do what it is supposed to do or at least what it says it will do. You know no surprise crashes and when it does at least gives you some useful info how to solve that problem if it can be solved. for example if you put a number in a name field when signing up, the app shouldn't just be crashing or saying something went wrong , it should specifically tell you what you can improve in this case tell you to correct your input when entering your name.This can be expanded quite a lot , generally the app should give users the feedback they deserve.
Some apps do what they say they would but might confuse you in the process these are usually the Bad UI/UX experience category apps .Those apps might work but its always a hustle to get what you want, even if you can do that in the app. some of these apps Hide some functionality somewhere far away or they don't make it straight forward, have you ever seen something that looks like a button but it's not clickable or doesn't take you no where when you do click it, when your expectation was shattered that shows there might be a UX problem with that app :(. there are a lot of apps that violate those good rules of being a good app so they might be considered not so good after all but we always appreciate the effort and we understand the software development in Ethiopia is just starting up and what we already have is to be nourished rather than being shattered so we always appreciate the effort and urges development personnel and companies to aim for more!
In simple terms, an app should have a good user centered interface and should work, it should fulfil the expectation of the user while claiming this, any app goes through a process to get to the users hand. This process vary from company to company developer to developer but there are an agreed up on process that people usually follow to develop the app, it goes like this
- you have an idea
- you analyze it and determine what needs to be done
- you start thinking about the idea and changing it to the software
- you analyze the software parts and components that are going to made the app
- you start making your app
- you might need to get back and correct some issues in the process
- finish up and test the application itself ( you might want to test the idea before starting the app itself)
- get it out there and let the target user use it :)
in this process of making your idea a reality most of the development happens after you start thinking about how you can make your idea a software. then the development start til you test it and iterate if you are not comfortable with the test result or after the feedback ( after you decide to keep it in development or get it out there) so we will discuss one of the biggest issues in the process.
Are you playing a Copy Cat or do you have an idea ?
One of the biggest problem starts with the idea. Usually ideas start from a problem but sometimes ideas might be just copied because they work in some area, now this might work sometimes especially in a similar environments but playing a copy cat is not a way to do it, basically because they don't usually work. This process is very important because everything starts with an idea.
Product owners need to Re-think about the way they see software!
One of the biggest problem we face in Ethiopia when it comes to software development is the way people see software. Software are not commodities, you can't just buy one and be fine for the rest of its use.Software is useless unless actively maintained and added up on. Softwares doesn't come out perfect after the first phase of development that is the reason why softwares are given a version but some people especially people that are doesn't have experience in software development might not understand it, I have seen it and people usually raises these concern software needs continuous development or it becomes absolute.
- continuous Development and continuous integration is becoming common among software development now a days or Agile development methodology is taking over the industry.
Software development problems
Most of the problems we mentioned in the intro relay mostly in the development process or in the design phase. We download an App because we think we are going to use it, if you are like me you don't download Apps you are not going to use. Those apps we thought we can use might not be well built starting from the interface to the overall experience.which usually ordinate from software development process. These usually happens because of lack of communication usually the one who has the idea and the one building it can't talk in simple terms because of the way they understand software but there are a lot of frameworks out there to help with these particualar problem.
When The development starts there needs to be enough analysis and design built to start the development process. Developers start with the development and start analyzing and designing the software as they face issues they can't walk past. Its really important to understand what we are going to build before we start building it. Software isn't a tangable product so we don't need a complete picture usually but we need enough.
one of the major problem in software developments are the following, the one listed below are the one we noticed in Ethiopia. remember these actually can happen anywhere in the world while developing any software.
- Lack of analysis and design before starting a development
- Lack of development time
- Lack of developers
- Lack of experience
- Lack of real feedback from potential users
- Lack of writing
most of the issues we face are not problem that arise from the software developer usually software developers are forced to push a product in a restricted time frame with out any or limted number of tests. usually the problem arise from the way the product owner think about software and how its done.