I cannot believe 2010 is passing by. It seems to be the longest year in my life!

I am sure 2010 will be remembered in the future as one of the most important turning points in my life.

First of all, my daughter, Yunji Zhang, was born in January 26. That’s a life-changing event without question! I became a father! The first three months were absolutely tough. With sleepless nights and little knowledge of baby care, my wife and I almost panicked facing this little helpless creature in our life. Fortunately, my parents in law and my parents took turns to help us out in raising the baby. It’s great to have them around! Things are getting better everyday as my baby grows. She is now 11 months old. Very sweet character. She smiles and waves to everybody close by. She can stand up and babble “mama” and “baba” now. Absolutely adorable!

I was promoted early this year to manage a small team of performance engineers, responsible for performance testing, monitoring and tuning for a range of HR/Payroll/Benefits/Time and Labor online applications. Again, it’s a big change in my career since I have always been in software development field. This new role broadened my view in the full lifecycle of an application. I am now working more closely with Infrastructure, Operation and Technical Support organizations and leaning more towards the operational side.

We bought a town house in August and moved in November. My wife and I became a first time house owner in United States. We had mixed feeling towards the new house. It’s definitely more comfortable than our old apartment but it also requires endless time and effort from us to maintain it. We were excited at the beginning but soon got used to it. After a long wait and many debates, we finally bought all our furniture from IKEA, against the conventional wisdom. We simply love IKEA’s contemporary style and its price! Still fixing everything up and making arrangements around the house. It seems taking forever.

And I went back to school! I was admitted by the New York University Stern School of Business and joined their Langone Part time MBA program in September. It gave my life a totally different dimension.  Although I only needed to go to school at Saturday, I almost have to spend all the weekday nights studying, doing homework, writing papers, preparing for exams! Study became a crucial element in my daily life. I enjoyed the courses and the learning and actually did pretty well for the for the first semester. It’s a great opportunity to step away from the familiar life and get into something new and exciting. My professors and classmates are fascinating. Everyone I encountered had a wonderful life story. However, the bad part is the study took away a lot of my time from my family. I felt guilty that I couldn’t spend enough time to help fixing the house and raising the baby. Life is a art of balancing. Hopefully, I can balance everything better next year.

Last but not least, my wife and I finally got our green cards, after 9 years of waiting. Now, we can travel freely between China and United States. It’s a great milestone to fulfill our dream of traveling around the world! By the way, my daughter is an American since she’s born in United States. How easy is that!

In Chinese culture, 2010 is the year of Tiger. It’s the year of my zodiac sign since I was born in a Tiger year too. In Chinese tradition, it’s deemed as a tough year in life. I definitely felt the toughness, with all the life-changes packed together in one year. I felt stretched than ever. I have been through many emotional up and downs, mixing extreme happiness and extreme sadness. Joy, horror, surprise, self-denial, satisfaction, all kinds of feelings poured together. What a unusual year!

If there is just one thing I learned from the swirl of changes this year, that will be “knowing oneself”. Life is full of twist and turns. It’s so easy to get lost in the strong winds blowing from all directions. Without established values and a clear understanding of the direction to go, we will just be swallowed by the forces surrounding us. What really make us happy? What do we really want to do? What are the thing we cherish most in our hearts? What are the identities we don’t want to lose?

At least, I am a little more clear about the answers for myself now, at the end of this year. For that, I thank the year 2010!

Happy new year, everybody! Let’s welcome a fresh new start of 2011!


My thoughts after attending NYU Stern Langone Pre-Term 9/11-9/12

After 11 years out of school, I really had some mixed and complicate feelings walking into the NYU campus near the Washington Square Park in New York. On one hand, I was extremely excited to go back to school. I am a learner and always enjoy learning new knowledge and skills. I look forward to meeting my new classmates and faculties. On the other hand, as a busy manager and a new father of a 7-month daughter, I am not sure how I can squeeze in “study” into my already super busy schedule between work and family.

Suburb vs. Metropolitan

My office and home are both in north New Jersey. So, I don’t really need to go to New York. My wife and I used to visit New York often at weekends since we both enjoyed the culture-rich city life style. Unfortunately, after my wife was pregnant last year, we seldom went to New York, although it’s just 40 minutes drive away. Life is quite here in suburb and we are busy taking care of our new baby.

It’s very interesting that the moment I stepped on the Path train at Harrison train station, I felt the difference between suburb life and metropolitan city life. Living and working in suburb, I practically saw people like myself day in and day out. White collar, work in an office building, live in a house, shop in big grocery chain stores like ShopRite, Costco and WholeFood (latest trend) or nearby Malls, have dinner at home most of the time, etc. Life in a metropolitan city like New York is totally different. I saw different classes rub shoulders in the subway, from super poor to super rich. I saw people from all over the world with all types of skin colors, dresses styles, accents, and customs. I saw people with vastly different ways of making a living, from selling hot dogs to buying and selling stocks.

Sometimes, we need to be reminded that there are people out there living in totally different live-styles than the one we are so used to. So, we can realize that we do have tons of other options, if we face a roadblock at the current life-style, like experiencing setbacks at job or being forced to sell the house.

Life will move on one way or another. And guess what, we may not be the luckiest one in the world, but surely we are far from receiving the meanest treatment from fate.

NYC, the port to the world

Sitting in the huge and modern auditorium in the NYU Stern Business School and listening to presentations about the academic programs and student activities, I cannot help thinking about the historical role of New York, the most important port in the new world, busy exchanging goods and people with the old world.

In this globalized and digitized modern time, New York continues serving that role. It’s still the busiest port to the world. In addition to manufactured goods and people, ideas, knowledge and other intellectual products become the most critical products in trade nowadays. New York University, one of the most prestige Universities in New York, obviously serves very well as a portal in this intellectual exchange.

Two hundred years ago, before the era of air traveling, to explore the world means jumping on a ship in the New York port. Today, we just need to enroll the Langone program in NYU. The door to the world opens up right away.

