In today's competitive marketplace implementing software will necessarily deliver ROI for virtually any kind of business. That gets done by both minimizing the operational costs and by maximizing the market reach of your business product or service. I.e. by implementing a custom CRM and billing platform a company will save money with staff and by releasing mobile applications a company will increase their digital distribution channels.
But there is also a question of investing in creating the software itself. Depending on how you run the project and how well you work with your client, the same amount of functionality can be achieved in different amounts of time and with different amounts of investments (sometimes with astonishingly different amounts of investments). The worse a project is run, the more expensive it gets.
Here are a few tips from our own experience to maximize your ROI when implementing software. Some of these will be obvious, some others won't.
1. Assign highly specialized developers on separate components
Specialized developers write faster and more accurate than generalists. You want to have your database developer work on back-end, your APIs / web services developer write APIs and your front end guys focused on front end. It is a must for them to work well as a team and to communicate flawlessly and as a consulting business owner you should focus your efforts on recruiting them right.
I had the best results with specialized teams who had previously worked together on similar complexity (or higher complexity) projects.
And, yes, there are full stack developers out there who can do them all and they do it very well. They are great! However a lot of projects have enough complexity and require enough upfront bandwidth so that you cannot rely on one person only for any given project.
2. Work agile
Agility gives any project a lot of traction and optimizes implementation costs a great deal! By bringing requirements inconsistencies and defects up early in the processes and by continuously iterating and tweaking the code, you will release faster and with better quality.
I always used to give the example of this major telco project I was involved in. After six month of coding, production release and deployment the client changed a big portion of the requirements. Took us another three month to implement them.
Note that for the agility to work well a few things have to happen: you have to have a great development and business team (easy to work with, highly skilled and non-testy) and the client also has to be interested in working in an agile way as well (some of them are not, it's a culture thing).
3. Pull the most competitive rates per head for the amount of expertise
Weather you employ on-shore or off-shore resources always strive to get the best deal out of your per head developers rates. Important: that CANNOT be at the expense of lack of quality or lack of experience. An inexperienced developer is much more expensive than an experienced one.
4. Use pre-defined & pre-written components / modules. Integrate.
Pre-defined modules and components also give you a lot of traction. Imagine the project of a local school district where they need a web based CMS platform for their school with shopping cart and marketing capabilities. While you can write things from scratch, there are very inexpensive and easily customize-able educational related Word Press themes, pre-designed e-commerce carts such as WooCommerce and pre-written modules for events calendars. Plugging in and configuring these components will reduce the man hours with 60%-70% (!).
There are projects where the level of customization or configuration of pre-written components is higher than others. In those situations it is worth writing from scratch rather than integrating. However in most of the cases integrating saves money!
5. Constantly facilitate between the development team and the client
This comes back to agility. There is a tendency in certain projects for the development teams and the business side not to collaborate efficiently. It's your job as a project manager to keep communication flowing, eliminate road-blocks, mediate and negotiate, keep your developers away from distractions (such as distractions related to internal tech support or non-impact-full technical work items).
Reporting daily progress in an agile way with web links and tangible digital assets is also another great way to keep the client involved and get feed-back.
Involving the client in the decision making process of designing features (even if the client is not technical) is also a great way of collaborating with the client.
Make it a great day!
Adrian Corbuleanu
http://wittywebnow.com
Witty Web Solutions (http://wittywebnow.com) is a Miami Beach based software development company. Our code is lean, small foot print, easy to read, reliable and fast. We have excellent tech support. We save development costs by implementing agile project management techniques.
Wednesday, May 20, 2015
Monday, May 11, 2015
After an eMerge Americas event
Last week we've been proud participants to one of the biggest tech events South Florida is hosting year around: eMerge Americas. Hosted in a prime location at the Miami Beach Convention Center, with more than 10,000 participants, with all the major tech companies boasting big booths, 100+ start-ups showcasing their new ventures, a Career Section and a number of celebrity speakers the Conference was a success!
Now that we were able to catch our breadth following up with contacts after the event, here are some thoughts we came home with from this event.
1. South Florida's tech market is definitely growing in initiatives
There were 129 start-ups participating in the start-ups contest. That's more than I expected! It is correct, some of them were from out of town but Miami was very well represented as well. It is a great thing to see young entrepreneurs putting together ideas and business plans and pitching. And it is a great thing to see crowds flocking and National TV Networks broadcasting the events.
2. The South FL tech investment community still looks pretty shy
While the initiatives are great and Miamians show very entrepreneurial, the investors community remains shy. Prizes of the $25k, $50k and even $100k of sorts will not drive talent to Miami fast enough to make it compete with major tech hubs like San Francisco, New York or Boston. Make it a million $ for a prize and then we are talking!
I spoke with a lot of very talented developers that I personally know: they would easily relocate to Miami should the opportunities arise! They are attracted by the weather, the relatively low cost of living and the good taxes environment but they look for the same things: great projects and great salaries.
Prior to this show this piece of information came in that for every single dollar invested in tech in Miami there are a thousand dollars invested in in tech in San Francisco ($14 mil. in 2014 as opposed to $14 bil. in 2014). That's a huge difference!
So I challenge the South FL investor's community to step up to the plate and significantly raise the bar in terms of invested amounts in South FL projects.
3. The tech talent looking for full time jobs remains scattered
While the entrepreneurs were great, the job seekers were shy. We participated in the Career Fair section. In two full days we gathered only about 25 resumes out of which only 2 people had the actual education and skill sets to be interviewed for a full time position.
This comes back to two avenues: one is the School's System in Florida- which can definitely be improved. And another one is the amount of capital investments that is poured in the local economy. The better schools and the more investments we will have, the more successful people we will be able to drive and the more innovation will happen.
4. We are in Miami- so we have to show off!
At that times it was funny to see how some people turned a tech event into a fashion show! Attendants showing up late and without an apparent interest in technology were showing off expensive clothing and apparel and looked like they were in a big hurry just to pass by.
5. We still need a major innovative driving force to take this City to the next level
I appreciated the speeches and keynote speakers: they are a necessity at these kinds of events. I love Manny Medina and I even like Pitbull. I am even okay with a Mayor talking here and there- even if I am not sure what a Mayor actually does for the tech community in a City like Miami.
But I wish more tech super stars were invited to talk. How about a Bill Gates or a Mark Cuban? How about an Elon Musk? They would have been inspirational!
So Mr. Manny let's try to bring over better quality speakers next time!
Along the same lines one thing Miami (and South FL more general) is still lacking is a major recent innovation story like the ones that people used to write when the first PC was invented in the IBM"s facility in Boca or when Citrix was founded in Ft. Lauderdale. I agree that things like growing and selling Teremark to Verizon for a lot of money was a great business success in South FL but I am looking for the next Steve Jobs! And the next Apple Computers!
Make it a great day!
Adrian Corbuleanu
http://wittywebnow.com
Now that we were able to catch our breadth following up with contacts after the event, here are some thoughts we came home with from this event.
1. South Florida's tech market is definitely growing in initiatives
There were 129 start-ups participating in the start-ups contest. That's more than I expected! It is correct, some of them were from out of town but Miami was very well represented as well. It is a great thing to see young entrepreneurs putting together ideas and business plans and pitching. And it is a great thing to see crowds flocking and National TV Networks broadcasting the events.
2. The South FL tech investment community still looks pretty shy
While the initiatives are great and Miamians show very entrepreneurial, the investors community remains shy. Prizes of the $25k, $50k and even $100k of sorts will not drive talent to Miami fast enough to make it compete with major tech hubs like San Francisco, New York or Boston. Make it a million $ for a prize and then we are talking!
I spoke with a lot of very talented developers that I personally know: they would easily relocate to Miami should the opportunities arise! They are attracted by the weather, the relatively low cost of living and the good taxes environment but they look for the same things: great projects and great salaries.
Prior to this show this piece of information came in that for every single dollar invested in tech in Miami there are a thousand dollars invested in in tech in San Francisco ($14 mil. in 2014 as opposed to $14 bil. in 2014). That's a huge difference!
So I challenge the South FL investor's community to step up to the plate and significantly raise the bar in terms of invested amounts in South FL projects.
3. The tech talent looking for full time jobs remains scattered
While the entrepreneurs were great, the job seekers were shy. We participated in the Career Fair section. In two full days we gathered only about 25 resumes out of which only 2 people had the actual education and skill sets to be interviewed for a full time position.
This comes back to two avenues: one is the School's System in Florida- which can definitely be improved. And another one is the amount of capital investments that is poured in the local economy. The better schools and the more investments we will have, the more successful people we will be able to drive and the more innovation will happen.
4. We are in Miami- so we have to show off!
At that times it was funny to see how some people turned a tech event into a fashion show! Attendants showing up late and without an apparent interest in technology were showing off expensive clothing and apparel and looked like they were in a big hurry just to pass by.
5. We still need a major innovative driving force to take this City to the next level
I appreciated the speeches and keynote speakers: they are a necessity at these kinds of events. I love Manny Medina and I even like Pitbull. I am even okay with a Mayor talking here and there- even if I am not sure what a Mayor actually does for the tech community in a City like Miami.
But I wish more tech super stars were invited to talk. How about a Bill Gates or a Mark Cuban? How about an Elon Musk? They would have been inspirational!
So Mr. Manny let's try to bring over better quality speakers next time!
Along the same lines one thing Miami (and South FL more general) is still lacking is a major recent innovation story like the ones that people used to write when the first PC was invented in the IBM"s facility in Boca or when Citrix was founded in Ft. Lauderdale. I agree that things like growing and selling Teremark to Verizon for a lot of money was a great business success in South FL but I am looking for the next Steve Jobs! And the next Apple Computers!
Make it a great day!
Adrian Corbuleanu
http://wittywebnow.com
Monday, April 13, 2015
The power of integration
Integrating pre-written and tested components is a common practice in software development. When designing a large scale solution, in the interest of time and budget it is many times a very good idea to integrate pre-existing code rather than writing it from scratch.
Weather they are open source or white labeled / licensed these pre-existing components will help both the client and the developer.
Here are a few examples of commonly used pre-existing components:
1. Shopping carts
There is a large variety of shopping carts available on the market. They range from carts for small shops to enterprise level carts that can handle large inventories and large numbers of concurrent transactions. Shopping carts are generally easy to configure, customize and straight forward to hookup to most of the industry's standard payment gateways.
Here is an example of a popular Ruby gem that offers a shopping cart
https://github.com/spree/spree
Other popular solutions include Volusion, Big Commerce, Shopify, Web.com and Yahoo for Small Businesses.
2. Shipping and handling modules
While most of the shopping carts have a shipping component, there are specialized shipping and handling APIs that do a very good job. Those are good to integrate especially when you have to deal with international shipments and non-standard addresses formatting. They are also great if you do not have a specialized shipping and handling company and you want to be able to address complex postage and shipping requirements with in-house personnel.
An API that does a very good job with this is https://www.easypost.com/
Other popular shipping and handling apps are the ones offered by the popular carriers like FedEx, UPS and DHL.
A Drupal based module is this https://www.drupal.org/project/commerce_shipping
3. Chat clients
Chat clients are very popular nowadays. You will definitely get requirements to implement a chat client (and possibly a chat server as well) if you work in social media projects or projects that involve online support (including IT support).
Back in the hey days of dotcom you had to do all kinds of magic, open up and close all kinds of sockets and write your own chat applications. But nowadays you have them at your fingertips.
Well known chat clients are Userlike, Pidgin and Trillian.
4. Games
To engage their users base, nowadays a lot of the interactive online platforms and social media sites require the availability of online games or gaming platforms. While your shop may not be a gaming development studio, you still do have access to a variety of online gaming platforms that can be easily integrated in your solution.
Some of the most popular gaming platforms are Arkadium, GamezBoost and Gamer Launch.
From our experience integrating games in social media platforms does require some funds (as most of the gamers charge at the level of $5k/month for the service) but it is by far much less expensive and faster than developing your own custom games as a company. The gaming platforms are titles rich as well, some of them providing hundreds or even thousands of different games. Latest platforms are also mobile ready.
5. Calendars
A lot of educational, events based or marketing driven websites require online calendars implementations. Usually the staff has to be able to share their calendar, add/edit/delete events, send notifications and updates and integrate with other standard calendars such as Google's and Outlook. Since a couple of years ago more requirement are for all the calendars to be mobile ready as well.
You can embed Google's calendar in WordPress https://en.support.wordpress.com/google-calendar/ or you can use one of the popular open source calendar servers such as http://calendarserver.org/
6. Standard servers (network applications)
When working in network applications such as load balancers, L4_L7 traffic management devices or other similar software/hardware solutions you will have a need to integrate some standard network services such as DNS (http://maradns.samiam.org/), DHCP (http://dhcpserver.sourceforge.net/) or NAT (https://github.com/lontivero/Open.Nat).
In the old days we used to have to write our own load balancing code but the latest versions of linux kernel made it much easier with things like LVS.
7. Language and currency converters
When you work on localized websites you will more likely run into the need of implementing language and currency converters. There is a wide variety of plug-ins for all the major platforms including WP and Joomla plug-ins. They cover automatic site content translation in many languages and currency converters for all the major currencies.
Here are some of the most popular translation tools: https://wordpress.org/plugins/wordpress-language/, WPML.org, qTranslate, Stella. For currency convertors you have Google's, Oanda and Yahoo Finance.
We used language and currency converters in real estate sites that target international markets in addition to the US market. In Miami a Spanish plug-in is always a great idea to have as well.
8. Standard feature sets for social media
A lot of the current niche or business driven social media platforms use a standard set of features (on top of many custom ones that depend on the solution). They generally include profiles and bios definitions, photo galleries with captions, the ability to follow users, like and dislike content, post comments, pictures and videos etc.
There are many open source pre-written modules that support social media platforms. One of them is The Social Stream https://rubygems.org/gems/social_stream/versions/2.2.2. Another one is Networkx in Python. Jomsocial as well is a very popular framework to write social media functionality on top of Joomla http://www.jomsocial.com/.
For straight-forward, standard looking Content Managed websites with a responsive web design requirement people can also use standard professionally looking pre-designed templates. These templates are very inexpensive, very easy to customize and have a big advantage: they do not necessitate involving and paying a professional graphic designer.
Here is a link to a site we occasionally use to pick up templates from:
http://www.templatemonster.com/wordpress-themes/53484.html
Here are also a few considerations when doing research to choose a pre-defined component:
1. Security
No matter what plug-in you implement consider security and understand possible vulnerabilities. If the module is open source it is easy to review the code for potential issues. If it is not do your online and offline research on the company / group that provides the module. Even the big shops have vulnerabilities and some components are more secure than others. Do your due diligence.
2. Scalability
When you work on larger scale systems consider the effort invested in growing up a pre-written module in comparison to a custom one. If the effort to customize the module is larger, then stick with writing custom code.
3. Clean code & flexibility
Always review the modules code thoroughly to see how flexible and easy it is to be customized to your clients needs. I.e. a chat client is pretty standard but a custom DNS server may involve more customization and configuration. You want to work with clean modules, things that are standard written and using best practices.
4. Support and documentation
Always test the tech support of the company that provides the module and/or check the online forums / discussion boards of open source groups. Most of these modules are actively maintained by large groups of developers. Support and documentation tend to vary in quantity and quality.
As we do a lot of Content Management, Social Media and e-commerce software development we successfully use a lot of these in our daily endeavors and our clients are happy every time when we can save them time and money while maintaining the quality, flexibility and reliability of the delivered solution.
From a business stand-point we have seen dollar$ savings for the client, depending on the size of the project and number of components, from 15% all the way up to 40%(!) calculated for an average complexity 3-6 month project.
Make it a great day!
Adrian Corbuleanu
Miami Beach, FL
http://wittywebnow.com
Weather they are open source or white labeled / licensed these pre-existing components will help both the client and the developer.
Here are a few examples of commonly used pre-existing components:
1. Shopping carts
There is a large variety of shopping carts available on the market. They range from carts for small shops to enterprise level carts that can handle large inventories and large numbers of concurrent transactions. Shopping carts are generally easy to configure, customize and straight forward to hookup to most of the industry's standard payment gateways.
Here is an example of a popular Ruby gem that offers a shopping cart
https://github.com/spree/spree
Other popular solutions include Volusion, Big Commerce, Shopify, Web.com and Yahoo for Small Businesses.
2. Shipping and handling modules
While most of the shopping carts have a shipping component, there are specialized shipping and handling APIs that do a very good job. Those are good to integrate especially when you have to deal with international shipments and non-standard addresses formatting. They are also great if you do not have a specialized shipping and handling company and you want to be able to address complex postage and shipping requirements with in-house personnel.
An API that does a very good job with this is https://www.easypost.com/
Other popular shipping and handling apps are the ones offered by the popular carriers like FedEx, UPS and DHL.
A Drupal based module is this https://www.drupal.org/project/commerce_shipping
3. Chat clients
Chat clients are very popular nowadays. You will definitely get requirements to implement a chat client (and possibly a chat server as well) if you work in social media projects or projects that involve online support (including IT support).
Back in the hey days of dotcom you had to do all kinds of magic, open up and close all kinds of sockets and write your own chat applications. But nowadays you have them at your fingertips.
Well known chat clients are Userlike, Pidgin and Trillian.
4. Games
To engage their users base, nowadays a lot of the interactive online platforms and social media sites require the availability of online games or gaming platforms. While your shop may not be a gaming development studio, you still do have access to a variety of online gaming platforms that can be easily integrated in your solution.
Some of the most popular gaming platforms are Arkadium, GamezBoost and Gamer Launch.
From our experience integrating games in social media platforms does require some funds (as most of the gamers charge at the level of $5k/month for the service) but it is by far much less expensive and faster than developing your own custom games as a company. The gaming platforms are titles rich as well, some of them providing hundreds or even thousands of different games. Latest platforms are also mobile ready.
5. Calendars
A lot of educational, events based or marketing driven websites require online calendars implementations. Usually the staff has to be able to share their calendar, add/edit/delete events, send notifications and updates and integrate with other standard calendars such as Google's and Outlook. Since a couple of years ago more requirement are for all the calendars to be mobile ready as well.
You can embed Google's calendar in WordPress https://en.support.wordpress.com/google-calendar/ or you can use one of the popular open source calendar servers such as http://calendarserver.org/
6. Standard servers (network applications)
When working in network applications such as load balancers, L4_L7 traffic management devices or other similar software/hardware solutions you will have a need to integrate some standard network services such as DNS (http://maradns.samiam.org/), DHCP (http://dhcpserver.sourceforge.net/) or NAT (https://github.com/lontivero/Open.Nat).
In the old days we used to have to write our own load balancing code but the latest versions of linux kernel made it much easier with things like LVS.
7. Language and currency converters
When you work on localized websites you will more likely run into the need of implementing language and currency converters. There is a wide variety of plug-ins for all the major platforms including WP and Joomla plug-ins. They cover automatic site content translation in many languages and currency converters for all the major currencies.
Here are some of the most popular translation tools: https://wordpress.org/plugins/wordpress-language/, WPML.org, qTranslate, Stella. For currency convertors you have Google's, Oanda and Yahoo Finance.
We used language and currency converters in real estate sites that target international markets in addition to the US market. In Miami a Spanish plug-in is always a great idea to have as well.
8. Standard feature sets for social media
A lot of the current niche or business driven social media platforms use a standard set of features (on top of many custom ones that depend on the solution). They generally include profiles and bios definitions, photo galleries with captions, the ability to follow users, like and dislike content, post comments, pictures and videos etc.
There are many open source pre-written modules that support social media platforms. One of them is The Social Stream https://rubygems.org/gems/social_stream/versions/2.2.2. Another one is Networkx in Python. Jomsocial as well is a very popular framework to write social media functionality on top of Joomla http://www.jomsocial.com/.
For straight-forward, standard looking Content Managed websites with a responsive web design requirement people can also use standard professionally looking pre-designed templates. These templates are very inexpensive, very easy to customize and have a big advantage: they do not necessitate involving and paying a professional graphic designer.
Here is a link to a site we occasionally use to pick up templates from:
http://www.templatemonster.com/wordpress-themes/53484.html
Here are also a few considerations when doing research to choose a pre-defined component:
1. Security
No matter what plug-in you implement consider security and understand possible vulnerabilities. If the module is open source it is easy to review the code for potential issues. If it is not do your online and offline research on the company / group that provides the module. Even the big shops have vulnerabilities and some components are more secure than others. Do your due diligence.
2. Scalability
When you work on larger scale systems consider the effort invested in growing up a pre-written module in comparison to a custom one. If the effort to customize the module is larger, then stick with writing custom code.
3. Clean code & flexibility
Always review the modules code thoroughly to see how flexible and easy it is to be customized to your clients needs. I.e. a chat client is pretty standard but a custom DNS server may involve more customization and configuration. You want to work with clean modules, things that are standard written and using best practices.
4. Support and documentation
Always test the tech support of the company that provides the module and/or check the online forums / discussion boards of open source groups. Most of these modules are actively maintained by large groups of developers. Support and documentation tend to vary in quantity and quality.
As we do a lot of Content Management, Social Media and e-commerce software development we successfully use a lot of these in our daily endeavors and our clients are happy every time when we can save them time and money while maintaining the quality, flexibility and reliability of the delivered solution.
From a business stand-point we have seen dollar$ savings for the client, depending on the size of the project and number of components, from 15% all the way up to 40%(!) calculated for an average complexity 3-6 month project.
Make it a great day!
Adrian Corbuleanu
Miami Beach, FL
http://wittywebnow.com
Subscribe to:
Posts (Atom)