Outfoxing Outsourcing:
There is more to watch for on the offshore horizon as outsourcing traffic increases and involves multiple countries.
Companies intent on saving bucks need no longer fix their gaze solely on India in search of information technology professionals. Russia, Vietnam, and China, for example, have equally impressive pools of talented and motivated techies, and they’re extremely eager to negotiate affordable contracts with offshore companies.
A Conversation with Steve Ross-Talbot:
The IT world has long been plagued by a disconnect between theory and practice.
Academics theorizing in their ivory towers; programmers at "Initech" toiling away in their corporate cubicles. While this might be a somewhat naïve characterization, the fact remains that both academics and practitioners could do a better job of sharing their ideas and innovations with each other. As a result, cutting-edge research often fails to find practical application in the marketplace.
A Conversation with Joel Spolsky:
What it takes to build a good software company
Joel Spolsky has never been one to hide his opinions. Since 2000, he has developed a loyal following for his insightful, tell-it-like-it-is essays on software development and management on his popular Weblog “Joel on Software”. The prolific essayist has also published four books and started a successful software company, Fog Creek, in New York City, a place he feels is sorely lacking in product-oriented software development houses. Spolsky started Fog Creek not with a specific product in mind, but rather to create a kind of software developers’ utopia, where “programmers and software developers are the stars and everything else serves only to make them productive and happy.” So far, he has succeeded.
Reporting for Duty:
All too often the reporting tools that developers select for their applications are a little more than an afterthought. In this Premium ACM Queuecast, Vice President of Product Management for Actuate, Paul Clenahan, explains why it’s in the interest of developer to select richer sets of reporting tools and how these tools more readily accessible though the Eclipse Foundation’s BIRT project, spearheaded by Actuate.
Joining me today is Paul Clenahan, Vice President of Product Management at Actuate, and a member of the BIRT Project Management Committee, who’s here to discuss future trends in reporting tools.
The Power of IP Protection and Software Licensing:
Software Digital Rights Management solutions are the de-facto standard today for protecting IP.
Intellectual Property (IP) - which ranges from ideas, inventions, technologies, and patented, trademarked or copyrighted work and products - can account for as much as 80% of a software company’s total market value. Since IP is considered a financial asset in today’s business climate, the threats to IP create a real concern. In an interview with ACM Queuecast host Michael Vizard, Aladdin vice president Gregg Gronowski explains how Software Digital Rights Management solutions are the de-facto standard today for protecting software IP, preventing software piracy, and enabling software licensing and compliance.
Interviewing Techniques:
Separating the good programmers from the bad
My work group has just been given approval to hire four new programmers, and now all of us have to interview people, both on the phone and in person. I hate interviewing people. I never know what to ask. I’ve also noticed that people tend to be careless with the truth when writing their resumes. We’re considering a programming test for our next round of interviewees, because we realized that some previous candidates clearly couldn’t program their way out of a paper bag. There have to be tricks to speeding up hiring without compromising whom we hire.
Bad Software Architecture is a People Problem:
When people don’t work well together they make bad decisions.
It all started with a bug. Customers were complaining that their information was out of date on the website. They would make an update and for some reason their changes weren’t being reflected. Caching seemed like the obvious problem, but once we started diving into the details, we realized it was a much bigger issue.
Conversations with Technology Leaders: Erik Meijer:
Great engineers are able to maximize their mental power.
Whether you are a leader, a programmer, or just someone aspiring to be better, I am sure there are some smart takeaways from our conversation that will help you grow in your role. Oh, and if you read to the end, you can find out what his favorite job interview question is - and see if you would be able to pass his test.
10 Ways to Be a Better Interviewer:
Plan ahead to make the interview a successful one.
Of course, there is no right way to do an interview, but you can always be better. Make an effort to make your candidates as comfortable as possible so they have the greatest chance for success.
Breadth and Depth:
We all wear many hats, but make sure you have one that fits well.
When people ask me the question of where they should focus their time I ask them what is the one thing you could be the best in the world at? The answer might be going deep or going wide. The important thing is to spend your time on building the skills that will move you to where to you want to go.
Views from the Top:
Try to see things from a manager’s perspective.
Leadership is hard. None of us comes to work to do a bad job, and there are always ways we can be better. So, when you have a leader who isn’t meeting your expectations, maybe try reframing the situation and looking at things a little differently from the top down.
How Is Your Week Going So Far?:
Praise matters just as much as money.
None of us hears "thank you" or "awesome job" enough at work. Being the person who praises other people is an amazing person to be, especially when you follow this formula for making your praise ridiculously effective.
Containers Will Not Fix Your Broken Culture (and Other Hard Truths):
Complex socio-technical systems are hard; film at 11.
We focus so often on technical anti-patterns, neglecting similar problems inside our social structures. Spoiler alert: the solutions to many difficulties that seem technical can be found by examining our interactions with others. Let’s talk about five things you’ll want to know when working with those pesky creatures known as humans.
How to Come up with Great Ideas:
Think like an entrepreneur.
No matter what your profession, learning to think more innovatively and spark new ideas can help you. I have included some points and inspiration that have helped me, but the real key is changing your behavior and taking action.
The Secret Formula for Choosing the Right Next Role:
The best careers are not defined by titles or resume bullet points.
Focus on factors that will increase your career capital and make you a more valuable hire in your next role, and the one after that, and the one after that. When you are looking at the options for your next role, there are smarter choices that you can make.
How to Get Things Done When You Don’t Feel Like It:
Five strategies for pushing through
If you want to be successful, then it serves you better to rise to the occasion no matter what. That means learning how to push through challenges and deliver valuable results.
The Importance of a Great Finish:
You have to finish strong, every time.
How can you make sure that you are recognized as a valuable member of your team, whose work is seen as critical to the team’s success? You have to finish strong, every time. Here is how to keep your momentum up and make the right moves to be a visible contributor to the final success of every project.
Design Patterns for Managing Up:
Four challenging work situations and how to handle them
Challenges come up all the time at work. Spend time now thinking about how you want to be seen at work, and then think about how that version of you would respond to the challenges that you could encounter. When you have a plan in place, you are much more likely to succeed.
How to Create a Great Team Culture (and Why It Matters):
Build safety, share vulnerability, establish purpose.
As leader of the team, you have significant influence over your team’s culture. You can institute policies and procedures that help make your team happy and productive, monitor team successes, and continually improve the team. Another important part of team culture, however, is helping people feel they are a part of creating it. How can you expand the job of creating a culture to other team members?
Tom’s Top Ten Things Executives Should Know About Software:
Software acumen is the new norm.
Software is eating the world. To do their jobs well, executives and managers outside of technology will benefit from understanding some fundamentals of software and the software-delivery process.
Overly Attached:
Know when to let go of emotional attachment to your work.
A smart, senior engineer couldn’t make logical decisions if it meant deprecating the system he and his team had worked on for a number of years. Even though the best thing would have been to help another team create the replacement system, they didn’t want to entertain the idea because it would mean putting an end to something they had invested so much in. It is good to have strong ownership, but what happens when you get too attached?
The Evolution of Management:
Transitioning up the ladder
With each step up, the job changes - but not all of the changes are obvious. You have to shift your mindset, and focus on building new skills that are often very different from the skills that made you successful in your previous role.
Demo Data as Code:
Automation helps collaboration.
A casual request for a demo dataset may seem like a one-time thing that doesn’t need to be automated, but the reality is that this is a collaborative process requiring multiple iterations and experimentation. There will undoubtedly be requests for revisions big and small, the need to match changing software, and to support new and revised demo stories. All of this makes automating the process worthwhile. Modern scripting languages make it easy to create ad hoc functions that act like a little language. A repeatable process helps collaboration, enables delegation, and saves time now and in the future.
What is a CSO Good For?:
Security requires more than an off-the-shelf solution.
The CSO is not a security engineer, so let’s contrast the two jobs to create a picture of what we should and should not see.
Communicate Using the Numbers 1, 2, 3, and More:
Leveraging expectations for better communication
People often use lists of various sizes when communicating. I might have 2 reasons for supporting the new company strategy. I might tell you my 3 favorite programming languages. I might make a presentation that describes 4 new features. There is 1 vegetable that I like more than any other. The length of the list affects how the audience interprets what is being said. Not aligning with what the human brain expects is like swimming upstream. Given the choice, why would anyone do that?
Kabin Fever:
KV's guidelines for KFH (koding from home)
Let me invite you to my next Zoom meeting on how to host Zoom meetings! As a devotee of mobile computing and remote work from my earliest days at university, I have, over time, developed a number of useful habits for maintaining a good and productive working rhythm, and I've found that many of these apply well to those of you who are newly working from home.
The Software Industry IS STILL the Problem:
The time is (also) way overdue for IT professional liability
The time is way overdue for IT engineers to be subject to professional liability, like almost every other engineering profession. Before you tell me that is impossible, please study how the very same thing happened with electricity, planes, cranes, trains, ships, automobiles, lifts, food processing, buildings, and, for that matter, driving a car.
Patent Absurdity:
A case when ignorance is the best policy
The main reason a lawyer will give for not reading a software patent is that, if you run afoul of the patent and it can be shown that you had knowledge of it, your company will incur triple the damages that they would have, had you not had knowledge of the patent. That seems like reason enough to avoid reading them, but there is an even better reason, and that is, as design or technical documents, software patents suck.
Walk a Mile in Their Shoes:
The Covid pandemic through the lens of four tech workers
Covid has changed how people work in many ways, but many of the outcomes have been paradoxical in nature. What works for one person may not work for the next (or even the same person the next day), and we have yet to figure out how to predict exactly what will work for everyone. As you saw in the composite personas described here, some people struggle with isolation and loneliness, have a hard time connecting socially with their teams, or find the time pressures of hybrid work with remote teams to be overwhelming. Others relish this newfound way of working, enjoying more time with family, greater flexibility to exercise during the day, a better work/life balance, and a stronger desire to contribute to the world.
Split Your Overwhelmed Teams:
Two Teams of Five is Not the Same as One Team of Ten
This team?s low morale and high stress were a result of the members feeling overwhelmed by too many responsibilities. The 10-by-10 communication structure made it difficult to achieve consensus, there were too many meetings, and everyone was suffering from the high cognitive load. By splitting into two teams, each can be more nimble, which the manager likes, and have a lower cognitive load, which the team likes. There is more opportunity for repetition, which lets people develop skills and demonstrate them. Altogether, this helps reduce stress and improve morale.
DevEx: What Actually Drives Productivity:
The developer-centric approach to measuring and improving productivity
Developer experience focuses on the lived experience of developers and the points of friction they encounter in their everyday work. In addition to improving productivity, DevEx drives business performance through increased efficiency, product quality, and employee retention. This paper provides a practical framework for understanding DevEx, and presents a measurement framework that combines feedback from developers with data about the engineering systems they interact with. These two frameworks provide leaders with clear, actionable insights into what to measure and where to focus in order to improve developer productivity.
The Human Touch:
There is no substitute for good, direct, honest training.
The challenge of providing a safe communications environment in the face of such social engineering attacks isn't just the technology; it's also people. As anyone who has done serious work in computer security knows, the biggest problems are between the keyboard and the chair. Most people by default trust other people and are willing to give them the benefit of the doubt.
Managing Hybrid Teams:
The combination of on-site and remote workers takes extra effort from team leaders.
After three years of working remotely, many companies are asking their people to return to the office. Not everyone is coming back, however. With some people in the office and some still working from home, leaders must get this transition to hybrid work right. Hybrid is the worst of both worlds in some ways. You can easily end up creating two experiences?one for the people in the office and one for the remote workers?which can lead to problems that will compound over time and have long-term damaging effects on your team.
Halfway Around the World:
Learn the language, meet the people, eat the food
Not only do different cultures treat different features differently, but they also treat each other differently. How people act with respect to each other is a topic that can, and does, fill volumes of books that, as nerds, we probably have never read, but finding out a bit about where you're heading is a good idea. You can try to ask the locals, although people generally are so enmeshed in their own cultures that they have a hard time explaining them to others.
Knowing What You Need to Know:
Personal, team, and organizational effectiveness can be improved with a little preparation
Blockers can take a tiny task and stretch it over days or weeks. Taking a moment at the beginning of a project to look for and prevent possible blockers can improve productivity. These examples of personal, team, and organizational levels show how gathering the right information and performing preflight checks can save hours of wasted time later.
Software Managers' Guide to Operational Excellence:
The secret to being a great engineering leader? Setting up the right checks and balances.
Software engineering managers (or any senior technical leaders) have many responsibilities: the care and feeding of the team, delivering on business outcomes, and keeping the product/system/application up and running and in good order. Each of these areas can benefit from a systematic approach. The one I present here is setting up checks and balances for the team's operational excellence.
Programmer Job Interviews: The Hidden Agenda
Top tech interviews test coding and CS knowledge overtly, but they also evaluate a deeper technical instinct so subtly that candidates seldom notice the appraisal. We'll learn how interviewers create questions to covertly measure a skill that sets the best programmers above the rest. Equipped with empathy for the interviewer, you can prepare to shine on the job market by seizing camouflaged opportunities.
Give Your Project a Name:
It goes a long way toward creating a cohesive team with strong morale.
While some people are driven by infinite backlogs and iteration, others prefer launches and deadlines. Over the years, I have found certain milestones to be instrumental in creating a cohesive team with strong morale. When people have to work together to get through a challenging task, reaching those milestones brings them together.
Assessing IT Project Success: Perception vs. Reality:
We would not be in the digital age if it were not for the recurrent success of IT projects.
This study has significant implications for practice, research, and education by providing new insights into IT project success. It expands the body of knowledge on project management by reporting project success (and not exclusively project management success), grounded in several objective criteria such as deliverables usage by the client in the post-project stage, hiring of project-related support/maintenance services by the client, contracting of new projects by the client, and vendor recommendation by the client to potential clients. Researchers can find a set of criteria they can use when studying and reporting the success of IT projects, thus expanding the current perspective on evaluation and contributing to more accurate conclusions.