What to get out of MBA

Attending the two-day Langone Pre-Term program is like attending a well-organized trade show. Stern simply showcased the best we can expect out of this part-time MBA degree up front. I have to admit it’s more than I expected.

I wrote down three things, Academics, Networking and Career.

Academics include hard skills and soft skills.

We will learn all about business. Just sitting there listening to the presentations from different departments, I realized how a vast body of knowledge we will have our hands on. It’s so exciting to see all the interesting courses offered. Each of them will open a door to something completely new, fascinating and useful.

Unlike my previous graduate program in Computer Science, MBA emphasizes equally on the soft skills as the hard ones. Teamwork, communication, negotiation, leadership, etc., those skills are absolutely as important to our career as the academic knowledge and skills.

I always know networking is important and it’s something to expect out of a MBA program. But, only after the pre-term, I realized what kind of network I will get and how to get it.

It’s started at the Registration and Welcome breakfast. I saw 800-1000 students in the hall talking to each other. And that’s just part-time MBA students for 2010. If we count full time students, EMBA and alumni, that’s thousands and thousands successful business people in all the industries and functions at all levels.

Talking to my classmates, I was even more thrilled by this network. People came from all over the world, have all kinds of interesting backgrounds, and all very motivated and energized. I started to feel part-time program maybe better than full-time program from network prospect since my fellow students have more industry experiences, more mature and are already pretty successful.

Joining a MBA program, I surely would like to advance my career. I was planning to continue my career in the IT industry and targeting the CIO position as my ultimate career goal. After the pre-term, I started to question myself. I definitely see the whole business world opens up widely in front of me. Social impact, environment-friendly, renewable energy, the buzz words become tangible courses and programs. Management consulting, marketing, even the business historian, the unimaginable jobs are not far from my finger tips.

Most importantly, Stern encourages us to think through our career goal before we even start the MBA program and provide a lot of tools to help us finding out the most appropriate position in the business world.

A lot to expect for the coming program!

Know Yourself

After the two day pre-term program and hearing all the introductions, I had a funny feeling. Attending the Langone program is somewhat like going to Disney world. A lot of fun activities are available to me and I only have limited time (especially true for part-timers). I feel a little bit overwhelmed.

I like one of the previous student’s advice, pick and choose the activities you are most interested and will benefit most from. Life is all about prioritization. However, to prioritize, we have to know what matters the most to us. That brings up the topic of knowing yourself.

What courses should we take, what clubs should we join, what networking activities should we go, the answers to those questions tie to the what career goal we have and how to best utilize this MBA to achieve that goal.

The career goal for each one of us is different because we are different persons. Rising to the top may be attractive to some of us, but probably not to others. The bottom line, I think, is to find a piece of work that we enjoy doing, we do really well and we feel it’s meaningful and valuable. No matter it’s managing a large organization or to help poor women in the most remote corner of the world. As long as it is most satisfactory to ourselves, it’s the career for us.

It’s very easy to get lost in this big and energetic crowd. I already saw some charismatic leaders who can pitch their ideas really well. I already met some successfully professionals who are employed in highly compensated jobs in top notch companies. I already felt the heavy influence from this community to shape my way of talking, my thinking pattern, even my life goals. It’s not a good sign that at one point I felt other people are in better position than I am in this program. The worst case I can imagine is not to fail achieving my career goal, but to spend my whole life achieving another person’s career goal. Losing oneself certainly is not the intention of the program.

Doing this MBA program is not about doing better than others. It’s about better understanding myself and fully realizing my own potential. Actually, it’s my teammate Laura who reminded me that after we didn’t win the first team project. I felt it’s really good advice to keep in mind. After all, our classmates are not our competitors at all. They are our collaborators, our friends and our resources.

Discovering and learning to appreciate our uniqueness in strength, weakness, values and goals are indeed valuable lessons I learned in those two days.

The first semester hasn’t started yet and I already felt I learned a lot. I can now imagine how much I can gain from this MBA program. Not just a degree, but a life transforming experience. Definitely worth the time and money!

Comprehensive Application Performance Management extends the scope of traditional Performance Tests, which usually get involved at QA/Testing phase, to cover the full application life cycle.

In this new approach, Performance Engineers will engage in each phase of the application life cycle, from requirements gathering to application optimization, examining the application architecture design, development and configurations from performance management point of view.

The performance engineers will team up with analysts, developers, function testers, deployment teams, operational teams, monitoring teams and capacity planning teams to

  • Test, monitor and tune the performance of the applications
  • Resolve production availability and performance issues as soon as possible
  • Ensure enough capacity to support business growth

Application Lifecycle Engagements


Here are the proposed performance management engagements for each phase:

1. Requirement Phase: Define the Service Level Agreement (SLA) or Non Functional Requirements

  • Work with the analyst and business partners to explicitly define
    • Critical Business Transactions
    • The SLA for each of those business critical transactions, e.g. what’s the acceptable response time to login
  • Promote the best practices/standards in defining performance/availability related non-functional specifications.

2. Prototype Phase: Help pick the right technology/solution

  • Review each of the new technologies/solutions to identify potential performance issues
  • Stress test different alternative technology/solution in meaningful ADP business scenarios to define the performance, extensibility, resource utilization characteristics/implications.
  • Test the performance of the POC (Proof of Concept). Identify potential performance bottlenecks and suggestion remediation.

3. Development Phase: Detect and fix performance issues before mass development takes off

  • Review architecture design from performance management point of view.
  • Performance test early versions of the solution. Ping down any potential performance issues before the same problem is put into mass development.
  • Design and implement the performance monitor strategy in DEV/DIT environment, which will be propagated from DEV to QA, eventually to Production environment.

