Archive for the ‘Software Development’ Category
Software applications and resources that can allow business owners to reduce their overhead and operational costs may be a resource that few startups can afford to do without. Resources that can allow you to more easily and effectively track your electric consumption, curb demand for costly utilities or help you find the best , electric companies in Hamilton Texas, and surrounding regions have many benefits for smaller businesses and startups that are seeking to reduce the cost of their energy usage. Finding and making use of the best apps can ensure that your business is able to make use of more competitive utility rates and reduce costly waste and excessive energy consumption.
Choosing the Right Energy Provider
Paying too much for any resource could be a serious misstep, one that a business operating with fixed or limited financial resources may not be able to make. Sorting through your options and comparing electric providers and utility services in an effort to find the most cost-effective options and the greatest values can be a daunting task when you lack for the right resources to aid you in your search. Applications able to provide real time pricing information and easier navigation of the providers you have to choose from can ensure you are able to find the most beneficial options for your electrical service.
Tracking Consumption for Greater Energy Efficiency
Having to keep tabs on the operational habits and costs of powering your business is a labor intensive task, one that may rob yourself and staff of energy that would be better spent on more important matters. Software that can speed up or automate the process will ensure that you are able to stay informed about the level and cost of power consumption your operation is resulting in. Superior information may be required in order to more effectively and successfully curb your consumption.
Reducing Electric Waste
Fixtures and appliances that are not as efficient as they could be, devices that are being powered when not required and other habits and situations that could be costing you more than you might realize are all situations that can be more effectively remedied when you have access to the right information. Tracking your electrical consumption with a software application can allow you to target and identify any aspect of your operations or working process that could be made more efficient. Using less energy will reduce your utility bills and overhead expenses and may allow your business to become more profitable as a result.
Finding the Best Resources
With a number of applications to choose from, finding and selecting the best of them could seem like quite the challenge. Conducting a little research and finding the applications and software resources that will be of most benefit for your business will ensure that you do not lack for a superior resource. The tools you need to ensure your business is able to be made more efficient and less costly could make a big impact on the results and success of your efforts.
This question is not a simple one, so you may not expect a simple question. If you read about this blog post, Uncle Bob Martin is a big fan of TDD, even for startup. I would say, for any startups, or any company, the technology process has to be aligned with the business process, which means it has to satisfy both the short term and long term goal of the business.
Think of any business you know, think of their products. If you serve a bigger, long term goal, the team will be given more money and time, otherwise, it will be given much less. If their products are the main cash cow, it is the long term product, otherwise, if it only built to last a couple of weeks and months, it is not.
So, startup, even though not a mature business, still needs to deal with this problem on a daily basic. I think the best approach for any startup is to determine how long the project would need and reconsider their decisions every few months to make sure they are still on track. When the startup thinks that the product is going to last long or the number , they need to add more tests into it, to refactor the source code, to raise the source code requirement. In economics, it is an important concept that “in the long term, everybody dies”. So, who cares about long term if we are going to die tomorrow? But, if we live for 10 years without a plan, I am sure that you will die within the next few weeks. The matter is how long you think your product will live.
And of course, if you keep the same plan, or the same process for the startup when the product grows, you sure gonna die. That’s the job of the executives to keep teams aligned with the business goals. And any company cannot do this will not survive for long.
I have a long support for open source system, the open standard, a more open and shared data in the web. 3 years ago, I thought that the win of Android is obvious and the reality has proven me right. I was confident with my knowledge and guessing until I read a long fan boy of Apple. Yes, he is a fan boy of Apple, and the article has really favoured Apple. But he made an important point great product wins. Not the great product in terms of technology, nor in terms of openess. It is a great product in users’ minds, either by its value provision or by good marketing.
By opening the platform, Android opens the door for more hardware suppliers. But that openess means nothing if the operating system sucks, it means nothing if the compatibility and the user interface are not good. Looking at Linux and all the free open source operating system. They are more opened, easier to adopt into the hardware by the suppliers, but they suck. Either the UI, the lack of applications and features, but they suck.
I think this article gives a very good point of view as well.
It is quite surprising for me to see how Excel rules the world of business. I know that many people in different companies, big or small use Excel for their daily jobs. But, until recently, I have understood how much impact Excel does have in the business world, and why it is the case.
These 2 excellent posts describe most of the use case of the Excel, why people still use it in the professional world, even in JP Morgan. I think Excel will rule even in the next few years, due to its ubiquitous usage, and many people support it (or its format): Microsoft (of course!), Google (with Google Docs).
People love the idea of cross-platform development for iOS/Android or try to use a familiar language to develop apps for either or both platforms. There are many solutions and platforms out there and each of them has pros and cons, here we will try to name a few and analyse them: MonoTouch, Appcelerator, RubyMotion, PhoneGap, HTML5, Java2ObjC…
The cons are quite depending on which you choose to go with, but we will analyse them in some aspects: easy for maintenance, native performance, delay for update, community support, pricing/bankrupt, talent hiring…
1. Easy for Maintenance
One thing that most cross-platform framework has problem is that it adds another layer of complexity into your system. If some bug happens or something does not run as intended, you have three times of works. You have to check if the bug is your bug, is your framework’s bug, the interaction between the framework and the iOS/Android platform, and finally, if that is a bug of iOS/Android. Let’s take a simple example:
iOS had an old bug with rotation and I encountered that bug when I tried to use Appcelerator to build my simple project. It took me the whole day to find that bug was an Apple bug, there is a work around in Apple way but that is not well supported by Appcelerator….
2. Native Performance
When it comes to native performance, I can say that most of the third-party frameworks do well in this area. However, HTML5 is not an excel when it comes to this, or at least, not yet. Facebook has shown us an important lesson with its decision to be back to native to improve its performance. I think that in the future, when the WebKit, the hardware and the requirement for a good app has matched each other, more and more apps will be developed using HTML5 and other open web technologies. Simply, because it is open.
So, if you are building something simple and may grow well over a long time, you may consider the hybrid approach to combine HTML5 and native code. This could work well with if you can integrate it with the web service at your backend.
3. Delay for update/community support/pricing
All of them come to the same problem of third-party frameworks, that middle complexity layer that you add into your project. Most of the frameworks will update quite fast when Apple release a new version, except many minor bugs. I used to have code that is working well with Apple in the iOS4 release and stop working when iOS5 is released. The problem gets worse when most iOS5 beta still works well with my apps. So, when I try to run our app on iOS5 final release, I get panic. I don’t know what is wrong with my code, is it the middle framework, is it just Apple’s release has changed something. I finally figure out that Apple has changed some rules in their API and that affects the old way the middle framework is working. I need to wait for their update to get it work.
Most of the middle framework has their premium supports but you either have to pay more or you have to wait a hell long of time. And most of the communities are a fraction of either the iOS/Objc communities or Android communities. At there, at least somebody has worked with your problem, somebody tested and figured a work around.
There are quite a lot of third-party frameworks around, and I am quite sure many of them will go bankrupt or stop working after a while. Or the price can go up, or the support rate gets slow down. You don’t know what the hell is waiting for you there. If your product is very important, be careful, you don’t want to throw tens of thousands of lines of code away and start all over again. These middle frameworks code, unfortunately, are not much reusable. You can generate Objective-C/Java code from them and then continue working from that. But, believe me, reading, understanding and maintaining those generated code are as twice as hard as you write it from the beginning. I don’t say all of them may have problems, but be careful which framework you pick, how long your project will last, and make sure there is a good match. If your project is pretty longer than 3-5 years, maybe thinking deep about it…
5. Talent Hiring
This is a people management, a project management issue. I remember 3 years ago, finding a good iOS developer is as hard as hell. Although it is easier now, it may not make sense to have a whole team of engineers in Ruby/C# and 1 guy in iOS and 1 guy in Android (or 1 guy for both iOS/Android). That means you have to feed 2 more guys, training them with company’s culture, to understand the domain knowledge that you have. And when things grow, each of these 3 teams grows. Another solution is that 1 of the web guy need to learn both iOS and Android development. That’s why it may make sense for you to reuse your team’s talent. It is also a good thing to consider to have a guy with HTML5 to approach the app in hybrid (HTML5+native code) model.
Yesterday, I have just done a very good job. It is very good because I spent almost a year keep thinking and trying to solve the problem but I couldn’t really solve much. However, the solution yesterday was so easy and short that I was shocked. It reminds me of the following story:
1 guy with a car broken going into a gargage. The repairer asks him for 100$ and it took him the whole day to fix the car. However, the car gets broken again after just a few days. The owner was so disappointed and tried with a new repairer. This new repairer, an elder, just took a quick look at the car and blow the hammer 3 times into some specific place. He then charged the owner 500$. This time, the owner was shocked, “How can I pay you 500$ for just 3 hammer blows?”. “1$ for 1 hammer blow and 497$ for me to know where to do so”.
It just shows me how much matter the knowledge, the thinking through the problem matters, not how much the efforts. Of course, experience and knowledge comes after efforts, but always think before doing
Just found a brillian post, says all I need to say for most of my friends or people. And a good advice to people, please think through and not so disappointed if some developer does not want to go with your idea. The #1 item is the most important thing, imo:
- Ideas are easy, execution is hard.
- People approaching developers often dramatically underestimate the amount of development work, or the complexity of it.
- Proposing a revenue share means the developer has to take as much risk as the idea guy (for very low pay, given the point above), and trust that the business will receive the right amount of marketing/sales follow-through.
- There’s an opportunity cost to working on someone else’s idea instead of for paying clients.
- The idea being proposed is often very unrealistic (and the developer, having worked on a number of such ideas, can tell).
- Developers have their own ideas to work in anyway.
The smartphone game is over. The tablet game will be finished soon, within 2 years.
Android wins, iPhone loses. 75% v.s 15%, soon will become 85% v.s 5%. But that doesn’t matter much for Apple. Apple is a brand for high-end products. They don’t aim to gain all market share. To gain market share, Apple has to attack more of the low-end market, which means they have to lower their price. However, matching other supplier’s price may be harmful for Apple’s brand, although they may achieve it by more efficient supply chain and factories. To become a high-end brand, Apple spends a significant amount of money on their brand and will not scarify it for the market share.
But in this ecosystem war, the bigger ecosystem leads to a win by monopoly. When 75, 80 or 85% of the market is using Android, app developers will flock to there, and make the ecosystem become much more valuable for customer. To continue earning a lot of money, Apple has to continue what it has done best under Steve Jobs’s empire. New product, new market, new value, or new software that people are willing to purchase with high-price.
What will be the next Apple’s product? Probably Apple TV, I am not even sure about that.
And the important questions for most of us, as app developers, what should we do? Should we all move to Android yet, should we change our strategy of iOS first, Android second? Or should we start discussing about Mobile Web App?
I am writing more on the Mobile Web App v.s Mobile Native App in the next post, catch it soon.
If money is your startup’s problem, you should open a branch to outsource some development work into cheaper countries, like Vietnam. Then, you would exchange 1 problem with another, probably harder than you thought.
Communication: this is a key. Effective, efficient, going into the right way. In startups, there are much less time for documentation. Things have to go really fast, features after features, products after products. It is much better for startups to go fast, try with different ideas until they get it correctly. And when they get the idea correctly, it is time to execute, as fast as possible to get the products into the market. Distance difference is a main barrier for communication, talking over Skype feels very different from talking face-to-face. Another barrier is time difference.
The time difference between Vietnam and America is huge, 10-15 hours time difference. When the Vietnamese developer wakes up, their colleague sleep, and vice versa. I have seen some approaches to this problem: scheduling out some fixed time in the day or week, to meet, or someone has to sacrifice. The first one is not normally working for startup when lots of communication needs to happen. The second one will not last for long.
From CNN and ABC:
(CNN) — A federal jury in California on Friday recommended that Apple be awarded more than $1 billion in damages after finding Samsung was guilty of “willful” violations of a number of Apple’s patents in the creation of its own mobile products.
(ABC) — Apple has scored a sweeping legal victory over Samsung as a US jury found the Korean company had copied critical features of the hugely popular iPhone and iPad and awarded the US company $1.051 billion in damages.
Finally, the legal battle seems to be over. I do not favor Apple much in this case, although I said earlier that a clone and direct copy should be avoided. But many later cases of the Samsung devices do not copy that much, so it would not be so fair that Samsung still has to pay for that fine. Apple has released so many secrets that would come and harm them later.
This legal victory will certainly scare other android device owners like HTC…