First Steps of Any Software Project!

 Software application design is complex. There are a few factors that the engineer has to take into account in order for them to properly meet the requirements and the specification in the first place, and more importantly the satisfaction of the user base.

User satisfaction is critical in any of applications that you as an engineer develop. Whether it is a traditional application, a web application or a mobile application. If the users are not satisfied, you will not succeed. So, user satisfaction is critical in any of the design concepts you have for your product.

One thing is for sure, as a software engineer, no matter how good you are, your ideas will not go far unless they have been polished and brainstormed to a certain extent. For me in general, the best place to start is a pen and a paper. I usually start all my project design and concepts on one or more pieces of paper before I even get to the computer. You may do differently, but the point is that you will need to start putting down some ideas before you can even start building the software.

The next step that I do is to create simple proof-of-concepts of the ideas I have developed from my pen and paper brainstorming session. In this phase, I usually don't get into the complex technical aspects of the system, but just simply try to build a working prototype of the User Interface to see if it is even feasible to do so, and that if it makes sense. At this step is a good idea to start testing your user satisfaction and get a feedback from the people who will actually use the system.

Now, in general, if you are an independent developer, you will not have access to any users and hence testing your user satisfaction might be a little harder. You will have to rely on your friends or relatives which usually will not give a good enough data points for proper analysis on the user satisfaction. Sometimes it works out and sometimes it really does not make sense. So you will have to try out different approaches until you figure out what works best for you.

On the enterprise and corporate level, it is a bit easier, because you do have access to the end users. The challenge is to get their full cooperation and making sure that they spend a good descent time in providing useful and productive feedback for your design. It is well known, that you will never be able to satisfy everyone 100% but we are going to be majority here. So if you get an approval rating of 90% and above, you are in pretty good position. There are always a few odd-balls out there that will never be satisfied. Their life, most likely is not a fun as ours!

Another very important aspect of software development, or in a matter of a fact any kind of a development, is to have the proper set of tools. Imagine if a contractor shows up to your property without having the proper tools to do the job! He might be one of the best in his/her field, but if they don't have the necessary tools, they won't be able to do much. So your tools are an important part of any professional's arsenal!

I would like to share the following from one my first mobile applications which I have developed for Windows Phone: Worldly Wisdom.

Working With Good Tools: Some seek to exhibit their cleverness by pointing to the poor qualities of their tools: a dangerous type of self-satisfaction to be followed by stiff punishment. The excellence of a servant has never dulled the splendor of the master: for all the glory of what is accomplished later descends upon the first cause, as, in reverse, all the disgrace. Fame walks only with principals, she never says: this one has a good subordinate and that one, a bad; but only: this one did well, and that one did poorly. Hence, choose well, make study, for thereon depends the immortality of your reputation.

Comments

Popular posts from this blog

The Future of Computer Engineering

Applying Process in Software Development: Practical Definition (Part 1)

Top Cool Tips for Budding Web Designers and Developers