4. Test Phase: Understand the performance characteristics of the system

  • Traditional performance tests phase to validate the new release
    • How the system will behave under peak load. Can it satisfy Service Level Agreement (SLA)/Non-functional Requirements under expected peak load? Can it support projected sales growth?
    • What’s the maximum load the system can sustain without performance degradation?
    • Identify and remove the performance bottlenecks
  • Baseline comparison
    • Define the performance baseline for critical business transactions, either from the performance testing results of the previous release, or from actual Production performance data
    • Compare the performance result of the new release with the baseline. Determine the change of the performance characteristics.
      • Performance under peak load improves or deteriorates
      • Maximum capacity increases or decreases

5. Operational Phase: Monitor the Production performance and Resolve Production Performance/Availability Issues

  • Design and implement the Performance Monitoring Strategy for the system
    • Dashboard
    • Alert
    • Report
  • Resolve Production Performance/Availability related issues
    • Examine the Production Monitoring Metrics to identify the root cause of the issue
    • Resolve the issue by attempting to recreate the issue in Performance Testing Environment
      • Recreate the issue in Performance Testing environment(s)
      • Identify the bottlenecks
      • Suggest remediation

6. Optimization Phase: Continuous Performance Tuning

  • Identify performance bottlenecks. Work with development team to resolve those bottlenecks.
  • Promote Performance Best Practices among development and deployment teams, e.g. the fastest approach to make web service calls
  • Propose new architecture design to save operational costs, e.g. reduce number of servers used or consolidation

Key Advantages

Comparing to the traditional performance testing involvements, comprehensive application performance management approach has the following advantages:

  • Standard overall performance management strategy across all the applications
  • Consistent performance monitoring strategy across the full application lifecycle
  • More efficient and targeted performance testing and tuning, equipped with the knowledge of critical business transactions, production performance statistics and information of historical production performance issues.
  • Eliminate performance issues from the early phases, long before they reach Production.
  • Avoid costly re-factory work by picking the right solution from the beginning

Forward from: http://www.globalknowledge.com/training/generic.asp?pageid=2568&country=United+States

Comments by Bigapple: Most of them are old friends like PM, Security, Network, DBA, etc. The only truly new skills are Virtualization/Cloud and BPM (Business Process Management), which are relatively new. Looks like Virtualization and Cloud Computing already gained their steam.

Top 10 Skills in Demand in 2010

By Linda Leung

In the Global Knowledge/TechRepublic 2010 Salary Survey, conducted at that end of last year, one of the questions put to respondents was "What skill set will your company be looking to add in 2010?" The skills listed by respondents include the perennial favorites: security, network administration, and Windows administration. Also included are virtualization/cloud computing and Web development. Meanwhile, an old favorite, business analysis, makes a come back. Here’s the complete list, with the No. 1 skill listed being in the highest demand.

As we emerge from the recession, organizations aren’t likely to go back to the go-go days of throwing money at IT initiatives or taking risks and deploying without careful thought and planning. Organizations are putting pressure on IT to only implement projects that can show real return-on-investment. The first step to achieving a good ROI is professional project planning and implementation.

Project management skills often appear in top 10 skills lists, perhaps because some organizations got their fingers burned in the 1990s through the poor implementation of IT projects such as enterprise resource planning initiatives. But even though the profession is mature (in IT terms), project managers still have work to do to advance their status within organizations. According to an article on the Project Management Institute Web site, project managers still have to develop their people skills, organizational leadership, and individual professionalism.

It’s a never-ending game of cat and mouse for security professionals and 2009 proved to be another fun filled year. According to Symantec’s Security and Storage Trends to Watch report, the number of spam messages containing malware increased nine-fold to represent more than 2% of e-mails, while other criminals manipulated people’s love of social networking sites to launch attacks. Twitter, for example, spent much of 2009 battling DDoS and other attacks. Meanwhile, top headlines, such as the H1N1 flu and the death of Michael Jackson were used by criminals to lure people to download malware.

Symantec predicts more of the same in 2010, warning that attackers will continue to use social engineering to get to consumers’ sensitive data, and criminals will take Windows 7 as a challenge for seeking and exploiting vulnerabilities in the new platform. Mac and smartphones will also be targeted more by malware authors, Symantec says.

Despite the economic challenges of ’09, organizations continued to hire security pros. The most sought-after security skills were information risk management, operations security, certification and accreditation, security management practices, and security architecture and models, according to a survey last year of 1,500 U.S.-based security pros by security certification provider ISC2. 2010 is expected to be another busy year from security professionals.

Networking administration skills never lose their luster. It’s the second most sought after skill in the Global Knowledge survey and it will be the top skill sought by CIOs in the first quarter of 2010, according to a survey of IT chiefs by Robert Half Technology. In 2010, organizations are expected to upgrade to Windows Server 2008 R2 and the Windows 7 client, and perhaps install Exchange Server 2010 and SharePoint 2010. Enterprises are going to need network administrators to ensure network traffic continues to move without a hitch.

Meanwhile, Cisco hopes to push more data-intensive traffic onto corporate networks. Video is a key focus for Cisco in 2010 as it works to finalize its control of video conferencing maker Tandberg and through its 2009 purchase of Pure Digital, developer of the Flip video camera. At the end of last year, Cisco introduced two TelePresence certifications: the Cisco TelePresence Solutions Specialist for midcareer voice or networking engineers seeking to specialize in the planning, design and implementation of Cisco TelePresence; and TelePresence Installation Specialist aimed at installation technicians.

The projected cost savings and efficiencies are no-brainers for organizations seeking to implement virtualization and cloud computing. With the cloud computing space now taking shape it’s difficult for enterprises to find pros with substantial relevant experience. Instead companies are drawing expertise from a range of IT skill sets, including storage, networks and desktop, according to a Network World article. Initially companies will set up cross-functional teams to buy and implement virtualization, but eventually cloud computing will be an expected skill set of systems administrators. In a few years, it could even be a standard skill set of all IT pros because it touches different aspects of IT.

For details about virtualization certifications from leading virtualization software vendors VMware, Citrix and Microsoft, see Global Knowledge’s Top IT Certifications in Demand Today newsletter of June 2009.

