Software Development and Management in the view
of people with various background in various sectors
1. Strategies, visionaries and kingpins of office….
Management, stakeholders talk about plans just because there role demands and their responsibilities is to do it. Push those plans to bottom of the pyramid, with lot of tasks blind folded and expect others to perform and complete it. The people at the bottom have no idea what is expected out of them and they keep doing something or other. This is very stressful to the people at the bottom of the company. Lot of contractors, subcontractors, IT Service vendors and consultant are crushed on this. Software Support, maintenance and development will in no way succeed, unless it is properly supported by the management.
2. The Pregnant woman Theory
If one woman can make a baby in 9 months, then 9 women can make a baby in 30 days.
Now you may laugh, but this is the most common problem in developing, managing software projects. Throwing more resources at the problem and praying it goes away does not solve anything.
3. Greater good but lot of office complexity within company
What is in it for me management in software development? I thing I can do this but not good for me. Office dynamics doesn’t allow certain things even though it is good. Multiple team management see things differently, ultimately the contractors and lower end of the pyramid need to face lot of things.
Team management Spend countless hours in useless meetings and then having a meeting to discuss why everything is over budgeted and behind schedule.
4. Champagne On A Beer Budget
Expecting everything for free and having it done yesterday. This is a very common occurrence especially when contractors, subcontractors are hired. Even with this approach lot of tasks performed are taken as examples of failure to make a point in decision making. Nothing goes waste in Project management these tasks are used by other team managers/members in the management.
Also or this projects they want to hire very experienced software engineer with freshers compensation. Lot of good people fall for it.. Ultimately companies, IT services vendors get compensated well but not the actual person (Contractors, subcontractors, consultant) working on this kind of projects..
There are lot of other perspective which can be taken from this.
5. The Scalpel Is Only As Good As The Surgeon Who Uses It, Not All Tools Are Created Equally.
A Scalpel is a commodity, the surgeon who uses it to save your life is not. Similarly there are lot of Software ‘Tools’ / ‘products’ which have been development for their right job in software development.
Not all software tools/product are equal from different vendors, choose the right tool for the right job within the budget.
Have right LICENSED Tools in the SDLC environment. With access to right people in the team who know how to use it. This is very important for the success of the project. No short cuts to have tools in project or else later company might have to face copy right laws, infringement, piracy law suits if not taken care of it in the beginning.
One Other thing, You can have the latest tools ! The Latest Technology ! But when you have the same old mindset, you are setting yourself up for failure. That can be anything from not allowing new changes to help the organisation grow, to having a mindset of not allowing others to grow to creating roadblocks for every change.
6. You Never Run Out Of Things That Go Wrong
There will always be an endless supply of challenges and things that go wrong. Pretending there aren't any problems doesn't make them go away.
There are many which look so easy to complete but they are not easy in software development. It is not complete until everything works fine as per the requirements, analysis, design, coding, testing, user acceptance, production, post production stability. Again we have to complete it with various in house SDLC processes in different companies.
All this need to be done with various teams in the company with different budgets, priorities, conflict of interest, different resources and their backgrounds, experience, skill sets, people skills etc etc…
7. A Plan Is Just A List Of Stuff That Didn’t Happen & Everything Takes Longer, And Costs More Than You Planned
The battle plan is the first casualty of war, as soon as the first shot is fired the plan goes out the window. Likewise, when the first problem is encountered in the software development, the plan and the Gantt Chart go out the window. And during this time lot of things happen.
And it is very easy for lot of people in the management and key players to play politics for their own benefits and blaming others for failures, delays etc etc.. Again due to this people working in the lower end of the pyramid -- contractors, subcontractors, IT service vendors, consultants are taken for ride. Because they are easy to pick on…If this happens again and again management will never be able to finish the task they want. This need to be avoided to keep the company competitive, on budget and generate more sales and revenue…
8. Thinking that changes with time
Strategies, plan change as we are living through it. Above list will be keep on changing for all the Team managers, members, key stakeholders involved in the project in the company ( Lot more can be added in the above list and depends from company to company). It is very hard to understand it and keep up the pace and consistency. And most of the time it is up in the air and some can and some cannot handle change, pressure, stress, etc etc..
9. Life style and personnel management. Keeping things Positive in difficult situations and at all times
To think right and work in the software development job by anybody should have lot of things right as you can see above. This applies to each and every individual in the company and the list, background, situations various for each individual. It is not easy to get a right person for a job. And a person getting into a right job. There are lot of people in the management, company who take cheap shots from the above which is not right.
Keeping oneself body, mind and spirit healthy is important. Emotional intelligence in the management is important, but lot of times they make wrong decisions. Assuming things from our past experience and applying that on the current situation is not right. Need to give lot of time before making decisions on the project resource management, budget and contractual agreement.
On Positive thinking...Need to...
Keep your thoughts positive because your thoughts become your words.
Keep your words positive because your words become your behavior.
Keep your behavior positive because your behavior becomes your habits.
Keep your habits positive because your habits become your values.
Keep your values positive because your values become your destiny, life.
Now, it is not always possible to stay positive with our thoughts because our emotions are great indicators of how we are feeling about our external environments and our own situation. Since we are humans not machines. And everybody has only 2 hands and 1 head to manage and do things. But we need to work on staying positive and see all possibilities in challenging situations and keep doing right things and leave the rest to that unknown person called GOD.
While managing the Human resources in the team treating people equal is important. Need to respect the background and the skills they bring to the table. Any kind of discrimination will not be liked by anybody within the team. Setting up the SDLC process, communicating that and following that within the team is very very important for the team's and project success.
10. Good, Fast, Cheap… Pick Any Two
We never have time to do it right, but we always have time to do it over….. and over….. and over…..
I hear time and time again. Just get it done right now, we’ll fix it later. The problem is that later never comes. By then it is too late and significant damage is done to so many things which we are aware of some but not aware of so many other things. Trying to save money or project in software development project can cost thousands, millions later to the company and things won’t never get done as per the plan, budget, time. Management must be brave, courageous, wise, experienced to make right decision for the success of the project and good IT team.
11. To Explain more about TIME in Software management
Many have faced this situation .
One of the most important thing, "Leave it to professionals, and rest is history"
(Customer to Manager) or (Manager to Developer) or (Any person asking to any other person for timeline) :
How many days the project will take? Considering only 8 working hours per day.
Asking these question is easy. But it is very very hard to answer for the person working on it to deliver.
(Manager or Developer or Person) working on it:
Estimation 4-6 weeks
Remember again in Software development Estimation is guestimate. We are guessing it. Or out of the experience breaking the big project task into many many smaller tasks for estimation. Even after that Actual's will vary a lot from project to project. Lot of factors is on the person committing to it, Like he may be new to legacy code, new to business concepts, new to team environment, lack of expertise, lack of tools in the environment, lack of proper Development environment to work on the task, lack of co-operation in the team, in fact lot of hurdles in team to overcome with non co-operation, hardware failures, Network problems, Enterprise application software bugs in the versions used and we can add couple more from client to client.
(Customer to Manager) or (Manager to Developer) or (Any person asking for it ) :
I have no time. We need this project in 2 weeks
Customers always ask things immediately. Like get it done yesterday. The person need to give reasonable answer which is okay. Again it is very very hard to commit to things which you are unaware of. You can only estimate, hope and work diligently on it considering 8 hours per day. In spite of it there are always lot of times where the wheels in your mind never stops until you complete the task. To make the computer work the way it should work there are lot of factors. Intellectual work is not easy to complete with lot of Work flow, Data flow, If-Else, For-Loops, Do-Whiles and many many more in programming. There are always lot of places where it can go wrong.
(Manager or Developer or Person) working on it:
OK. We will do our best in the mentioned time
As a person who is going to work on it, you can always negotiate the time by explain all the sub tasks associated with it that comes to your mind. Or you can also take some time to give the estimates and why you need that much time. But we have the pressure to make customers happy. Considering the situation and various factors we agree to some timeline. ( Which is sometimes good and sometimes bite you back)..
Now that you have given some timeline. Your time has been started to tick. Need to line up all you have and can to complete the task. This is very challenging, as there are always so many places where you can hit the bottle necks as mentioned above. These will delay and makes you look bad. And for the person who had requested this project, it is very easy to pick on you with so many things on you. And if that person is very unreasonable one you need to face fatal consequences. Hmmm…