As a software consultant and a project manager I worked with multiple companies on various small, medium and large engagements. This article is about the 10 things we as IT decision makers sometimes don’t follow. It is my perspective that by not following these 10 things, IT projects become complex, made complex or are done for no valid reason. By IT decision maker I mean everyone from the top management to project/program/product managers to architects and development leads.
1. Think before you start a new software project:
If your company, your business unit or your team think that they need to customize or build a completely new software then before starting the project think about following questions.
- How much of the manual effort we are going to save with this?
- Is there any other software or tool which can be used instead?
- Can we configure over customize? How big is the gap with configured software v/s customized one? Can we not live with this gap?
- Use 5 Whys technique.
2. Artificial intelligence:
Now a days AI has become a buzz word as if it did not exist earlier. Agreed that there is definite progress and huge benefit if used wisely. Just make sure artificial intelligence is not used in artificially intelligent way. For example using Machine Learning for simple tasks where Regular Expressions were enough. You would observe this in your organization everywhere now. Every other person you talk to will speak about AI and Bots. No doubt there is huge potential but if you want to get best out of it then it should be thought about at organization level and not at individual project level only. This will save you money, time and effort. E.g. don’t develop a Bot for every business unit, a Bot which pops up on every other website with the question “How may I help you?”. Having innovation strategy in place would help. Organizing brainstorming sessions, hackathons etc. will give you some clues on how to proceed and in which direction.
3. You don’t need round corners for every ‘DIV’ on your HTML page:
You will understand my point if you have faced a person who did not allow a web site to go live because a section on HTML page did not have rounded corners. You will find such scenarios and people in every organization. If you have such a person in your team, then you need to talk to him or her as early as possible in the lifecycle of the project. These are the individuals you will find are very passionate about their work and once you discuss with them you will be amazed with the knowledge and ideas they have to offer.
4.Enterprise applications have roadmap and thousands of customers to support:
The competition in enterprise software space is fierce. An enterprise application that used to get new updates in one or two years earlier has now come down to few months; on the other hand the competition between businesses in every industry is unimaginable. Businesses cannot afford to lose the competitive advantage by using outdated software and tools. However, too much focus on software customizations, enterprise application integrations etc. can create the very same problem that you are trying to solve. The best strategy is to align with the roadmap of enterprise applications you are using. Try to investigate future. Avoid every possible customization. Work with the software provider and push for enhancements in product features.
5. Talk to right set of people:
If you are the person responsible for allocating budget to a new software project then make sure your team consists of right set of people. Most of the times you will observe a person expert in technology X is assigned to decide the future which is heavily dependent on technology Y. Most of the times such person can provide strategic inputs as per her or his experience, but they will never be able to understand the complete picture. Try involving technical people in every discussion possible, encourage them to speak in the meetings. Involve at least one core technical resource in IT strategy discussions and don’t discount their suggestions unless you understand what they mean 😊. You can look at this funny YouTube video to understand my point.
6. Understand Agile and educate your team:
Just like AI, Agile is also something you will find being used in every project whether it is required or not. If you really understand what Agile is then first have common definition discussed with your team members. Everyone should understand same meaning of Agile in the project and follow the values and principles suggested under it. Unfortunately, there is lot of confusing material available online. A complete IT training industry is built around it. There are numerous courses, certifications and study materials are available but fundamentally it is all about using common sense and being honest. I find agilemanifesto.org the best source for the same.
7. Continuous learning is required:
Innovation in technology is happening at the speed of your thought, literally!! Any idea that comes to your mind is already getting designed, developed or even implemented somewhere in the world. You will never get a chance to learn it all, but you will have to spend at least few hours of the week to learn about the technology that is being used in your current project. Good news is that, even though the technology is moving fast it is becoming easier to learn and use. Every big organization in IT industry has come up with their own free courses. To list few https://www.edx.org, https://mva.microsoft.com/ , https://in.udacity.com/.
8. Community participation is very important:
Gone are the days when organizations especially the one providing IT services could create vertical and horizontal structures. Even gone are the days of old competing models like intellectual property-based v/s open source. We still see these structures in place in some shape or form but the lines between them are blurred. Even different IT giants are now collaborating more than ever before. In such an exciting time if one stays confined to her or his own project, own technology, own business unit it will never give her or him a different perspective to look at the project challenges. So, take every opportunity to participate in communities within and outside of your organization. Learn from others.
9. Minimize processes:
This is something that may not be in your hands. I am talking about organizational processes. But if you are playing the crucial role in the project try to minimize them to the point that it doesn’t affect organization and project. I am not suggesting doing it in any unethical way. In project management we do process tailoring. Try doing such exercise with required stakeholders. If you are not the authorized person at least try to highlight time consuming processes, suggest workarounds and try and have open discussion with concern people.
10. Learn to separate noise in the discussions:
In difficult conversation we focus too much on people than issues and ideas. As a decision maker it is a constant struggle to separate out noise from the discussion and take what needs to be done. We need to practice this every day.
Lastly, I would like to mention that this article is not written to undervalue any specific roles in the organizations. It is a gentle reminder for all of us working in IT industry to keep improving every day.