Software production is a powerful tool. Some people might find it hard to understand the concept of software production, which puts them at a disadvantage in business. Here are ground rules to keep in mind:
1. Understand the IT industry
The IT industry is a complex mix. It incorporates science, technology, art, and business. The most difficult thing is to try to navigate without having thorough knowledge. You have to know what you’re doing in the industry, and keep reinforcing that knowledge with lots of practice.
The rate at which technology gets updated is staggering, and makes it tough to keep up. Whatever you learned 10 years ago is obsolete. This forces you to learn as fast as the technology updates, so it’s safe to say that succeeding in the IT industry does not depend on any inborn ability, intuition, or feeling. IT thrives on practicality.
2. Software production and software development methodologies should not be mixed
Software development underpins software production. Their goals, mindsets, and practices are complete opposites. You cannot even begin to apply methods from one to the problems of the other. It is therefore important you make the distinction between them, and apply the right method for the right domain.
Software production lies more in the business administration sector. You are aware what your client needs, and at the same time, you are aware of the team’s resources. The effort at that point is for you try and lead your team to the ultimate goal. It is easy enough to gauge the speed at which you are working, and report on the same. The skill needed here is to understand your client and his wishes, while knowing the strength and weakness of your team. You have to be able to communicate your plans and lay out your schedules.
3. Use of persistent storage as an extension to human memory
The use of persistent memory storage helps you move at a speed that is easy to predict. It has nothing to do with formal documentation that will get used in the future. It is simply the process of documenting your thoughts and ideas as you work. It is always recommended to write down any ideas you think of, as it aids you in the development process. Ideas should get jotted down as soon as they occur, otherwise they will fade from your mind.
Write it down in such a way that the next person can read and understand. This helps in two ways:
It is a sure way of making sure nothing gets forgotten.
It declutters the mind and leaves you free to think and create.
These tricks work for a project of any size. Create a page for tasks and keep updating every time an idea hits you, or you discuss something worthwhile with colleagues.
4. Don’t waste time on estimating time
No project is like another, so it makes little no sense to try and estimate the time that will get spent on a project. The dynamics of every job are different every time. A similar project may have a different client, a different team, different goals, etc.
The formal recommended method, as taught in MBA classes, is to divide the project into smaller projects and estimate the time spent on each. The sum of total time spent on the smaller projects is then added up to estimate the whole project’s time length. It is arduous, and never works. General Managers are advised to ditch formal time estimation. The trick is to have the team collect - over time - statistical details on project duration, and then distribute this information within the company.
A project manager ought to take these things into consideration: the project type, resources, type of organization, etc. and estimate the time frame for completion. Making a good estimate only comes with years of experience. The best estimate is to guess over and above the actual intended time. If you finish the project well ahead of the estimated time, it is a plus for your team.
5. Know the cost of task switching
The human brain is capable of many things. Switching between tasks like a computer isn’t one of them. It’s impossible to switch your mind off something immediately, and it’s just as hard to engage your brain on a concept and move at full speed.
A manager works hard to shield his team from disturbances that are apt to disrupt their thought process. When a client is demanding results or a boss is asking for a report, they schedule such distractions for future discussions. This prevents the team from getting worked up, anxious, and thus unable to deliver.
People should learn to process things one at a time. The fewer tasks you have to do, the faster you will work. It is an inevitable fact about the human mind.
6. Use architecture reviews to improve designs
In the IT industry, you can either have over- or under-engineering. Neither is good. It would be practical if you were able to see signs of over- or under-engineering, and nip it in the bud. Over-engineering comes into play if there is a simpler solution than the one you opted for. But choose the simplest solution you know, unless someone comes up with a simpler one. Under-engineering is choosing a simple solution for a complex problem.
You should never design without a business aim. Whatever you do should be geared towards client satisfaction. It is common to see designers doing what they think the client needs, instead of what the client wants. Reviews may show emerging technologies, which you should use to improve on the design.
7. Know the Value of Team Players
Team players work well together when the following attributes are present:
Communication: Communication could be one of many types. Writing, talking, etc. There are two aspects, one of which is to share information; the other is to have the ability to listen. Some people deliberately try to conceal information, which is not beneficial for the team. A good team player ought to possess these two positive qualities.
Understanding each other’s strong and weak areas: This fosters better working relationships and builds trust among the team members. Be careful of those people who are unwilling to ask for help. They make poor team players, as they’re not ready to admit their weaknesses. If you know your strong point is someone else’s weakness, then it is prudent that as a team player, you lend a hand and vice versa.
8. Focus on Teamwork Organisation
You should work to building and maintain a team by:
Building on expertise: Every IT project has its unique traits. For it to take off, you have to master the specifics of the project. You have to keep the team interested and focused on the project by making full use of their expertise. Keep them in the know about new challenges. Let each member develop new skills in different areas.
Distraction: Developing is very complex and needs a fully concentrated and creative mind. Keep all distractions away from a developer, and you will get work of a high standard.
Allow learning: Developers more often than not are being pushed towards more productivity.
9. Build a competitive workshop
Building a competitive workshop is not a one discipline job. It needs you to be knowledgeable and have expertise in different areas. It is not easy, and there is no right or wrong way. There is no theory that will tell you how to do it.
Most of it gets done by ear. You gain experience with time, and you can discern between what will work and what won’t work.
Have you been in software production before? Why not share some advice with us! The comments section below is waiting for you.