Whether large or small, any business organization will have some scope for automating their business processes using computer software, either by using an off-the-shelf product or by custom developing one. If software development is not the core business of the organization, then it is most appropriate to partner with a software development company (service provider) to obtain this software program. Such a scenario is more relevant in the UAE or middle east markets where most of the core IT functions appear to be off-shored. However, in the off-shored model, despite the advantages of significant cost savings, there are the risks of cost & time overruns and the solution not meeting business requirements. As an effective software development organization, you need to consider the following before you start working on a software development project.
(a) Clearly understand user requirements
This is the basic pre-requisite for any successful project, especially a software development project. It is also one of the critical phases in a software development life cycle. A software project will never be successful unless the requirements are correctly mapped and base-lined. Understanding the user’s requirement in its entirety and converting it into a proper Functional Specification Document (FSD) is a high level skill, almost like an art. Ideally, this process should take a few iterations unless the customer organization is very clear what their exact requirements are. However, unfortunately, in most situations that is not the case. These requirement gathering iterations will help uncover details which if otherwise left uncovered would have an adverse impact on the product during the design phase.
(b) Accurately estimate effort & cost and handle variance
In the normal course of events, after initially putting in an inquiry for a software development, the customer requests for a techno-commercial quote from the software development firm. This quote would be based on the high level understanding of customer requirements and conversion of these requirements into a high level project scope. However, in reality, in the absence of a very detailed requirements analysis phase, it is impossible to accurately estimate project scope and derive the effort and cost from it. Unless and until a detailed Functional Specifications Document (FSD) that captures in detail the business requirement from a functional perspective, the real effort and cost can not be ascertained. Assume the project has been awarded to you considering your cost and delivery time lines. You have now commenced the detailed FSD to map the exact requirements mentioned in Business Requirement Document (BRD) and the expectations shared in various communications. While you working on your detailed FSD, if you come across any point which you think would have significant value additions in the functionality then you need to communicate this to your client, even though it creates variance in scope between your initial estimate and the current analysis. At any stage, if you realized any significant variance in scope, it will have a direct impact on the effort required and consequently on the cost of the project, hence needs to be communicated with your client.
(c) Select the right development tools
When you embark upon a software development project, it is not very important to select the development tools upfront. You need to have your primary focus on drafting the solution and creating the detailed system architecture. Once that is done, you select the most appropriate tool(s) that will serve the situation. In case the customer makes known their preference for a particular technology for the solution, it is the service provider’s responsibility to evaluate that technology and enlighten the customer on its pros and cons, along with their recommendations.
(d) Modularize the development
Rather than starting off your programming from day one, spend some time analyzing the entire development process. Understand the different entities, processes and validations of business rules and figure out how best the solution can be designed and devised. Take time to design the data storage, segregate common routines & functions and come up with your technical document containing appropriate flow diagrams and algorithms. The technical document is a detailed derivative of the Functional Specifications Document and contains a lot of technical details.
(e) Develop the largest/ most complex module first
If there is no dependency of one particular module on any other module, focus on developing the most complex or the largest module first. This would help in building the confidence levels of the developers. However, a simpler module/ function that is common to multiple processes can also be given priority depending on its importance.
(f) Identify the developers most suited to the project
Every project is unique! Therefore, you need to identify the right blend of people and skills that are most suited to making the project successful. To make a huge impact on the project outcome, ensure that you have a good combination of variously skilled people in the team. You can have a team full of programming ‘stars’, but that doesn’t guarantee a successful project and a quality solution. In most cases, the attitude and the willingness of the team members makes the critical difference between success and failure.
(g) During development, discourage any ‘new feature request’ to creep in
You should have spent enough time during the requirement gathering phase to have a complete understanding of the business needs. However, it is highly likely that once you are into the development phase, the customer will come to you with requests for added features or modified functionality that significantly changes the project scope. This, in software development parlance is termed ‘scope creep’ and needs to be highly discouraged. Not only does it throw the project plan and planned activities into disarray, but could also result in events that lead up to a dissatisfied customer. Having said that, requests for minor changes with little or no impact to the overall project plan may be accommodated.
(h) Use automation techniques for testing
Once you are done with the development work, the next critical phase is testing. You need to ensure that the testing phase gets as much importance, if not more, as the development phase. One way of ensuring this is to have a dedicated testing team that is almost equal in number to your development team. The functionality of the software needs to be well tested to ensure that it works as per business requirements mapped in the FSD. Depending upon the complexity of the project, you can come up with appropriate test scripts and test data that can be used in manual and automated testing. Use of an appropriate automaton tool will help in performing stress testing. However, ensure that the basic testing starts with the developers themselves performing unit testing on the code they have developed. If the unit testing has been done well, then iterations in fixing during SIT or UAT will be marginal.
(i) Deliver something extra
Excite your client by delivering something creative which brings some real value addition to their business. While you should not be committing this ‘extra’ upfront, make sure you stick to the realistic commitments and try to over deliver.
Hi there, its good paragraph concerning media print, we all know media is a wonderful source of data.
I think the admin of this website is actually working hard for his site, for the reason that here every material is quality based stuff.
Many thanks for spending some time to explain the terminlogy for the novices!
I love what you guys are up too. This kind of clever work and reporting!
Keep up the wonderful works guys I’ve added you guys to our blogroll.
I am regular reader, how are you everybody? This paragraph posted at this web page is truly pleasant.
Hey there, You’ve done an excellent job. I will definitely digg it and individually recommend to my friends. I’m sure they’ll be benefited from this website.
You have published an awesome site.
I don’t even know how I finished up here, but I thought this put up was great. I do not realize who you are but certainly you are going to a famous blogger should you aren’t already. Cheers!
That insight slvoes the problem. Thanks!
Have you ever considered about including a little bit more than just your articles? I mean, what you say is important and all. Nevertheless just imagine if you added some great pictures or video clips to give your posts more, “pop”! Your content is excellent but with images and video clips, this site could definitely be one of the most beneficial in its field. Terrific blog!
Usually I do not learn post on blogs, however I would like to say that this write-up very pressured me to take a look at and do so! Your writing style has been surprised me. Thank you, quite great article.
What’s up, everything is going well here and ofcourse every one is sharing facts, thats really excellent, keep up writing.
Heya i’m for the first time here. I found this board and I find It really helpful & it helped me out a lot. I am hoping to provide something again and help others such as you aided me.
I simply could not depart your site before suggesting that I actually enjoyed the standard info a person supply to your visitors? Is gonna be again regularly to check out new posts
Woah this weblog is fantastic i like reading your posts. Keep up the good paintings! You understand, lots of people are hunting round for this information, you could help them greatly.
Someone necessarily help to make severely articles I would state. This is the first time I frequented your web page and up to now? I amazed with the analysis you made to create this particular submit amazing. Wonderful activity!
Hi there, just changed into alert to your blog via Google, and found that it’s truly informative. I’m going to be careful for brussels. I’ll be grateful in case you continue this in future. Lots of other folks will probably be benefited from your writing. Cheers!
Heya i am for the first time here. I found this board and I find It really useful & it helped me out a lot. I hope to give something back and help others like you aided me.
Fantastic goods from you, man. I’ve bear in mind your stuff previous to and you’re simply extremely fantastic. I actually like what you have got right here, really like what you are stating and the way wherein you assert it. You are making it enjoyable and you continue to care for to keep it smart. I can’t wait to read far more from you. That is really a wonderful website.
This really answered my problem, thank you!
I just want to mention I am very new to weblog and actually liked you’re website. Almost certainly I’m likely to bookmark your website . You actually have good article content. Cheers for revealing your web-site.
If you could message me with some hints on how you made your site look this good, I would be thankful.
Pretty nice post. I just stumbled upon your blog and wanted to say that I have really enjoyed browsing your blog posts. In any case I’ll be subscribing to your feed and I hope you write again soon!
Hello, Neat post. There’s a problem together with your web site in web explorer, would check this? IE still is the market leader and a huge part of people will omit your great writing due to this problem.
Hi, thanks for the comment but I dont understand why you are facing problems in viewing my site.. coz I too use IE and there’s no problem at all in viewing any of the pages and when we create sites, we make it compatible for all leading browsers as we really can’t say who uses which browser. Thanks!
You really make it appear really easy with your presentation however I to find this matter to be really something which I feel I might by no means understand. It seems too complicated and very large for me. I’m having a look forward in your next post, I will try to get the dangle of it!
Thanks for your thoughts but you need to read more articles or books if you can to get a hang of it, this article will only give an outline of what can be done for a successful project.. All the best!
Ha ha… I was just online around and took a look at these remarks. I can’t believe that there’s still this much attention. Thanks for crafting articles about this.
PoIuYt
I simply want to say I am all new to blogging and site-building and actually enjoyed this web site. Probably I’m want to bookmark your blog . You actually come with fantastic stories. Bless you for sharing your blog.
I simply want to mention I’m beginner to weblog and honestly enjoyed you’re web page. Very likely I’m likely to bookmark your blog . You really come with terrific well written articles. Thanks for sharing your web-site.
Nice blog right here! Additionally your web site lots up fast! What web host are you the usage of? Can I am getting your associate link for your host? I want my site loaded up as fast as yours lol
Keep working ,remarkable job!
Great website. A lot of useful information here. I’m sending it to a few buddies and additionally sharing in delicious. And certainly, thanks to your sweat!
Appreciate you sharing, great article post. Will read on…
I do consider all the ideas you have offered in your post.
They’re very convincing and can definitely work. Still, the posts are very brief for starters. Could you please lengthen them a bit from subsequent time? Thanks for the post.
It’s amazing to pay a visit this web page and reading the views of all mates about this paragraph, while I am also zealous of getting know-how.
I just want to say I am new to blogging and site-building and absolutely loved you’re web page. Probably I’m planning to bookmark your website . You actually have terrific posts. Thanks a bunch for sharing with us your blog site.
Very good info. Lucky me I discovered your site by accident (stumbleupon).
I’ve saved as a favorite for later!
Sweet blog! I found it while surfing around on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News? I’ve been trying for a while but I never seem to get there! Appreciate it
I much like the important information you provide inside of your content articles.I’ll bookmark your web page and check out all over again right here continually.I’m pretty confident I will realize an awful lot of recent stuff ideal right here! Really good luck for your up coming!
I just want to tell you that I am just all new to blogging and really enjoyed this web blog. Almost certainly I’m going to bookmark your site . You amazingly come with incredible article content. Cheers for sharing with us your webpage.