Dragging Software Development into the 21st Century

Companies spend billions of dollars every year on developing their own software applications or purchasing complex enterprise software applications. This includes not only the cost of software, but the hardware infrastructure required to support the software as well. Rather than spending this money on software development, a company should put it to better use to improve the core business of the company. That is, the company should be focusing on what it is that they are really in business for rather then being distracted by software development.

Current software development practices for enterprise applications often result in products that are too expensive to develop, acquire, implement, integrate and then maintain. The typical software development cycle starts with a base product that is developed and subsequently sold, if external, or delivered, if internal, to a client. If the base product is lacking in functionality, then additional modifications must be made to the base product, adding to the cost of development. Once modifications have been completed, the implementation and integration phase starts. This phase has high costs associated with it; usually surrounding customization in order to get the software to interface with existing legacy systems. Finally, annual maintenance and service fess are charged, which usually do not include future upgrades. Clients are frequently less than happy with the results. The software development entity is often unaware that the client is not happy until the next development cycle is well under way, at which point it is too late and too expensive to address the problems. This results in an endless cycle where the software developed for a client continuously lags behind the client’s actual needs. Financial and human resources, which could be used too much greater effect elsewhere, are absorbed into a cycle that could be avoided altogether.

One of the highest costs involved in software development is the cost of developers. Over the past few decades computers have automated most industries. Ironically, the one industry that has not benefited from automation is the software development industry. Writing software is still a manual process involving monotonous and repetitive tasks. Techniques, such as code reuse and code generation have been developed over the years to reduce the workload. However, developers are inherently resistant to change and to anything they perceive as being able to “replace” them. Either they do not trust someone else’s code, or they think they could write better code themselves. For whatever reason, developers wind up reinventing the wheel project after project and billing for that work. Since developers are reluctant to utilize tools and techniques in their own development, they become their own worst enemy. The computer is the greatest tool ever invented and developers, the ones that make this great tool work, are reluctant to take maximum advantage of it.

If there is an industry that should be automated it is the software industry. All business applications perform the same basic functions and they interact with a database the same way, doing inserts, updates, queries, deletes, etc. They interact with the user through a user interface allowing the user to input and retrieve data. The internal plumbing that ties everything together is the same. What makes an application unique is the business rules, logic, and workflows (how the user moves through the application). Ideally there would be a tool that would “create” these common features and help “manage” the unique parts.

A tool is needed that would allow a developer to focus on the “what” or the rules and workflows instead of the “how” or the plumbing. A tool is needed that would take care of the monotonous and repetitive tasks. These laborious tasks are precisely where a computer excels. This tool has been created and it is ready for those who can accept giving up total development control and let the computer do what it was invented to do: expedite commerce. For more information on how your business can benefit from custom software development visit www.cerkitek.com.

Return on Investment in Software Development

Hi I thought I would write a series of articles on a topic that I believe is becoming absolutely critical in the software development industry, that being the magical and mysterious ROI (return on investment) in software development.

As the owner of a programming company here in South Africa, I decided at the outset of the company that a rule of thumb for accepting any software development project would be that I would need to figure out how to measure the ROI in that particular project. Now you may or may not be surprised to know that in most instances my clients don’t actually think of this measure before taking on the project, they know that they have a business problem or business need that needs to be solved with technology and are willing to pay an amount of money for that. Experience over the years however has shown me that the best way to retain that client in the long term and or to make more business from that client is to prove a ROI in some way on that software development project.

I find this measure to be critical because for my companies purposes it shows exactly how successful a project is to my client in monetary terms. The bigger my impact through the software I develop, the more successful I have been at satisfying that clients need, the easier it is for me to go back to that client and offer further services. Contrary to popular belief, I don’t believe that a project coming in on time or under cost is a great measure of the success of that project at all, this is typically what IT companies do. If I really want to do a great job for my client then I always intentionally build a monitoring tool into the software I develop for them and that tool must track the ROI for the client in some way and present a report to the client whenever they want to see what this piece of software really is worth to them, be it through savings, additional income, time savings, it doesn’t matter so long as you track the value.
So how do you go about figuring out the ROI on software development project?

