Archive for the ‘vision’ tag
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.
Enterprise Resource Planning (in short, ERP) is an organization management system that uses software application to corporate different aspects of the organization, automate and utilize the information between different departments of the organization to make it perform better. These departments include finance, customer support, supply chain management, distribution, accounting, inventory management…
In our supply chain management, we mostly focus on 3 macro processes of the supply chain framework: Customer Relationship (CRM), Internal Supply Chain (ISCM) and Supplier Relationship (SRM). These 3 supply chain frameworks help the organization to manage its customer, its own process in supply chain (inventory, tagging and accounting…) and its supplier relationship. These macro processes run on a basic framework called Transaction Management Foundation, which include basic components for finance, accounting and human resources… Figure 1 depicts how these 4 frameworks work together.
Figure 1: Frameworks for Supply Chain management
Requirements of a good SCM system
In today competitive world, a good ERP and SCM system has to support the organization with high quality information to quickly make good decisions. To achieve this goal, the information and the system must satisfy multiple requirements:
- Information must be accurate: it is not necessary for information to be 100% correct but the general picture must be represented truly.
- Information should not be out of date in a specific period: when managers need information the most, they should have the up-to-date information that can help them make decisions.
- Information should be in the right format that managers can use it to quickly make the decisions. For example, information might need to be aggregated to help managers know the general state of the supply chain system.
- Information should be shared between involved managers that help them to understand the same picture.
- The information system should be updated whenever the business requirement changes, that helps the organization to have the correct and necessary information.
- The system should be easy to use and requires little training for the staff to work with the system.
- The system should run with few bugs, always available when the staff or managers need them.
These requirements do not look too hard for an organization to have its own SCM system. In practice, 75% of ERP implementations were considered a failure. This gives us a big question about why an organization could not achieve its goal in designing and implementing an ERP system.
Reasons for failures of ERP system
It is hard to measure a real success of an ERP system. The question is if the benefits the new ERP system brings is much higher than the cost and the risk that the organization has to invest in. There are multiple problems, the lack of the communication between business and IT manager, poor planning to deal with hidden cost, the lack of understanding about the risk and complexity of an IT system.
Risk and Complexity
Business managers usually underestimate the risk and the complexity of a SCM system. A current version of a simple ERP system now consists of millions of lines of code. This is too complex for any small team of people to understand the whole system.
Complexity goes along with a big number of bugs. These bugs cause a risk that managers could not see and estimate it clearly. If the system is down for a couple of hours, it is already millions lost for the company. As in Foxmeyer, 1996, the SAP’s SCM deployment did not expect to handle this level of volume of orders. “We ran some simulations but not with the level of data we have in the operating environment”, one company executive said. Foxmeyer tried to solve this problem by sending hundreds of workers to work around the issues but the underlying software kept failing in middle of the process. Totally, this bug costed Foxmeyer tens of millions of dollars.
There are many hidden costs in designing and implementing a new ERP system for the organization that managers usually do not plan for. This makes up the total cost for the implementation to be much higher than the benefits gained from the implementation. According to Jarn, M.2002, there are 5 main costs that managers usually overlook:
- Training Cost: people usually underestimate this cost. It usually takes a while for staff to adapt from the old system to the new system, for the changing of the old process to the new process.
- Variety forms of data: data in SCM system is usually not in a standard format. The data come from multiple suppliers and the order requests come from multiple retailers and distribution centers. This makes it very difficult for any firm to standardize this data and match same items from different suppliers. The same iPhone case can be given different descriptions, specifications when it comes from different suppliers from different countries.
- High Consulting Cost: this usually be overlooked by the consultant and the companies. The consultant may not have enough experience to plan for the project and the project may require longer time to finish or more payment to the consultant.
- Integration and Implementation: Consultants want to test with the real dry-run to see how it affects the system, but usually the firms don’t want people to touch in their valuable data. This makes the integration, implementation and test process much harder than it is planned.
- Managers fail to keep the project deadline. Because it is too difficult for consultants to give a correct estimation, most of the SCM projects fail to meet their deadline.
Slow to adapt to new business requirement
Although the companies spend millions dollar on the ERP projects, they also complain that it is too difficult to modify these systems to match their new business requirements. The risks and the complexities of the systems prevent developers and consultants to move quickly with any new business changes
- Lawson & Saini, 2009, A Service-Oriented Approach to Cost Cutting on Customizing SAP, Enterprise Acquisition, viewed on February, 28, 2012
- Brennan, J. 2012, Lean and Mean…There is a way of doing more with less…, Awards BA, viewed on February 26, 2012,
- Tarn, Yen and Beaumont 2002, Exploring the rationales for ERP and SCM integration, Industrial Management & Data Systems, viewed on February 26, 2012
- Wolf, T. 2011, What is ERP Software?, TMCNet, viewed on February 27, 2012
- Supply Chain Digest, The 11 Greatest Supply Chain Disasters, Supply Chain Digest, viewed on February 28, 2012
- Rettig, C.2007, The Trouble with Enterprise Software, MITSloan Management Review.
- Information Technology in a Supply Chain, Chapter 16, Part IV
People always say about how passion can make you successful, and there are plenty of books around that topic. So for now, I will just look at the problem by some limited financial perspective: High Risk, High Return. Well, all financial guys know this theory, huh? So, I just try to see what I did and achieved in these terms.
Since I was in high school, I started thinking about what would motivate me, what would make me feel good when I did something. I preferred taking risks to get a really good outcome rather than staying and following a safe path since my high school. Until some recent days, I recognized that this is the only way for me to get an excellent outcome in a short time. High Risk means High Return.
The Safe Zone
There is not much fun and passion if I just stay in my safe zone. Everybody does that, there is a safe way for you to go. And most of the time, I feel bored with going that safe way. Passion is important, but I feel that if I don’t go further and take some risks doing what I love, I don’t love it enough. Is it so much fun if you always know how the future works?
Passion will always give you to the edge of the safe zone, you can understand and see further than other people. Now, the thing is that you need to step out of that safe zone and take risks. If you are really passionate about something, do you want to see it become a huge success. If yes, make it! make the future!
The best way to predict the future is to create it.
Since the beginning of my career, I started asking myself “What to learn next in the IT career?” and how I can predict the future of this IT industry. And then, the more I move forward into the career, the more I know that the best way to predict the future is to create it. That’s why I get more involved in what I love and believe, joining open source community, try some start-up and cutting edge technologies.
No surprising, one of the most risky situation in IT is to try to invent some new product. People may or may not adopt your product, you may not find any users. And nobody may believe in your idea except yourself.
My learning progress this year has been increasing so fast, many things change in my life for the last 3 months. I changed to new living environment, new learning environment and start up my business when I came here. There are lots of lessons that I learnt as a manager in my new startup and a student in CMU. I think the 2 biggest lessons I have learnt so far this year are: planning and time-management.
Plan and Vision
Let me tell about my story first. My plan has been changing every month since the last November. The event that I went to CMU has changed my plan for my master degree and my career. You can read over my past plan here. I had a plan to work hard and plan for the master degree 2 years later. Then that plan changed. Next, I plan to study hard in CMU. Then, chances came and plan changed.
The main point that I want to get is my visionary. My vision and objectives over all of the plans do not change. I want to become an entrepreneur and build something that can change the world, something innovative in terms of technology and business. Planning is a tool for me to set up my vision, to see what will happen for me and other trends and I am more than willing to change any plan when necessary.
I have learnt significant lessons over financial planning in my CMU, which will help me over my company growth a lot. I think that this is what I lack from my undergraduate career. Money. Financial. These are important for any business technology people. I believe if you want to be successful, you have to understand about 3: Money, People and Technology.
The last few months, I ran in a crazy way, not like ever before. Look, everybody, who knows me, will know how fast I learn, implement new ideas and improve myself. However, I never see I learn and work at that crazy speed before. Lots of things got done, lots of breaking news. And I am still looking for more.
There are a couple of issues and lessons I learn from that fast moving. Time-management. I got a few problems at the first time when I have too many things to do than the time I can have. Then, I try different approach to optimize my time, calendar, todo list and time saving strategy. I now work much more efficiently than months ago and can really focus on a thing that I do. That’s why I love moving fast. Only by moving fast, you can learn really fast.
Again, what I want to say is you have to focus, and have a good timing management skills to control your time. Time cannot be bought!
It has been almost one year from my first day into my career (4/11) and since that day I have learnt a lot of things and sharing lots of things in my blog, stackoverflow, facebook and twitter. I will try to summarize and make a general view for my career in the last year. I will also give out my vision for my career for the next year
My first work is Scala researching – a still hot technology and growing quickly until now.
Although currently, I do not work much in Web Development, but I will try, for sure, come back to this field again. Why? My vision about this field is still hot, highest and most challenging technology for scalable system is still here with the born of lots of things like Cloud Computing, Google App Engine, Scala, Ruby and Clojure. Maybe my next programming language for the web is Ruby. I already have the intention to jump into here. Hope that my colleagues in KMS can help me to catch up this technology fast.
The good thing about Web Development now is that we have Google App Engine and some App Store for the web is growing. With the born of Cloud OS which will happen soon, I hope that I will have the time and chance to come back, either individually or as a developer in the company.
This area is cool by its name and it is part of a reason I went to Melbourne last year. I had chance to work full time on it and even it was not a success, I learnt a lot from it. What I think is that I will try to focus on Computer Vision and Machine Learning (and may be Agent system) with the intention to apply them into iPhone someday. Why is iPhone? Because I still need to do something with commercial purpose and dealing with iPhone will at least give me some financial benefit in short term. And with iPhone and client technology, I don’t have to deal with massive amount of database problem which I have no chance to practice.
Related to Artificial Intelligence, I intended to take Phd from years ago. However, my decision now is something industry oriented rather than academic environment. I appreciate the academic environment, which is good to work and learn what you like but for now, I think I do not prefer it.
I came to this area by luck, I didn’t really intend to jump into. iPhone programming is cool by its design, working in limited environment and dealing with memory management. There is another challenge for building iPhone app for me is how to make it the best for user, in other terms, usability.
I learnt lots of things about usability over last few months after reading some books: “Don’t make me think” and “User Interaction Design”. This viewpoint is a little bit from a designer’s perspective rather than a developer’s one. This is cool and make me understand more about users. To be honest, before I do iphone development, I am scared of designing (both in terms of graphics and interaction) and I don’t get love in it. But now, I think I can do at least interaction design well. The usability lession is a first and perfect one for overcoming scareness in my career.
Working in iPhone let me have time to learn something else that I am scared about. Git in terminal for example. I am scared of terminal and scripting and all those administration stuff before.
I am also trying to do a lot of testing in iPhone, from UI Automation Testing to Unit Testing which make me fall in love. I love the Google Testing Blog’s Term: “If it ain’t broke, you’re not trying hard enough”. Now, I feel so bad for anytime I cannot make a software crashed . It is also good that I am still looking forward to improving my productivity day by day, automation process, hot keys and dual monitor was what I achieved. The next stuff will be emacs, for example.
My current love in technology can be said: “user, automate and scale”.
PS: To be honest, I hope that this is the first time I can focus 150% into working and researching. For the whole last year, I had to spend so much time in university assignments, exams and then GRE. Those things do not just take off my time but also kill my energy and passion so fast, while those things are either not challenging, boring or just I do not love it.