Business analysis roles were commonplace in many organizations in the 1990s when big projects, such as enterprise resource planning initiatives, required the critical thinking that business analysts could provide. But as businesses began moving at a faster pace, business analysis fell by the wayside. Factors such as the economic downturn and regulatory compliance have forced companies to take a step back and to think through business problems and their solutions, and business analysis is making a comeback, as a result. Kathleen Barret, president of the International Institute of Business Analysis says the discipline is a phoenix rising.

The IIBA describes the job of a BA as a "liaison among stakeholders in order to elicit, analyze, communicate, and validate requirements for changes to business processes, policies, and information systems." IT pros are good candidates for BA jobs because they have a broad perspective of a company’s business, says Barret. There are three types of BAs: enterprise BAs who identify opportunities for business change and defines the work to be done; transition BAs who fine-tunes the plans; and project BAs who work on project teams that implement the changes. Annual salaries average around $75,000 with enterprise and transition analysts earning more, Barret says.

For more about business analysis, see the IIBA’s Guide to the Business Analysis Body of Knowledge.

With project management and business analysis skills appearing in this skills list, it’s no surprise that business process improvement skill is also here. Business process improvement and business analysis go hand-in-hand. Business analysts identify areas for improvements to business processes, while business process improvement or management pros use BPM techniques and technologies to help companies optimize their business processes.

A recent BPM survey by IT researchers, the Aberdeen Group says the top reasons business are driving BPM activity are the need to reduce operating costs and to improve cash flow. However, the top barrier to adoption was the lack of knowledge about BPM. According to Gartner, among the competencies required for successful BPM initiatives include process skills, tools and process assets, and transformation skills.

To learn more about BPM, go to the Web site of the Business Process Management Initiative (BPMI.org), which promotes the standardization of common business processes; and the BPMinstitute.org, which describes itself as a peer-to-peer exchange for business process management professionals.

If you are — or you know friends who are — addicted to the FarmVille game on Facebook you’ll know the power of Web development. In just a few short months, FarmVille’s popularity has spread across the globe as Facebook fans tend to their farms and purchase virtual goods. The game, including others by FarmVille developer Zynga, has netted the start-up more than 200 million monthly unique users for its online apps. One financial analyst reckons Zynga could be valued at $1 billion if it were to go IPO in mid-2010.

Developing Facebook games is just one extreme of the vast Web development spectrum. Building iPhone apps could also be very profitable, writes Web developer and blogger Glen Stansberry. As moderator of the Freelance Switch job board, Stansberry listed other popular Web development skills including Framework knowledge, widget development, content management system customizations (for small businesses looking to create a unique look to their standard WordPress and Drupal blogs), and Javascript Plugin creation.

Databases are the hearts of key business systems that drive payroll, manufacturing, sales, transaction processing, and more. Programmers must be able to build programs that quickly and efficiently interface with the database management system (DBMS), while database administrators "must be able to bring the full power of database features to bear on business problems", writes Oracle- and IBM-certified DBA Howard Fosdick in his whitepaper Database Skills Availability: Critical to Your Selection of Database. "DBA expertise can be the Achilles’ heel of database projects – many IT projects have failed due to the inability to secure DBA talent or successfully address DBA issues," he adds.

The major database vendors are Oracle, IBM and Sybase. Oracle runs three main certification programs for database professionals. Oracle Certified Associate is the first rung of the Oracle certification ladder. Next is the flagship Oracle Certified Professional (OCP) credential, which certifies an individual’s ability to manage, develop, or implement enterprise-wide databases and other software. Oracle Certified Master (OCM) is Oracle most advanced accreditation. IBM offers a dizzying array of certifications surrounding its DB2 product series. The main credentials are IBM Certified Database Associate, Database Administrator, Application Developer, and Advanced Database Administrator. Sybase has two sets of certifications for its Adaptive Server Enterprise product: ASE Administrator Associate and ASE Administrator Professional; and ASE Developer Associate and ASE Developer Professional.

As previously mentioned, Microsoft shops are expected in 2010 to upgrade to Windows Server 2008 R2 and the Windows 7 client, and perhaps install Exchange Server 2010 and SharePoint 2010 as well. Windows administration skills is going to be key for many enterprises implementing and maintaining existing and upgraded systems.

Microsoft Windows Server 2008 certifications at the MCTS level cover configurations for Active Directory, networking, and applications. Certifications available for the MCITP level are Server 2008 Server Administration, Enterprise Administration. In a November blog posting in Microsoft’s Born to Learn blog, the company wrote that the first of its Windows Server 2008 virtualization exams would be entering beta soon. The exams will cover server virtualization, desktop virtualization, and virtualization administration. Windows 7 pros can certify as MCTS: Windows 7 – Configuration, and MCITP: Enterprise Desktop Administrator 7.

Our recent article "Top Certifications in Demand Today" listed desktop support as a hot skill. In Global Knowledge’s 2010 salary survey, it was named as the 10th most sought-after skill this year. In the June article, we quoted Robert Half Technology Executive Director Dave Willmer as saying that businesses will need desktop support personnel to support new workers as organizations begin hiring as the economy improves. The introduction of Microsoft Windows 7 is also expected to generate additional interest.

Microsoft currently provides the MCITP: Consumer Support Technician, and MCITP: Enterprise Support Technician certifications, but they are based on Windows Vista. Microsoft, in its Born to Learn blog, in November said that it is working on a MCITP: Windows 7, Enterprise Desktop Support Technican certification. Prospective candidates are advised to prepare for 680: Win 7, Configuring and 685: Win 7, EDST.


Ever since project management was introduced to IT field, our lives as software development professionals have been scheduled around Projects. We literately are living with Projects. After we are done with one project, the next one comes. Or even better, the next one comes before the previous one finishes. If we are not doing a project, we must be busy planning for the next project. While we are so buried in the coming and going projects, it’s a good chance that we have missed the whole picture.


So, what’s a Project any way?

The official definition by Project Management Institution: A project is a temporary endeavor undertaken to create a unique product, service or result.