This is the difficult portion because it requires listening to the clients need carefully and scoping there need correctly, once you have done this, it should become fairly obvious what the client is trying to solve by having the software developed, this should then be a clear indication of the measure to be used on ROI. For example,a client of mine wished to have a system developed that automated the process of allowing shareholders in various properties to swap there owned weeks with each other. Before the client came to me they did this process manually, ie called there shareholders to find out if they were willing to exchange a week with a fellow shareholder that already gave an indication that they wanted to swap there week etc. This took a lot of time and for the administration fee that the client asked to do this, I suspect the profit was very little. Once we had developed the system and allowed the shareholders to interact with each other through the website instead of the web system, the ROI was very clear, why?

-We tracked each exchange in the system, each exchange has a monetary value associated to it.

-The clients telephone bill dropped significantly

-More swaps occur because of the ease at which shareholders can swap weeks, instead of having to go through a process of calling the company then waiting etc, this increase in sales is measurable

-Because the client offered the service electronically he could increase his administration fee.

All this information the client could get through there system thereby ensuring that he could very clearly see what his ROI was.
Conclusion

I believe without a doubt that if you truly want to complete a software development project successfully for a client, then you need to build a ROI tool into the software. Convince the client to do this, if you cant do that then build it free of charge, but make sure that you get your client to look at these figures. In the long term this will have a positive effect on your business and keeps your software development projects honest in terms of creativity and keeping the clients needs in mind constantly.

Please offer your comments and views on this topic, I am very sure that peoples opinions and views on this vary quite considerably, I am very willing to listen to other opinions in this regard.

In my next article on ROI and software, I will be describing more specifically how you can measure ROI on certain types of projects, in this case it will be how to measure ROI precisely in SMS campaigns.

Software Development – Risk Management

The first thing to accept is that software development is unpredictable. No matter what new fangled software is implemented and how many function points are estimated, experience has shown that making the target date (let alone achieving the desired quality outcomes), is a hit and miss affair.

Risk may arise due to loosely defined requirements, difficulties in estimating the time and/or resources needed for the software development, dependence on individual skills and rapidly changing requirements due to changing needs.

Here are some thoughts on how to make the unpredictable a little bit more predictable.

Spend more time setting objectives

Project objectives are important. A project should not be initiated without well thought out objectives. Spend time analysing what the project is trying to achieve. The project objectives need to provide guidance to the programmer for every programming task. Pin up the objectives for each programmer to see.

Here is an example of setting an objective. I was asked to analyse the requirements of a busy manager. His manual filing system was constantly in use, and never in order. A system was needed that would maintain the current details, and ensure that records could always be found. That was easy enough. However, during the interview, the phone rang constantly, with requests for information. The objective finally agreed on was “Eliminate the phone requests”. This led to a very successful solution, but completely different to that originally envisaged.

Having set the objectives of the project, do an exhaustive analysis of how the objectives can be achieved. This should eliminate unrealistic objectives – like “The best and nicest and cheapest and quickest”.

Do not spend too much time gathering requirements.

Rigid analysis stifles programmer and user creativity. It is also no guarantee against a software disaster. Where the documentation of the requirements runs into several volumes, it usually guarantees a software disaster.

Users frequently do not know what they want, but they will recognise it when they see it! What was the original requirement may not be what was wanted at all. Rather spend time on creating a solid project framework that will enable you to achieve the major objectives.

Break a project into multiple tasks.

Wherever possible, a large project should be broken into smaller tasks. Each task will then be more predictable with less to do and less that can go wrong.

The initial programming task should be to create a framework with minimal functionality. Create dummy procedures to show the style and the intent – it is important for the users to see the “look and feel” of the project early in the development cycle. It is equally important for the users to get involved right from the start. What you want is users to start “owning” the project.

With the project objectives soundly set, the basic functionality should be subject to little change. The dummy procedures can be completed once the project concepts and design have been approved. Later tasks can then add the “bells and whistles”.

The project must be “infinitely modifiable”.

The project must be designed so that it can handle major changes to requirements. With a soundly defined framework and infinitely modifiable design, the effect of users changing their minds will be minimal. As will the consequences of new or better ideas as the project evolves.

