January 8th, 2007 |
Leaderware |
SDLC |
Planning |
Business |
Technology
Kevin Barnes’s To Rewrite or Not to Rewrite lays out a guideline to determine whether or not one should rewrite software:
- Timeframe considerations - how long would it take to implement; less than 2 months? Less than 10 months?
- Benefit considerations - smaller code base? Is rewrite important to company’s future?
- Sponsorship considerations - do you have senior sponsorship? Do you have enough resources?
- Execution considerations - has anyone on the team done rewrite before? Can company continue without having a major release in the interim?
I think the guideline is a good start (and thanks for pulling it together, Kevin), however, I think whether to rewrite is the wrong question. The true question is why you have to rewrite in the first place. Because the need to rewrite often arises from a couple of scenarios:
1) It often comes up from people who are unfamiliar with the code.
Many software teams are basically equivalent of minor league baseball teams - Keep reading →
December 31st, 2006 |
Planning |
Growth |
Time Management |
Goal Setting |
Actualize
*This is the 6th and last article in the New Year’s Resolutions series*
The last challenge you need to overcome in achieving your New Year’s resolutions is to ensure that you know how to create a plan for tasks that you do not know how to do well - yet.
You might wonder - how is that different from the regular project planning? Don’t we all create plans that contain a set of tasks and manage them toward a particular outcome by a particular date?
Regular project planning process is suited for tasks that you know how to do well, because regular planning process is optimized for achieving a particular outcome within constraints of budget and schedule. When you are skilled at a set of tasks, you can create an effective plan using regular project planning method, because you know how to get things done within the budget and schedule constraints. The same plan, if given to someone else who lacks the necessary skills, he/she will not be able to meet the same constraints. Thus regular project planning is not effective for people who do not know what they are doing.
Now - it can be difficult for all of us to see or admit that we do not know what we are doing for goals. After all, some goals seem extremely simple, as simple as, say, watch less TV, exercise more, or spend more time with your family. After all, how difficult can it be? We just need to turn off the remote, go to gym more often, and make sure that we come home earlier right? Of course we all know how successful we are doing just that
Changing these habits also require you to change how you associate a particular feelings with them. For example, you watch TV because you are bored and need entertainment; hence TV provides a positive feeling for you. Without finding a substitute to give you at least equal amount of entertainment (or that you find ways to reduce your dependency on external entertainment), Keep reading →
December 30th, 2006 |
Planning |
Growth |
Time Management |
Goal Setting |
Actualize
*This is the 5th article in the New Year’s Resolutions series*
In the last article you have learned how to determine how much your resolutions are worth, and now it is time to overcome the second challenge - how to ensure you have enough time to work on your resolutions. In order for you to achieve your resolutions, you need to ensure you give it proper time and effort, but you need to do so without causing your life to get out of balance. In other words, we need to rebalance your life’s priorities so you can find time for the resolutions without compromising your other existing commitments or cause priority conflicts.
You must reserve time for your resolutions. If you are unable to secure time for your resolutions, they will suffer stillborns. In the last exercise, you have determined how much your resolutions are worth, and that should provide you with a guidance on the amount of time you can dedicate. Your challenge now is to find the necessary time within your 24-hour days.
For some resolutions it will be very easy to balance, if the resolutions are to discontinue or change some of your life routines that take time. Your challenge in this case is to find activities to replace the existing activities, and you might be able to take on another resolution to fill the void.
However, for some resolutions it will be more difficult to balance, especially if they can cause priority conflicts with your other major commitments currently in your life. For example, you might consider going back to school for MBA, which can take a lot of effort and interrupt both your work and your leisure time. In such case, it is important that you consider all angles, and triage with others in order to balance your life.
Many people work on their resolutions without balancing with the rest of their lives. They believe they can work harder to handle the additional loads, Keep reading →
December 29th, 2006 |
Planning |
Growth |
Time Management |
Goal Setting |
Actualize
*This is the fouth series in the New Year’s Resolutions series*
So how do you overcome the first reason of New Year’s resolutions failures that you consciously or subconsciously do not care enough about these resolutions?
In order for you to buy into your resolutions, you need to firmly believe they are “worth it”. If your resolutions are “implants” from your families or society, while you might agree in principle, you are not likely to fully appreciate their values.
For example, you might want to lose a few pounds because society currently favors thinness. However, you might also enjoy sweet food and loathe exercise. In this situation you obviously will have difficulty achieving your goal. You have to ask yourself - does losing a few pounds really matter?
One prerequisite for a successful project is to have a clear objective. But objectives are seldom clear from the get go. In the corporate world, companies generally conduct value rationalization studies for major projects to ensure they are worth executing. The goal for these studies is to clarify the objectives and quantify the potential returns. Companies often abandon projects that do not promise high enough returns. This approach allows companies to best utilize their limited resources and not chase after fruitless projects. Individuals can benefit a lot by emulating this process.
Keep reading →
December 28th, 2006 |
Planning |
Growth |
Time Management |
Goal Setting |
Actualize
*This is the 3rd article in the New Year’s Resolutions series*
This is the million-dollar question - if you are skilled at project management and can get things done, why are you not able to follow through with your New Year’s resolutions?
Maybe you actually do not want your New Year’s resolutions to come to fruition, at least subconsciously?
The first reason is that you are not aligned with your goal. Think about it. Are you trying to change a habit that is a vice you enjoy? Or are you trying to learn something that only pays off long term that are painful right now? Your mind might tell you yes it is important to do, but your body and heart tell you that you don’t like the change. The battle will wear on you, and you are not going to be successful with the resolution unless you are fully congruent with the goal.
Or maybe you are fully congruent with the goal - you are fully committed to change. However, your other commitments are consuming all your available time, and you are unable to spend time on your goal.
The second reason is that you do not have time to work on your resolutions due to conflicts. Changes take time and effort. If you are unable to spend time, then you are very unlikely to change. More than likely you are seeking changes because of lack of time. But this is a catch-22 situation, you can’t change because you lack time, but changes will not happen until you have time. The gridlock will not break by itself and require you to think differently. Are you spending your time on the most important things that you can do?
Keep reading →
December 27th, 2006 |
Planning |
Growth |
Time Management |
Goal Setting |
Actualize
*This is the second article in the New Year’s Resolution series*
What is an intuitive approach to address our problem - failing to achieve New Year’s resolutions?
If you have managed moderately complex projects, the answer should be obvious. You can apply project management practices to maximize your chance for success:
- Defining objectives (i.e., goal setting)
- Create work plan with detailed tasks
- Status reviews
Well, have you? And are you successful doing so?
If you find such approach is sufficient, you probably will not be reading this article right now
The fact is, many of us are capable of getting quite a bit of things done, but we still do not achieve our resolutions. Project management techniques work, but it is not the complete solution. This should not be a surprise. If you have worked on complex efforts, you know that execution is only part of the solution - you must also strategize.
Keep reading →
December 21st, 2006 |
Leaderware |
Planning |
Software |
Growth |
Time Management
Triage, originated in the battlefield medicine, is a time honored technique for determine the priorities for bug fixing in the software industry. As Steve Pavlina puts it succinctly in his article Triage, all of us only have so much time on our hand, and in order for us to gain the most out of our time, we need to ensure that we handle only the vital tasks. Some of these vital tasks may not look urgent, but without our attention and effort, it will never come to fruition. The goal of triage is therefore to ensure that we prioritize efforts that will give us the biggest bang for the buck. I believe most of us in the software industry can readily agree to such assessment, except I am a bit puzzled with the declarations that these vital tasks actually are not urgent, because in software, these tasks are.
A generic approach to classify the bugs is to rank their severities, with severity 1 (sev 1) being the highest. Sev 1 bugs generally cause the system to malfunction, crash, causing loss of data, or even lives if the software manages something critical such as heart regulation, airplanes, etc. There is no question that these bugs deserve the highest attentions from us. Sev 2 bugs generally are defects at lesser magnitude - the system is still not fully functioning, but the impact is less drastic, Keep reading →
December 21st, 2006 |
Planning |
Growth
We all have experienced such situation before - looking for the perfect timing to do something. Well - when was the last time that you found the perfect timing?
“Oh - I will take care of that later”.
“There wasn’t a right moment for me to ask her out”.
“The market just crashed, and this is not the right time to strike out on my own”.
Either we have said them ourselves or we have heard someone saying them. And sometimes others are not making things better by giving you the same advice. For some reason, timing is a big deal for us. Somewhere in our subconscious, we believe that if we have the right timing, things will all just work out. If the market is just right, we can catch the wave all the way to stardom. But if the timing is wrong, then the chance for our success is zilch. As such, it’s clear that we believe external forces truly control our destiny.
Of course, sometimes such behaviors might be justified. Keep reading →
December 19th, 2006 |
Leaderware |
SDLC |
Planning |
People Matters |
Software |
Books
For some reason, there are a lot of myths and misunderstandings about software development. Maybe this is the way it is for all fields, but that would be surprising. If it is just urban legends for outsiders, that makes sense and adds to the mysterious appeal. However, I would venture to say that most people in this field all have different views on what software engineering is, and many of them are simply incorrect understandings.
Robert Glass’s book - Facts and Fallacies of Software Engineering - happens to provide a good source for many of these myths and misunderstandings. Robert has been in the industry for a loooong time, and he has a lot to say on this matter, Keep reading →
December 4th, 2006 |
Leaderware |
Planning
I have always wondered why there is such a focus on having a plan. Ready, Aim, Fire is the modus operandi for many. The project management 101, people call it. The first thing is to come up with a plan, then we can execute toward the plan, and the rest would be history.
“Measure twice, cut once.”
“Fail to plan is plan to fail.”
Now - I do not doubt the wisdom behind these sayings. After all, if we do not know where we want to go, or if we do not know how to get there, we are unlike to make it. What I question is the applicability of these statements, especially under what situation are they applicable.
Because I intrinsically believe the practical usage is limited, in the sense that we need additional rules & guidelines to utilize the wisdom.
What I said above might appeal intuitively to you - at least it certainly does to me. After all, there are no universal truths in this world right? The challenge for me though, is that people behave as if there is such truth, at least in the case of having a plan. The first question people ask me about my startup is, “what is your plan?” The first thing executives ask a manager of a new project is “what is your plan?” When we elect a president, we want to hear about the candidate’s plan. We as a culture always want to go somewhere, and we are in love with a leader who has a plan to take us there.
As if once we have a plan, we are guaranteed to get there. Keep reading →