A project has the following characteristics:

  • Temporary
  • Have definite beginning and end
  • Create unique product or service
  • Have objective that indicate completion
  • Progressive Elaboration

By nature, a project is a temporary endeavor. Ultimately, it’s just the “means” not the goal. It takes us from one place to another. But, it’s the journey, not the destiny.


What’s the destiny, then? What’s the core? What’s the not-so-temporary thing in our work?

That’s the Product or more specifically, the Software Application, in software/IT industry.

A Product Development Team is responsible to create and continuously improve a software application that serves some meaningful business purposes.

A product/software application has its own life cycle:

  • Initial creation: from non-exist to the first Production release
  • Continuous improvements: as long as a product has users, it requires continuously maintenance (bug fixes) and improvements (new features)
  • Termination: just as anything concrete, a product may die, meaning users cease to use it. It maybe because the company goes out of business or simply because it’s replaced with another better Product.

The Projects happen in between a Product’s life cycle. We may have projects to initially design the database and the architecture. There maybe other maintenance projects to adding new features or doing refactory for the existing architecture. A formal termination/transition project may exist just to transfer the data out the phrasing out application to the new application.

Next time, when we think of the projects we are doing now, we can also think about the Product behinds it and where in the lifecycle of that Production this project fits in. That will help us better understand the goals of the current project.


Matter of fact, when we think deeper, handing out the application to the users is hardly the only thing we do. We also spend a lot of our time doing the following:

  • Deploy, Configure and Host the application
  • Technical Support
  • Document/Training
  • Manage the capacity
  • Manage the availability
  • Manage the service level
  • Manage the security
  • Manage the business continuity (disaster recovery)

In short, we provide a full spectrum of IT services to our users. And users actually evaluate us by all the services we provide not just by the Product (software application) we deliver.

So, it’s time to think what kind of Services we would like to provide to our business users. Then determine what kind of Products we need to deliver. Eventually, we will get to the Projects we need to accomplish to deliver the Product and/or the Service.

After all, it’s the IT Services we delivered that matters to our users, not the projects we are working on. Projects are just the tool we use to organize our work in order to provide better Services.

Jumping out of the boxes of the Projects, we will eventually find a wild wide world of Services, waiting for us to explore!

I still remembered clearly of one of my job interviews. The interviewer was a development manager and I was applying for the position of a Software Architect. We had some random talks just to break the ice. Then, out of blue, he asked me, “So, you are an Architect. Would you please tell me what the most important features of a good software architecture are?” A millions of ideas were flying around in my mind. My answer on the spot was “Simplicity and maintainability” since I have been in charge of maintaining and continuous development of an application for years before the interview. Most of my frustrations have been the results of the initial designs not considering the future extensions of both the functions and the scalability of the system.

After the interview, I have been pondering around this question again and again and found that there is no single good answer to that question. It really depends on the circumstances.

A good architecture design should at least consider the following three groups of features:

Group 1: Functional

  • Functionality
  • Usability

Group 2: Non-Functional

  • Flexibility/Extendibility
  • Maintainability/Simplicity
  • Scalability
  • Robustness
  • Availability
  • Performance
  • Security

Group 3: Project level

  • Cost efficiency
  • Time to the market

The non-functional features are most neglected ones, especially in the inception phrase. The clients and the business users usually focus on functions and when they can get it with how much cost. Usually, they won’t think of non-functional specs like availability or scalability at the beginning.

However, neglecting those non-functional aspects of the architecture can have dire consequences after the application is deployed and up running. It usually will cost 10 times as much in maintenance to reverse the mistakes made in the initial design.

To add more complexities, some of the features are against each other, e.g.

  • Flexibility vs. Maintainability
  • Scalability vs. Performance
  • Security vs. Usability
  • Robustness vs. Flexibility

Essentially you cannot design a system that’s perfect in all aspects since one aspect’s gain may come at the cost of the other aspect.

So, a good software architect should keep all the above aspects in mind when designing a software product. He must strike a balance among those aspects to achieve the optimized result.

But, how to walk on the thin line?

Here are some tips:

  • Understand requirements: Extend beyond the functional aspects to non-functional aspects.
  • Reasonably project/predict the future: Imagine how this application will be deployed, who will use it and what the usage patterns are. How fast the product may sell in the market?
  • Build in the flexibility but not too much: If the future is hard to predict, at least give yourself some leeway to build some flexibilities to handle the uncertainty. But, don’t overdo. Architects tends to design too many abstract layers just for flexibility. Do try to suppress that urge and maintain a good sense of simplicity in the design.
  • Continuous improvement: Circumstances change all the time. Nobody can precisely predict the future. So, do revisit the design periodically based on the ever-changing reality.

I always consider software architecture design is a work of art. It requires not only technical knowledge and skills but also a sensitive mind to capture the reality and reflect that in the design. A software architect is always walking on a thin line trying to achieve the balance among competing forces. So, a well-designed piece of software product is well worth appreciation and respect, just like any master pieces we saw in a museum.

An opportunity to manage an existing software development team opened up in another city. Due to personal reasons, I cannot make the move. However, it triggered me to think what I should do if I am asked to take a lead on a new development team.

Leading an existing team is absolutely harder than building a new team up from scratch. The big difference is the trust between you and your teammates basically doesn’t exist at all. Nor does the trust between you and your partners from sales, service, technical support and other IT teams like analysts, testing and deployment.

All you can build upon is the chemistry between you and your hiring manager. He/she must have some deep confidence in you otherwise he/she won’t hire you to do the job. However, if that trust is built upon the first impression established through reading your resume and briefly talking to you in the interview, it can turn sour pretty quickly if things are not going on well. You are also facing the risk of losing your hiring manager suddenly and completely due to some reorganization, which is common in big enterprises.

I have witnessed a dozen or so new managers come and go leaving no trace. This is definitely dangerous water even for experienced navigators. Don’t imagine you will quickly shine as much as you did in the old familiar post. We all have to realize that our current success is built upon years of hard works and good relationships we established over a long period of time.

