Any positive/negative experiences? Advice? I personally feel that my professional life as a developer is now more difficult, it feels harder to explain things and also to prove my worth without being a "babble-mouth". Surely it can't be good for the start-up in question? I'm actually thinking about leaving.
Speaking as a developer: absolutely yes, and absolutely never.
The most important skills of a manager transcend what the people you are managing actually do day-to-day. The best manager I ever had didn't know how to write a single line of code. What he did however was make a careful study of how it was that we did our jobs.
A manager should not (IMO) get bogged down in the deep details of the architecture and programming nuances. He should hire a team capable of handling themselves on a technical level, and he should be focused on the other aspects. Every time I've ever had a highly technical manager who dabbled too much in the technical details it has been a real problem for the team.
A manager should however really understand how the job gets done. What the best practices are, and what are signals of problems. He should never look scared or lost if a developer starts 'techno-babbling'. He should instead reign in the conversation to keep it at the appropriate level. The manager needs to be technical-enough to understand the developers jobs and challenges without necessarily being a coder himself.
I voted for Chris and MichaelT's responses. Good answers.
You know, the common wisdom is that workers come to a job for the company but leave because of the boss. It sounds like you may be experiencing a common issue of poor management, perhaps exacerbated by the difficulties of a non-technical manager leading a technical team.
(That being said, I am a huge proponent of putting technically accomplished people in those types of management positions, if, and only if, they are qualified for leadership, above beyond their technical achievements. I'd much rather have a highly skilled leader without a technical background leading a group of developers than a superstar programmer with no leadership skills.)
Of course, you could always point your manager at my blog, which will instantly turn him or her into a highly competent, empathetic, and productive leader. :) :)
Kidding aside: you have a fairly typical problem. Start by explaining how you feel in a non-defensive, non-accusing manner, in a one-on-one session with your boss. If you aren't happy with the results of that, then consider going to the founder or your boss' boss, but be aware that doing so may strain your relationship with that person even further. You owe it to yourself, and to the person who hired you, not to keep this matter to yourself until it boils over.
Good luck!
Scott
Devs, UI/UXes, Enterprise Architects are artists and you can't manage artists (I've come to that conclusion after comparing my first 6 years in the talent management within entertainment industry with life in software dev industry after that), you need to LEAD them. Job of the manager/leader is to remove obstacles, provide tools, and create the environment conducive to that creative process. Good happy devs create product customers love.
Why do I say that?
I've been head of operations for two software dev companies. One was in SaaS space and another was a larger enterprise market multi-platform dev shop with 120+ phenomenal guys and gals. Those awesome devs, UI/UX, EAs did not need any stinkin' management (we hired adults, you know), they needed proper tools and the right environment with the right visionaries who could speak tech and biz fluently. I spent most of my time worrying to make sure to keep bureaucracy away from them, keeping infrastructure scaling, keeping that environment attractive for prospects, and making sure my guys and gals stay. Our corporate culture took care of self-management.
Don't give up yet! You're facing a common challenge that most companies and managers run into sooner or later. Managing technical people (engineers, developers, etc) is definitely a challenge, and needs its own approach which is different from how you manage non-technical people.
A really great resource for this topic is "The Human Side of Managing Technological Innovation: A Collection of Readings" by Ralph Katz. This is useful for both sides of the table, managers and developers, to understand eachothers' approach & what to do to address it.
Wow, some people have had really bad manager. I have been managing development teams fro 15 years both onshore and offshore and I cannot write a single line of code. Here is the kicker I have done it very successfully and prudently. The key in managing is empowerment, leadership, vision and removal of barriers. Understanding that developers don't think people who don't write code can't manage them indicates a narrow mind. If your boss needs to do your job for you then mabye the problem is with you and not your boss. That being said I understand software development cycles and I understand egos and those two things have made me able to really understand how to manage developers successfully. Good developers are a dime a dozen good managers are very hard to find.
Hardly. I had two bad experiences where non-developers managed development.
Problems were in misunderstanding of software development process. It was very hard to explain that late (and often) changes in requirements can cause deadlines to slip.
Also, there were "cost cutting" ideas like: "hire couple more developers now to make it on time, then fire them when finished", but on the other hand I could not get 19" monitors for developers (it was 4-5 years ago when 19" was standard).
I did not hear that anyone hired software engineer to manage construction site or surveying project. You need to have proper education and license to do that kind of work. It looks that software development is the only engineering discipline where anyone can be project manager.
But, that only talks about organizations that allow this to happen.
OK, this was a rant based on my bad experiences.
Off course they can. There are lots of issues that have to be dealt with when managing a project that are not coding related.
I guess it is possible, but I have never seen it first-hand.
I have also seen many "technical" managers screw up badly.
To manage people well one has to understand what is important for them to get their work done. That USUALLY means understanding the work itself.
As a developer you do have power : If you don't agree with a decision made by management, then let them know what effect you think it has on (long term) development cost / effort. You have to fight to get things right!
Time and money are variables that managements listens to. Every time it realizes that you were right, trust grows, and things become easier for you.
To answer the question:
Hey Boss, we need about two months of work for the login portion of the website.
QUESTION TO THE NON-TECHNICAL DEV MANAGER: Is that an accurate assumption?
I rest my case.
I think it helps to have some experience, but it's not impossible. It takes a lot of work to understand programmers and how software gets built. Thinking the best programmers make the best team leaders or managers is a bad idea. Having someone with domain knowledge can benefit a team a lot more.
Serving Your Team: Joel Spolsky has a blog post on a team leader/manager creating an abstraction layer for the development team. If you can provide this to a qualified team, you're better than most.
Hiring : Can you spot a talented programmer? Do you have a network of programmers you know can get the job done? This is your greatest contribution to the team to get the right team on board. If people can't get things done, you'll be responsible for replacing them or suffer from the poor quality of their work.
It's a job that requires specific skills and either you have them or you don't. It's a waste of time to think those with programming experience have any monopoly on this.
Yes, I am a developer with a boss who has never written a line of code in his life, but is a great manager because he knows the business and he knows how to manage. A huge part of it is trusting the people who know more about certain areas than he does.