A career of a successful Software Engineer

Ray Brooke is a former student and a successful owner of a large software company. At my suggestion, he agreed to share his career as a software engineer with students at CMU.

Ray started: “As students in software engineering, your first job will probably be software developers or testers. You are trained to design, code and test and I am sure many of you will do well. But sometime you will be in situations that you have to ask customers on what they want and it is NOT easy. Many of you are NOT trained on how to communicate with customers. You know about technical things but customers do not. Your customers do not know the difference between “Function” and “Feature”, “Unit test” and “Regression tests” or “Object” and “Structure”. On the contrary, customers do not understand why you do not know “Value and Revenue”, “Return on Investment”, “Time to Market”, “Assets”, “Point of sales”, “Account payable and Account receivable”. It seems like you are speaking Chinese and they are speaking Greek”.

“Many years ago, I was in the same situation when I had to talk with customers directly to solve a difficult issue. No one in my team wanted to do that and the project manager refused to meet with customers because they had arguments in the past. That was my first opportunity to show management that I can “solve problems” so I learned some business terms before the meeting. It turned out well because I listened more than I talked. The customer was not happy with the project so he told me everything bad about the project, I just listened quietly and assured him that I will try my best to solve the problem. Because I knew how to listen and have patient, few weeks later the company asked me to meet the customer of another project. I also did well by listened more but this time I also learned more about the business side. Eventually, I became the person that customers wanted to talk to and company assigned me to be the “Business Analyst” the term that today is often called “Requirements Engineer” or the technical people that obtain, analyze, define customers' needs and negotiate changes to project”.

Ray continued: “The job of the Business Analyst is to work with customers to find out what they need and write the business requirements. This is NOT easy because you must know about the customers' business and the reason why customer need the software product. You must learn what users will be able to do with the software and what the software will do for the business such as increase revenues, reduce costs, improve services, or meet certain obligations. From what you obtain from the business side, you must transform them into technical requirements such as functions that software must fulfill to meet user needs. That is why a business trained person cannot do because they do not know software and software people cannot do it because they do not know the business. This job requires someone who know both business and technical and it is very important because any misconception or mistakes, the project will fail. Since it is a difficult job, I got paid very well even I just worked there for more than a year. What I did is to show management that I am willing to learn new thing and take action to improve my skills”.

“However, after a year working as the Business Analyst, I learned enough about the business side but not enough on the technical side so I “volunteered” to support the project manager to learn about how to manage software project. The job of a project manager is about planning the project, organizing the team, setting project schedule, and keeping track of the progress throughout the development. Because my project manager was very busy so he asked me to deal with problems affecting the team, and making sure each programmer is working accordingly. To improve the skill, I took several project management courses. Since I worked with both technical and non-technical people, I learned that a project manager must have both "technical skills” and “Soft skills” in order to succeed but most schools do not teach “soft-skills” so I took several courses in this area too. Eventually, I was promoted to project manager and I completed all projects successfully. One success led to another and in just a short time, I was assigned to program manager to oversee several large projects. I worked very hard and continue to learn throughout all the projects that I was responsible for. Nothing can substitute for experiences, I learned from many mistakes that I made, I learned from people in my projects, I learned from customers and users but most of all I learned how to listen to people because everyone always have something to say. My advice to you is learn the “listening skill”. Today, there are so many people who learn to talk, to give presentation, to debate but few know how to listen. My secret is I listen more and have patient and they are the most important skills in this highly competitive world”.

Ray laughed: “Because I had a strong communication skills, I became the top manager of the company. The ultimate jobs for many software engineers looking to move up is to become the Director and Chief Information Officer (CIO) so in just few years, the company owner gave me a Director position to manage the entire division of the company. Traditionally, most people who were in this position came from the business area and have a Master of Business Administration (MBA). They were very good with finance and accounting but in my opinion, it was also a weakness because lacking technical skills, many made mistakes. Finance and accounting have rules that you must follow but management is much more than following certain rules because you also need innovation and “Thinking outside of the box”. Companies want people who can understand what their business is and how to apply technology to make it better. Being able to follow directions is important, but being able to take some initiative and make your own judgments is equally important. My solution is to differentiate myself from the traditional directors. I have already discussed two ways of building up your skills: Acquiring business knowledge and advanced technical knowledge but when you are in higher position, there are two additional areas: Communication and leadership”.