So, what will I do if I have to take the hat as the manager of a new team? How to secure the success of the new team? I will do it in three phrases.

Phrase 1: Learn and Understand

The important thing to keep in mind is that things are different! All dev teams are different in three perspectives: People, Process and Technologies.

People is the most important factor in the equation. There are three groups of people critical to get my job done. My boss/manager, my peers and my team mates. They are EQUALLY important. Yes, my boss can hire and fire me. No doubt, he/she is important. But, my peers, the managers of the analysts team, the QA team, the deployment team, the sales, marketing, service, technical support, hosting center, network engineering, other applications teams we need to integrate with, can also determine if my day will end up with smooth humming or frustrating yelling. And my team mates, they are the key performers. There is not much one people can achieve but for a team, there is no limits. By the way, my team mates are more familiar with the product, the process and the technologies than I do. They are the residents and I am the new comer.

There are many things to be understood about people. I will start with understanding their motives (what makes them come to work everyday) and their priorities (career, family, or self-realization, etc.) first. Then, how do them prefer to communicate, verbally (face to face/phone) or written (email, messaging, etc.) and what’s their communication style, casual or formal. For my team mates, I will go deeper. I would like to understand their strengths. One of my former bosses asked me to take a test of StrengthFinder 2.0 to discover the 5 strengths I have. I found that useful both to me and him. It won’t hurt to get up close and personal like knowing the educational background, the families, kids’ names and birthday, favorite sports team, etc. All those will set the great foundation of strong future relationships.

To understand the Process, I will follow through the application life cycles, from requirement, development, test to deployment, operation and optimize. Along this cycle, I will understand which team is involved, who is the head of that team, what tool is used, who maintain that tool, where are the documents, how products (new build) goes from one step to the next. There may be some vertical processes like budgeting, security, availability, capacity, service continuity (disaster recovery) to be understood.

One thing worth taking note is the current stage of the product. Managing a product that has never been released to Production and a well established Product in maintenance mode is fundamentally different.

As a development manager, the technologies details are not as important as the people and the process. So, I won’t drill down into all the nuts and bolts of the application. But, I must know all the business functions of the product, all the internal modules, their relationship, who the domain expert for each module is and all the external touch points.

Those above are all basic homework for a new development manager. Besides that, I will specifically understand the following:

  • Goals/Expectations: What to achieve in what time frame?
  • Challenges/Problems: What are the problematic areas? What are people constantly complaining about? What make the developers’ life miserable? Where are the mines and traps?
  • Image: How do my boss and partners see my team? If negatively, why?

This phrase may take several weeks to several months depending on how big the team and how complicate the process and organizational structure is. I will definitely have a talk with my new boss to get his/her agreement first. I will refrain from making any big changes in this period. Maintaining the “business as usual” status will be the best.

If the team or the product is in bad shape before I take the lead, this period may post a challenge. I may feel a lot of pressures to make quick moves to show some improvements. Then, this phrase must be shorten or may be combined with the second phrase.

Phrase 2: Build Trust

I strongly believe that productive works can only be produced by good team work. Good team work comes out of Trust. Lacking of trust will end up with all the internal barriers, unnecessary power struggles, finger pointing and inefficient communications.

But, as I realized already, a new development manager doesn’t enjoy the luxury of trust in the new poison. So, the next logical thing to work on is to build up trust.

First thing to do is to show people I really care. Reaching out to everybody in Phrase 1 and trying to understand them is a positive message to demonstrate I care. I will take one step further to show people I care by communicating back to them about my understandings of their expectations, their priorities, and maybe their frustrations too. Along with that, I will show my intentions to work with them in finding the solutions.

Next step, I will demonstrate that I am trustworthy. I can deliver what I promise.

To do that, I will pick the lowest hanging fruit with the highest priority. There is a simple formula to identify that specific area, Visibility = Business Value X Impact / Previous Performance. That means this area delivers enormous value to our customer, has significant impact not only to our customer’s experience but also to our partners’ performance, but previously the team either neglected or did a lousy job. Improvement in this area will have the biggest visibility and can help turning around the negative image of my team.

Once this area is identified, I will do the following:

  • Define the goal

Based on the understanding of the expectations, I will set the short term and the long term goal for this area. This goal must be S.M.A.R.T. (Specific, Measurable, Achievable, Realistic and Time-bound). More details about goal-setting can be found in a previous blog of mine.

  • Establish the measurements

Measurement is always the first step to achieve a goal, which must be measurable. Without the measurement, I cannot prove to anybody that our team makes some progress in this area towards the predefined goal.

The measurement should be Key Performance Indicators for this area. For example, for availability, it should be percentage of system availability, for development efficiency, it should be number of features/bug fixes in each release, for problem management, it should be number of production issues, etc.

The measurements must be published periodically, every month, every three months or every release. It should be distributed to all the concerned parties, not limited to IT department. The more external pressure, the more motivations to improve the measurements towards the goal.

All the measurements come with some management costs. So, I will prefer automatic measurements coming out of some tools or software programs. That will guarantee the objectiveness of the measurement and also cut the management costs.

  • Find the path

Goals set. Measurements published. Baseline established. Expectations sky-high. Pressures piled up. How to deliver?

I can drill upon my previous experiences and my technology know-how. But, that won’t be enough and won’t be efficient.

The key here is to release the creative talents of my teammates. It’s not about myself. It’s always about the team. It’s about establishing the new image of the team.

They know the system better than I do. They know the processes better than I do. They already know how to fix the problems! From my years of experience in IT industry, I can safely bet my money on it that somebody in the team already knows where the problem is and how to fix it. They are either not willing to bring up their ideas or they haven’t been giving the opportunity to express themselves.

I will setup several brainstorm sessions and a lot of one-on-one conversations with all my teammates to find out the right path to achieve the goal.