There needs to extensive thought on how an “infinitely modifiable” system can be created. This must be done before any programming is initiated. “Top down”, modular design standards will help.

The consequences of having a rigid system are unpleasant. When change occurs, and it will, you will have very unhappy management when the target date needs to be extended. Equally unpleasant is to send the programmers on a “death march” to get the project finished on time.

Do not use new or complex technology

Using straightforward, tried and trusted Software provides a head start. There is always some advantage in using the latest version of software – but there can also be a heavy cost. If new technology is essential for the project, then an independent trial of the software is needed to ensure adequate technical knowledge and that all the software bugs have been ironed out (are they ever?).

Relying on immature software with limited programmer exposure to the software is a recipe for disaster.

Hire only the best and brightest

The success of a software project is mainly dependent upon the abilities of the developers. They determine, more than any other factor, the viability of a project and have a tremendous influence on productivity.

A few tips: The successful applicant should have a keen sense of humour (see De Bono and Lateral Thinking) and a good grasp of idiomatic English. Excellent communication is all important.

Do not proceed with a large project where the best and brightest have recently left the company. The company will be suffering from the “skim milk” syndrome – and you need the cream of the crop for successful development.

Reusable code

It is always productive to collect a large library of reusable code. The procedures should be used to standardise: error handling, database access, edit routines, grid handling, etc. The reusable code will reduce debugging times, as each procedure will be called multiple times. It also lessens the amount of coding needed.

