I had a flash of inspiration this morning that my ideal job would likely be consulting on how to manage and improve software development production. Not stuff like showing people how to use UML (although I've taught that professionally in the past), but nitty gritty stuff, like making sure that all the right tools are being used, things are being planned in a sane way, people are coding consistently with the quality of the product desired, etc. From product planning and verification all the way through development, deployment, support, and updating.
- Tools Evaluation: There are a set of tools you need to produce quality software, they need to be used together and how team members work with them should be well understood. These are not rules for rule sake, each one exists to improve the productivity of the team members. As an example, here is what I came up with for TalentSpring.
- Planning and Scheduling: What work is important, how do you evaluate that, how much can be done in what period of time? When are you actually ready to give the product to customers, internal or external? Small mistakes compound here, leading to software released well before it should have been, deadlines consistently missed, or products irrelevant to their supposed target customers. Really engaging with the developers who will be writing the code and getting them productively involved with this stage is sadly rare, and that lack leads to many problems.
- Release and Support: Once the product is finished it is far from done, even with the best teams there will always be nasty bugs that sneak through. Fixing them and getting the updated version to customers in a painless way that doesn't cause more problems can mean the difference between viral word of mouth recommendations and failure. Triaging the issues quickly and correctly makes sure the only changes that are made are the ones that absolutely need to be.
- World Class Software: I wrote an entire series of articles many years ago about what it takes to make world class software. I re-read it a couple weeks ago and it stands up very well. I not only know what needs to be done, but have written the code.
- Evaluating Technical Talent: I've worked with some of the best in the industry, I've managed people from stars to... not stars. I can help management evaluate their team so they know what strengths and weaknesses they have to work with, and the specific types of talent they should prioritize hiring.
- Community Engagement: In both my technical teaching as well as product team experience I've seen how important it is to appropriately engage with the user community to get feedback and keep them involved and informed with the product team. Communication is even more important now, where companies are often able to differentiate more on user communities than on product features.
- Top Talent Mentoring: The job market for top technical talent has exploded recently, and they are in tremendous demand. If you want to retain your top people, they need to feel like they're both valued and growing. If you do not have the resources available in-house to mentor and help them grow it is easier for the big companies to lure them away. I can provide technical and career mentoring.
- Bridging the Technical/Non-Technical Gap: People communicate in many different ways, I have experience working with many different disciplines and can help companies develop better communication between groups so everyone is working towards the same goals and valuing each other's work.
I think there's a lot of potential here. I know I'd enjoy it (I have in the past), the trick is of course getting it started, building a reputation, getting successes under my belt, and some word of mouth spreading to those who could use help with any of the above.
Anyone have more direct experience with this sort of thing? I want to strictly avoid the buzzword bingo style and the get in the door and make them regret the day they met you (but you have sacks of cash) style. High value, build a top tier reputation, walk away with people thinking they got a bargain.
I'm sure there are other great ways I could add value that I haven't thought of, but the list above looks pretty good to me. Not all companies/teams need them, but those that do are likely being badly hindered by them. Looks like I may be doing more networking.
Comments