A student asked: “But people told me that communication is a “natural skill”, some people speak better, more eloquent than others”.

Ray shook his head: “Everyone can learn to be a better communicator with practice. The difference is that communication skills take longer to develop. It requires both experience and training to become effective. I worked hard to improve my communication skill since I was a Business Analysts. I learned to communicate effectively by dealing with those who could not. Many customers cannot understand the technical side to describe their requirements in detail. On the other hand, many technical people do not understand the complexity of the business processes that they must implement because they cannot communicate with customers. Learning to communicate, and having the patience to gain knowledge from customers, is an essential skill that many of my former team members do not have. They only want to do technical works and that is why I move up quickly but they stay as programmers and testers”.

Ray continued: “Sixteen years ago, I was like you. A newly graduate student worked on my first job as a programmer. However, I always kept an open mind and look for opportunity. Instead of waiting my manager to tell me what to do I took initiative to work on solving project problems. When all my friends were happy writing code and tests, I went out and worked with customers. In just a few months, I was the person who managers came to whenever there were any problem to fix. Having this “problem solving” attitude not only improves my communication skills, it also improves my chances of moving into business analyst and senior management positions. The key to moving up in any company is to let management know what you can do. I can answer many questions that manager asked, solve project problems, accept new challenges, and always listen to others. That is why I became the top manager”.

“Being a director is NOT an easy job. You are dealing with a major company business by provide information solutions to many customers. You must make sure that the company is doing well, you must think more about creating more revenues, reduce costs, make company owner happy. When other directors was focusing on reducing costs through tightly control of accounting and finance, I was focusing in bringing in more business by working with customers. The company owner was very happy when he found that I was capable of communicating with his customers, identified their issues, and resolved those problems quickly. When customers were happy, they gave you more business so I help increase revenues for the company several times over previous years. The higher profits that you can get for the company, the more valuable you are to the owner and that can result in a promotion. My interactions with more customers make me an important factor to the company so in a short time, I became the Vice President and Chief Information Officer (CIO)”.

“To many people, when they reach the top they stop because there is nothing more to do. I have seen many top managers became lazy and complacent but I am still young and full of energy. What do you think a thirty eight years old to do after he reach the top position? When solving problems, you have to believe that there is a way to accomplish something, even if it is never been done before. As the company was growing fast and needed to hire more software people. Carnegie Mellon and Stanford could not gave me hundreds or thousands engineers that I need each year so I have to find them somewhere. Sometimes listening to others will produce an idea so when a customer mentioned to me that his company was planning to outsource to India because they had many skilled software engineers, I was surprised. A short trip to Bangalore, India that year convinced me that there was a lot of business opportunities here. My question was: “Why outsourced to Indian companies when you can establish an American outsourcing company here? Then I asked myself: “Why do I have to work for somebody when I can do it for myself”. After several months of thinking, I decided to quit the job and started my own company providing software services to customers in the U.S”.

“Because I had good relationship with many customers, they trust me so I did not have much problems of getting supports. Many customers invested money in my company, many gave me the business as I always believe in doing business the right way, the ethical way, and the best way possible. My company grew from fifty people in the beginning to few hundred then to several thousand employees and as the number of customers grew, I opened offices in many countries – China, Singapore, Malaysia and the Philippines. Today, we provide software solutions to customers all over the world and became one of the largest U.S companies specialized in this field.”

Ray concluded: “You may consider that I am lucky but I do not believe in luck because I work hard for it. Today Information Technology opens many new opportunities to people like me and you, if you know how to identify and take action. The key success is continue to learn and adjust yourself to any situation and never give up. Even today, we are still at the beginning of the technology era. If you look back about fifty years ago, the Personal Computer was not invented yet. Steve Jobs and Bill Gates were in elementary school and Sergey Brin and Mark Zuckenberg were not even born yet. What has happened in the past fifty years was such a phenomenon but I believe there will be more to come. By studying information technology, you already selected the right field, the right path toward a very bright future. My advice to you: “Technical skills are essential but NOT enough, you must know the business side of technology too”. As you are pursuing your dream, the last thing that I want to say is no matter who you are and what you do, NEVER forget that you have responsibilities to your friends, your family, your society, your country, your people and to this earth. Technology is a wonderful thing as long as it serves humanity. Thank you.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University