legal color legal less legal marks legal wish legal flower legal dollar legal night legal sonic legal flag legal widget legal client legal over legal blaster legal formula legal gang legal splash legal messenger legal member legal dish legal request legal urban legal sustain legal water front legal sparkle legal surreal food less food pipe food send food charts food wish food collector food econo food cupid food fiesta food grabber food gorilla food rule food muscle food last minute food matche food kayak food arrow food hotrod automotive send automotive marks automotive lion automotive request automotive collections automotive other automotive excel automotive treasure automotive rail automotive streaming automotive rally automotive crawler automotive hard automotive catcher automotive charm automotive appeal automotive cupid health positive health last health variety health offline health normal health joker health millions health omega health glamour health guerrilla health electra health urban health glory health precision health flavor health intergrity health collections health collector health calculator health other health excel health sugar health metric health hard health opedia health fame health classy health draw health slide health vector health collect health sweet health legacy home a bundant home back home battle home brite home browser home buddies home cache home calculator home catch home catcher home charm home charte home charts home chase home circus home collector home companion home dollar home dollars home stick home letter home flag home widget home client Food Products Financial Products General Auctions operating systems product activation Product Keys Product Key Finder Heating Systems Home Automation Home Automation System Building Supplies Building Designer Building Consultants Bathroom Accessories Appliance Repairs Equipment Hire Extensions & Additions Floor Coating Products Furniture Removal Garden Maintenance Garden Designer Interior Designer Interior Decorating Kitchen Design Landscape Construction Landscape Design Project Management Landscaping & Gardening Patio Cover Installations Tile Suppliers Home Access Control Home Alarm Systems Home Intercom Systems Home Security Card Access Plumbing Installation Home Entertainment System Home Improvement Mistakes Home Improvement Leads Home Improvement Tips Home Improvement Grants Home Improvement Stores Home Improvement Projects Green Home Improvements Marketing strategy Marketing Concept Affiliate marketing Smart Affiliate Marketing Strategies Best Affiliate Marketing Networks Women Lawyers sex dictionary sex diseases sex education film sex facts for teenagers sex health tips sex medicine for male sex positions during pregnancy sex power medicine sex relationships Vibrators and Adult Toys sex pills for women sex relationships online dating business online dating catfish online dating elite Adult Superstore sexuality counseling sex facts and tips sex power medicine sex relationships sex related words sex pills for women sex relationships Free Online Casino Online Casino Games the best online casino games Winning Strategy Games Best Gaming Experience Play Online Casino Games Online Casino gambling Slots gambling The Best Online Casino Play Online Casino Games Play Online Casino Play Online Pokies Real Money Slots Online Slots and Casino Play Online Slots Real Money Casinos Play Slot Machines Online Real Casino Jackpot Party Casino Slots Real Casino Slots Apps sex dictionary sex diseases sex education film sex facts for teenagers sex health tips sex positions during pregnancy sex power medicine sex relationships sex related words Vibrators and Adult Toys sex pills for women online dating business online dating catfish online dating elite Adult Superstore sexuality counseling sex facts and tips online dating service sex good for health sex positions during pregnancy sex power medicine Home and Patio Decor Center Home Remedies The Best Smart Home Security Systems Home Design Ideas Home Decorating Ideas Best Home Builders Home Building Online Courses Home Builder Marketing Top Living Room Flooring Best Logistics Software Best Application Comparison Shipping Software Solutions Logistics Management Software Logistics Software Systems Software Developers Systems Software Developers Software Developer Education Most Popular Software Applications Technology Applications Phone System Software Information Technology Spy Phone Technology download Smartphone Spy Phone Technology Software Developers Systems Software Developers Software Engineer Software Developer Education Android Software Applications Most Popular Software Applications Cell Phone Monitoring Software Software Technology Technology Applications Best Application Comparison Shipping Software Solutions Wedding Ideas Virgin on Wedding Night find the meaning of wedding Wedding Websites Virgin on Wedding Night Wedding Planning wedding planning tips business plan Online Services for Businesses public relations Small Business Trends Tips Small Business Best Application Comparison Software Developers Software Developer Education Android Software Applications Most Popular Software Applications cheap ray ban sunglasses Travel Insurance Information Backpacker Advice Kitchen Design Patio Cover Installations tw girl asia chat tube Landscape Construction Landscape Design Cheap Hotels Travel Tips Travel Guides Travel Information Cheap Flight and Hotel Packages‎ Travel Insurance Cheap Hotels and Flights Best Restaurants Vegetarian Restaurants Hotels And Resorts Best Hotel Restaurant Travel Information Trip Travel Insurance Compare Cheap Holiday Travel Insurance Find Cheap Hotel Discounts Cheap Hotels and Flights Cheap Hotels Travel Tips Travel Guides Travel Insurance Find Cheap Hotel Discounts Addiction Causes Causes of Alcohol Addiction Causes of drug addiction Drug Abuse Information Substance Abuse Programs Choosing a Addiction Rehab Program Drug Rehab Treatment Information New Drugs Online Personal product Sell Products Online Marketing Product Product Research Analyst Product Research Facilitator The Food Products General Products Beauty Products Business beauty salon product stroke sony Natural Health Magazine Bedroom Designs interior design ideas bedroom Premature ejaculation Health Tonics Herbs Natural Health Magazine Electrical System Vehicle The Shop Bulk Online Premature ejaculation www.777chat.info www.777good.info www.twshowkiss.info www.twtalk080.info www.twavtalk.info www.twshowlove.info www.twavsexy.info www.twavroom.info www.twavmovie.info www.twsexy888.info www.twsexyadult.info www.adult506.info The Legal Adviser www.twavshow.info www.twavnice.info www.asia222.info lawyer Legal advisor The Lawyer Portal good tube Drug Abuse Information Travel Guides Hotel and Travel business shuffle business precision business flavor business verde business intergrity business gratis business epic business anchor business clearance business eastside business corporation business feature business cellar business plum business divine business pronto business carnival business east bay business dodge business prestige business razor business atlantic business husky business remarkable business fighter business quantum business courier business construct business sparkle business rainforest business falcon business lightning business blod business downtown business curious businessafter businesss alvage business overnight business captive business amazing business abundant business designing business blender business imagine business just business surreal shoppinghusky shoppingnations shoppingremarkable shoppingfighter shoppingquantum shoppingpeach shoppingpresident shoppingsparkle shoppingrainforest shoppinglightning shoppingdowntown shoppingraven shoppingsalvage shoppingpriority shoppingmystical shoppingpermanent travellightning travellowprice travelmeasure travelmillions travelmystical travelnations travelnature travelnobel travelnormal travelnorthamerican traveloffline travelomega traveloneday travelouter travelpickup travelplatinum travelplum travelprecision travelprestige travelpriority travelpronto travelquantum travelrainforest travelraven travelremarkable travelrhino travelsalvage travelscribe travelshuffle travelsleuth travelsnapshot travelsouthbeach travelsparkle travelsunflower traveltopsecret travelurban travelyankee legalagenda legalcupcake legaldodge legaleastbay legalescrow legalgecko legalglory legalguerilla legallimited legalmystical Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Personal product Sell Products Online Marketing Product Product Research Analyst Product Research Facilitator The Food Products General Products Beauty Products Business beauty product skin care beauty salon product online product Marketing Products to Advertise online shop originals Product New Products Products Definition gigi hadid super model product marketing Personal Products Booking Apartments Definition of Apartment Secure Apartment Design Apartments girl room decoration free information Apartment Asia Apartment Girl Makeup Products Girl Clothing Girl Cookies chat girl chat adult channel asia Girl Dress Cosplay Japanese School Girl Dress apartment for girl Apartment Brokers Apartment Nice Best Affiliate Programs Digital marketing Internet Marketing Services digital transformation Seo Web Marketing Web Marketing Ecommerce Marketing Strategy Ecommerce Marketing and Technology The Lawyer The Business Law Bankruptcy Lawyer Law Firms Legal Information Attorney Best Lawyers The Best Advice Lawyer Lawyer Requirements Lawyer Employment Law Reports Wedding Ideas Virgin on Wedding Night wedding definition quotes wedding definition of marriage find the meaning of wedding Wedding Planning Wedding Planning Guide Wedding Websites wedding planning tips Small Wedding Planning kitchen cabinet water damage waste disposal Patio Furniture glass shower home builders custom cabinets Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Apartments Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web Interior Designer Web gkcplaw.us gldrlaw.us gprblaw.us krwnlaw.us lhyrlaw.us lrmhlaw.us mcsglaw.us mgdllaw.us mkmblaw.us mngzlaw.us mwpxlaw.us nkynlaw.us nltnlaw.us nthslaw.us nzsllaw.us pktqlaw.us qcpqlaw.us qrrblaw.us rbfylaw.us rcfblaw.us rdlblaw.us rgbqlaw.us rghwlaw.us rlnglaw.us rmfdlaw.us rzyzlaw.us skwtlaw.us spyzlaw.us tdgclaw.us tdgwlaw.us thtxlaw.us tzkflaw.us wgjnlaw.us xkdrlaw.us yrnclaw.us zwknlaw.us zwnblaw.us jclblaw.us rxdnlaw.us ghzwlaw.us zflglaw.us mbczlaw.us pyfwlaw.us hjcwlaw.us ydmflaw.us zkzflaw.us ptpwlaw.us jcdxlaw.us fgmdlaw.us ystjlaw.us fglxlaw.us txxrlaw.us nzsblaw.us fgmdlaw.us rbbflaw.us mxdhlaw.us dpmqlaw.us knwhlaw.us jzdmlaw.us ntsnlaw.us dpszlaw.us dmztlaw.us yswklaw.us fxbslaw.us mhjslaw.us pdxrlaw.us crbnlaw.us dcjplaw.us pzsflaw.us tzhmlaw.us xrlnlaw.us mczflaw.us dzpylaw.us qnfllaw.us pshllaw.us zfzjlaw.us wpqrlaw.us gngjlaw.us lnqrlaw.us hwyrlaw.us dnjnlaw.us wbljlaw.us rbsqlaw.us mnjslaw.us sqxrlaw.us ntxnlaw.us gnkflaw.us lcntlaw.us lcmjlaw.us xrwnlaw.us mnkplaw.us gnbylaw.us gymrlaw.us yrtnlaw.us dnwmlaw.us fhphlaw.us bnxnlaw.us hrxnlaw.us xdxrlaw.us tyljlaw.us dmrnlaw.us dypflaw.us gnfllaw.us nbnrlaw.us wbhllaw.us nyrqlaw.us tnsflaw.us hxynlaw.us ltqrlaw.us