The big challenge in business, especially online business, is how do you find new customers? Or even any customers?
You may have already taken the entrepreneurial plunge… even set up a website, or built an app.
I have news for you…that’s the easy part!
The much harder part and the part people always seem to put off right until the end, is actually finding these magical customers who will give you money for your shiny new app.
From an online perspective there are four main ways that people can find you:
- The first is SEO, where people search for something or even your website eg nuts & bolts and your page appears on the search results. They click on a link and go to your page. This technique is working less and less nowadays as Google is trying to push you to buy paid traffic and there are a lot of incumbents in the space with whom it’s difficult to get over.
This is a good long-term strategy for getting traffic but as an approach for getting customers quickly, it’s not so good.
- An option related to this is AdWords. When people are searching for a particular term, your link appears at the top of the search results, they can click on the link and go to your page. This option was the best way to buy customers for a long time and is still quite effective. However, it can be quite expensive and a lot of effort is required to optimise your advert and landing page for when the visitor lands on your website.
- Another less expensive option is to build up a following on social media, be it Twitter or Facebook. You build up a following by engaging with your community, sharing interesting and useful information and this allows you to obtain customers.
This is also more of a long-term strategy, taking a lot of time and effort to realise. Also with all the changes in the Facebook and Twitter algorithms, there’s no guarantee that you’ll always be able to reach your followers.
- Facebook advertising is fast taking over AdWords as the leader in pay per click advertising. Facebook allows you to be much more targeted in the way that you find new customers. It does this by leveraging the vast amounts of information that it has captured about people over the years and lets advertisers be very specific about the way they can pick who they want to show their advert to.
As a Facebook user and tech-oriented entrepreneur, it’s quite amazing and scary to think how powerful this platform that Facebook has created is for selling ads. It is clearly understood how this drives the massive amounts of revenue that they are seeing.
The platform is also far more impressive than the AdWords equivalent that Google has created and it’s apparent why Facebook is heavily eating into the advertising revenue that Google had such a strong monopoly over for all of these years.
The Facebook advertising platform used to be quite hit and miss in the early days. There were, and still are, questions about user intention on Facebook vs. Google. On Google they are actively searching for something they need, such as a spanner, so if they see an advert for a spanner they are more likely to click on the link compared to if they are looking at pictures of their best friend getting drunk on a Friday night. I think this is a valid concern, however, Facebook is overcoming it by having such a powerful platform to distribute the ads.
The big risk with Facebook is that the cost of each advert will rise as more and more people realise how powerful the platform is for attracting customers.
I think the market is big enough for Google and Facebook – whether or not both companies can play nicely together is another question altogether!
What do you do when you get the customers?
You have a visitor to your website – great! Now what?
Now you need to build a relationship with them. Most of the time they won’t be inclined to buy something straight away – they might be in an information gathering state of mind. In this case, give them some information that they will appreciate. Then you have to lead them down your funnel, which is a jazzy way of saying that you will send them a bunch of emails until they give in and buy some stuff off you.
Using the PPC platforms for Google and Facebook have a quite a steep learning curve and there are always new developments and techniques. For example, Facebook Messenger and Bots is one of the more recent developments that help businesses contact customers in a way that jumps the proverbial gate.
Whats the best approach?
I think the wisest option is to hire an expert to help you with this or to go on some sort of course, as it is definitely one of the biggest challenges when attempting to acquire customers.
Agile development has taken off in a big way and there are many notable companies that use it. However, there are still many companies that are stuck in waterfall mode and find it hard to make the transition. Here are some of the agile best practices that I’ve found can be incorporated into any team and provide immediate benefits.
Make it easy to commit code
Make it easy for developers to commit code and try and commit regularly so that your code stays code stays in check. I think merging code that has been worked on for long periods of time is one of the most error-prone and time-consuming tasks a developer can be faced. The ideal solution is to have your version control system integrated into your IDE, tools such as Eclipse and Subversion make this quite easy to achieve.
Short build cycle
I’ve come across numerous companies where they are so focused on other issues that they totally miss this one. Long build cycles mean that a surprisingly large amount of time is wasted when the developer has made a small change and is waiting for his code to compile. It can also mean that the developer loses momentum and focus, which in turn means that even more time is lost.
In addition to this, you may want to look at JavaRebel – which provides a Ruby on Rails like functionality to Java and allows you to make changes to Java classes on the fly.
Test Driven Development
Unit testing has become very popular and is probably one of the easiest things to sell to your boss. Adding unit tests to your code provides a number of benefits; it helps find development problems early on and provides developers with more confidence to refactor code, which in turn leads to better, more robust code.
Automated build process,
There are a number of tools that will allow you to automate your build process CruiseControl and Hudson are two of the most popular ones. Build automation gives you immediate feedback on the health of your project and helps ensure that no bugs or compilation errors are introduced into the build.
Avoid creating silo’s of knowledge
Try and ensure that knowledge of all parts of your system is spread evenly between your developers. This stops development grinding to a halt when a particular developer is ill or on holiday, it also helps ensure your code is of a higher quality as more people will have worked on a particular component and hence it should be more standardized.
Have a place to share knowledge (informally)
Having a common place where everyone can share knowledge easily, such as a local Wiki can prove invaluable. There is obviously still a place for more formal documents, but a Wiki enables developers to do a brain dump on a particular problem or piece of functionality and store information that may have otherwise been lost.
Some of these agile best practices may seem obvious but actually implementing and sticking to them is where the challenge lies. In essence, these practices enable your team to work in a more efficient and responsive way, which should not only benefit the customer but also aid the developers in removing some of the distractions related to development and focus on the core task. Do you think there are there any that I have forgotten? Please feel free to leave a comment below.
Imagine if you had a silver bullet that helped you improve your business and keep one step ahead of your competition without spending a lot? In this post, I will teach you about a technique that can do this for you.
What is Continuous Improvement?
Continuous Improvement is the process of looking at all aspects of your business and looking for ways to make it better and making small changes on the basis of these reviews to improve it incrementally.
How to implement Continuous Improvement
- You need a clear way of measuring your current performance. Without a clear idea of it, there will be no way of knowing whether the changes you make are having any effect. From my experience measuring performance also as the knock on benefit of focussing employees on how to improve performance.
- Listen to your customers, your customers can often be your harshest critic but also one of your greatest assets. They will often provide helpful (and sometimes unhelpful) suggestions on what you could do to make their lives a little bit easier or provide them with a better service.
- Designate a time on a weekly or monthly basis for a retrospective when the improvements and measurements can be discussed, this will help keep the process moving forward.
- Reward success; the process has to be encouraged from the ground up from the shop floor to the directors so that the whole business is moving together as a whole and people are not just focussed on improving one small thing.
- The key benefit of this process is that it will keep the business competitive and keep it moving forward. You may also inadvertently discover a small change which provides a big benefit.
- Make your company more agile and make it easier to respond to change.
- Will reduce inefficiencies, help reduce waste and keep costs down.
- Fosters teamwork and provides employees with a way of taking ownership and seeing their changes benefit the company.
- I think that every successful business has an aspect of continual improvement incorporated within it; you have to keep moving forward and be as competitive as possible
Kaizen is a popular Japanese framework to implement a type of continuous improvement. More information can be found at: http://en.wikipedia.org/wiki/Kaizen
With the large number of redundancies, there are more people looking for jobs and fewer jobs actually available. In such competitive times, you need to try harder to stand out against the competition. Having been in this situation myself a few times over the years, I managed to overcome the odds and not only get a job but also have the ability to choose between a selection of roles. Below are some of my ideas on how to improve your chances of landing that dream job.
Before I start I think it’s worth stating that a real interest in programming is a sort of a prerequisite. A lot of my advice will take a considerable amount of time, which will be much easier to handle if you have a genuine interest in this area.
1. Best Practices
Learn about Design Patterns and development best practices. Whatever problem you are solving, the chances are that someone out there has already solved it in a much more elegant way than you could. Learning about best practices can help you avoid making common mistakes and improve your standard of coding in general.
2. Finding Information
Learn how to use Google/resources properly. You might laugh at this one, but knowing the best way of searching on Google for help with a problem or for some extra information can be invaluable. Also don’t be afraid to post to developer forums/mailing lists, or even email the people in charge of a project for some help.
Gain a widely recognised accreditation. My personal recommendation would be The Sun Certified Java Programmer program – it would help give potential employees some reassurance into what your current standard of programming is.
4. Go Agile
Learn about Agile software development – I believe that an Agile approach is the best way to produce software and even if you don’t end up using it, you could incorporate some of the best practices into your role and impress your new boss.
5. Join a Project
Join and contribute to an open source project – preferably something that has a fair amount of developer activity and something that you find interesting and maybe even beneficial to your future options, some suggestions would be Hibernate, The Spring Framework, Selenium.
6. Write a blog
I think this would score a lot of brownie points with potential employees. Starting a blog has a number of other benefits also, such as building relationships with other people in the industry and increasing your level of visibility.
7. Learn Learn Learn
Keep up to date with the latest development related news and learn and experiment with new technologies. See my links section for more places to find information.
8. Improve your C.V
Your C.V is effectively your sales pitch to your potential employers, spend time on making it as clear, concise. Also, ensure that your strengths and full range of technical skills are adequately highlighted.
Why is Interface Design Important?
The usability of your product, whether it is a website, phone app or desktop program is one of the key factors in determining its success. One of the main reasons why Apple products are so successful is because of how easy they are to use.
I have put together a list of best practices that should help you regardless of what form your interface should take.
Having consistency in your interface enables users to apply their existing knowledge of previous applications in understanding and building up an accurate mental model of your application. Accurate mental models lead to less support and training being required.
The system should keep users informed of actions or events, such as errors and state changes that are relevant to the user. This helps provide the user with a greater sense of engagement with the application.
Tasks that the user is likely to do often should be simple and straightforward to do. The interface should be clean and simple with only useful and relevant information and components displayed.
In Western societies, people read left to right and top to bottom. Therefore to complement the users existing knowledge and expectations, screens designs should also be organized from left to right and top to bottom.
Mistakes are easily made. The interface should be able to handle misuse and mistakes by allowing the user to undo and redo operations wherever possible. A level of verification of the user’s input prior to any action is also encouraged.
This wasn’t an exhaustive list of everything that you can do to make your interface easier to use, but more of a high level taster, and if you keep the points mentioned in mind then it will in no doubt lead you in the right direction.
What user interface tips do you use on a regular basis that I didn’t mention above?