It’s very important that the entire team will feel he/she is involved in defining the path, the solution. It will be their personal success too if we succeed as a team. Any bright solution will fall apart badly without the whole-hearted support from the team. There will be different ideas and maybe fierce debates. People with lower voice volume may feel left out or rejected. It’s my responsibility to make sure everybody feel their voice is heard and seriously considered. To broker such a consensus is a true challenge of my leadership.

Eventually, we will have a plan, a roadmap to achieve the goal. I will have one or two backup plans in case the first one didn’t work out. I will communicate the plan(s) out to all the stakeholders to get their buy-in.

  • Improve iteratively

I am not a believer of luck. All the achievements are results of continuous hard works. So, I will never expect to achieve the high-shooting goal in short period of time. That’s cheating. I will break down the long term goal into small achievable steps. Each is just a hand’s reach from the previous one.

I will work with my teammates to carry out the plan we determined. Things may go wrong. We may have to put in some long hours. So be it.

But, I won’t stick to the plan without flexibility. A plan is just a plan, a reference and a guide. I will periodically measure our progress to see if we are on the right track towards the goal or we are heading the wrong direction. As a team, we will constantly revisit the plan according to our progresses and modify the plan if necessary.

If we fail to achieve intermediate goal, we will admit honestly to the stakeholders. Give them our honest understandings of the reasons for the failure and the remedy plans. I will always remember building trust is more important than actually achieving the goal. I won’t risk losing the trust to cover up a mistake.

I believe we as a team can make significant difference by focusing on one specific area and by go through goal and measurement setting, path finding and iterative improvements.

Delivering what we promise to our partners constantly will build up the trust level. In the process of delivering, I will also build up the trust among the team. As a team, we can work together to deliver some outstanding results. That positive feedback is essential to the team-building effort.

Phrase 3: Continuous Improvement

After the initial success and the sense of establishment, I will move forward to make some adjustments that have long lasting results.

I believe the impressive Productivity come from good Practices. Good Practices come from good Processes. Good Processes come from the good Cultures.

If I would like to get some short term achievements, I will focus on Practices. If I would like to establish some long-lasting results, I will focus on changing the Cultures and Processes.

I have written some blogs about the ideal cultures for a development organization including goal-oriented, innovation and humanism. I will add continuous improvement to the equation. Continuously improvement means never being satisfied at the current status and always thinking of how to make further improvements to get better results. Time goes by. Change is constant. Any good design or smart policies will soon be obsolete. Contemplating on the previous successes leads to future failures for certain. Only team seeking for continuous improvement can continuously stay current and relevant.

The ideal cultures can only be cultivated by establishing the aligning processes and policies. For a development team, the processes determine our everyday activities e.g. coding, source control, deployment, testing, production support, performance tuning, capacity planning, etc. In my experience, the ineffective and inefficient processes attribute to most of the problems of the development teams.

There is no one recipe for all the development teams. The industry standards, such as ITIL, PMP, RUP or Agile, can be used as references. But each development manager must determine the right processes for the development team according to the size of the team, the mix of the team members, the available skill sets, the external requirements, the available toolsets, etc. Establishing the right processes is another delivery iteration requiring goal setting, path finding and continuous improvements.

Besides achieving the external goals for the business, I will put people development at the same importance. The output of the team is the sum of the output of the individuals in the team. Developing my team members is the most efficient way to improve the productivity of the team. But, more importantly, helping other people achieving their life goals is the most rewarding thing I can think of.

In a team I worked before, all the team members were required to attend an educational course of “The 7 habits”. The course was based on Steven Covey’s best seller book, “The 7 habits of the most effective people”. I personally benefit tremendously from that book. I will encourage my team member to either read the book or attend that course.

I will start with understanding the career goals of my team mates and help them achieve their goals. I will help each of my team members to build a career development plan and assist them to achieve their career goals with their every day works. The best way to achieve that is by empowering them. They should gradually cultivate the capabilities to make independent decisions in the areas they are responsible for and I will make sure those areas expand as their capabilities grow. Eventually, I would like to see one or more of my teammates can fully take over my job with the same effectiveness and efficiency. That will be the celebration time for me and the time for me to move on to new challenges.

Leading an unfamiliar team is no doubt a challenge for anybody. But, it can also be rewarding. The uncertainty and the new challenges are the things that make the experience exciting and worth expecting. I am confident that I can make a difference by going through steps of understanding, building trust and continuous improvements. I am looking forward for future opportunities to put through those ideas into actions. And opportunity only favors prepared minds.

As the “father of management” Peter Drucker pointed out, 21 century is the century of knowledge economy. For a business to thrive in such economy, the most important capital is not physical nor fiscal but human. Who can recruit and retain the best minds in town will be the winner of the game.

Even in an economical downturn like now, while the unemployment rate in United States has gone over 10%, talented people still have plenty of opportunities awaiting them and they ARE making the move. They are not scared of the weak job market. They don’t care about the job security. Because they have a totally different needs than people who are worrying about keeping their jobs in the hard time.

The great psychologist, Abraham Maslow, published a famous theory called “Maslow’s hierarchy of needs” more than 50 years ago in 1943. That theory reveals to us the fundamental and universal human needs.

This theory organizes human needs into five categories, physical, safety, love/belonging, esteem and self-actualization.

Physiological: breathing, food, water, sex, sleep, homeostasis, excretion

Safety: security of body, of employment, of resources, of morality, of the family, of health, of property

Love/Belonging: friendship, family, sexual intimacy

Esteem: respect of others, respect by others

Self-actualization: morality, creativity, spontaneity, problem solving, lack of prejudice, acceptance of facts

These needs are predetermined in that order of importance, often depicted as a pyramid. “The higher needs in this hierarchy only come into focus when the lower needs in the pyramid are met. Once an individual has moved upwards to the next level, needs in the lower level will no longer be prioritized. If a lower set of needs is no longer being met, the individual will temporarily re-prioritize those needs by focusing attention on the unfulfilled needs, but will not permanently regress to the lower level.”

In another words, if we would like to engage and motivate talented people, we have to satisfy ALL their needs, from low level to high level.

Here are some examples what tips we can use to satisfy various levels of needs of the talented employees:

  • Physiological:
    • No sex harassment
    • Comfortable work environment
    • Pay fairly with a good compensation strategy
  • Safety:
    • Play by rule, set the clear boundary at the first place
    • No finger pointing, don’t blame good will
    • Award creativity,
  • Love/Belonging:
    • Treat people nicely – Equally, Flexibility of work time, Respect, Intimacy (friendship, family), Fairly
    • Team atmosphere: Create the team (physical tokens, like flags, songs, rituals e.g. weekly meeting), Inclusive, Sharing, Help each other, Protection from outside blames
  • Esteem
    • Establish ownership: Specialist, Owner of an functional area, responsibilities, Expertise
    • Contribution: being listened, participated in decision making
  • Self-actualization
    • Challenge: Throw challenging works
    • Vision: Clear vision of the future, whole picture
    • Progress: Career path, growth planning, achievements, honors, awards
    • Honor: External feedbacks, Marketing, Ads.

Most importantly, a good manager should assess the right level of needs of his individual team mates. Some people may not be paid fairly. Some are paid well but may be worried about his/her job security. Some may feel safe but may feel isolated and doesn’t belong to the team. Others feel loved but not respected. He/she would like to participant in the decision making process. More senior people may feel stagnant in career and would like to move upwards.

An important aspect of the Maslow’s theory is that satisfied need won’t motivate people any more. Only the unsatisfied needs motivate. That’s why understanding people’s level of needs is the key. Continuing to tend to the low level needs after they are satisfied, e.g. raising the salaries after they are already above market level, won’t help. In the meanwhile, neglecting the lower level needs is also dangerous. Putting a lot of responsibilities to an under-paid employee is a fool-proof recipe to get a resignation letter on your desk.

The talented people are the most valuable assets to our organization. Retaining them requires open conversation with them to find out their needs and thoughtful efforts to satisfy their needs. Maslow’s theory is there to help.

I was listening to the Berlin Philharmonic playing Brahms Symphony No. 3 & No. 4 in Carnegie Hall last Friday night. While I was indulged completely in the beautiful harmony of the music, suddenly I thought about the frustrations I encountered day after day dealing with the Integration of the different IT applications for our company. How I wish those IT systems and the IT teams support them can work flawlessly and in total harmony just like this piece of music! And right at that moment, I realized the key problem here. It’s not because we don’t have the world’s greatest players. It’s because we don’t have a conductor who understand not only all the instruments but also the overall music!

We have a Portal team that develops and maintains our company Portal. We have another team in charge of the application that handles single sign one, authentication and authorization. We have multiple teams who maintains IT applications that specialize in some business functions. We are talking about dozens of IT applications and hundreds of servers. But, that’s the least complicate part.

The most daunting factor is the organization structure. Each application team at least has an analyst team, a develop team, a testing/QA team, and a deployment/configuration management team. On top of that, we have multiple hosting centers, some centralized and some decentralized system engineer, network engineer and DBA teams, various types of technical support teams, performance testing team, capacity planning team, etc. And they are located all over the world in various time zones.

Our goal is to glue everything together, hide all the complexities and give our customer a single entry point for all the business functions they need. This task is certainly no less complicate than the Berlin Philharmonic’s job of delivering Brahms to New York audience.

I can feel that each team is doing their best to make their parts of the system working. Everybody want to do a good job in their own scope. But, nobody really knows how the whole system is glued together, especially the nitty-gritty details. So, whenever an issue happened, people started with saying “It’s not my fault so it’s not my problem” and continued with finger pointing. After several rounds of finger pointing, the right person who know the right details will be dug out. He or she will simply fix the problem in 5 minutes. But it’s never his or her problem since he or she doesn’t even know that integration scenario is possible to come to his/her part of the world!

In my opinion, nobody is in charge is the key reason the integration process functions so inefficiently. We need a conductor who knows how to play violins, what the oboes sound like, how to use to drums. No only that, he/she knows exactly what kinds of music the Orchestra would like to deliver. He/she knows exactly the time when the strings should enter and when the woods should fade out.  He/she will pick the right players into the game and rehearsal the Orchestra time and time again until the end result is satisfactory to his high standard. He/she will be the one who receives the applauds or the blames. Actually, a good conductor will take the blame himself but attribute the success to his/her players.

We have conductors in each application team but we lack such conductor in Integration level. Without this central control person/team, the Integration process is doomed to perform in disarray, like a Orchestra without a conductor, only yielding inharmonic melodies.

File:The Greatest Salesman in the World book cover.jpg

I just finished reading an interesting book, “The Greatest Salesman in the World” by Og Mandino. Its Chinese translation was marketed in the name “Scrolls of Wealth” in China and was very popular.

I didn’t realize it was published just 40 years ago in 1968, a best-seller since then, until I read some critics about the book. The story of the book was set in biblical time in Arabic world. It’s about a poor camel boy, Hafid, who eventually became the greatest salesman in his time with unmatchable wealth. However, I can see the story is just a “make-up”, like all the stories in the TV advertisements. Essentially, the author would like to sell his “manuals for salesman”, which he developed for his insurance company while working in rural New Hampshire, as he disclosed in the preface of the book.

The author is indeed a very good salesman for his ideas. The story is catching, persuasive, full of drama, even having a mysterious link to the Bible. Obviously, he followed his own advices to sell, capturing people’s interests, making connections through familiarity (Bible story), demonstrating success stories happened with other ordinary people, and making the items for sale seems scarce and rare thus valuable. Another interesting way he did his selling is to command the reader to read each principle (a chapter or scroll in the book) three times a day for a month. That’s almost like a religious practice. I have to agree it’s the best way to build the principles into habits.

Read the rest of this entry »

July 2019
« Dec    

Blog Stats

  • 60,328 hits