Enterprise Development Planning
If I were held responsible for hiring developers for an enterprise development team, here are the top 10 skills I would look for:
- Can code in more than one language. Can fairly easily translate code in one language to the other(s).
- Understands both the Web programming model as well as the desktop model. Can articulate the strengths and weaknesses of each.
- Has, at some point in their career, achieved certification. This does not by any means prove they know their stuff, but tells me a little about how seriously they take their career as a developer.
- Doesn't crack under pressure or under criticism.
- Can explain, in their own words, a design pattern of their choice.
- Has a Google hit count of 100 or more on their name/identity/alias. This shows me they're on the Internet finding and giving answers, writing articles, have a blog, or are involved in the community at some level. I'm not an Internet celebrity by any means, but my name turns up almost 3,000 results.
- Has a very strong grasp on OO programming and the benefits of interface-based design.
- Understands the "how" and "why" of distributed software systems.
- Has strong communication skills. This means that they can read, write, and clearly speak the primary language spoken by your team.
While no single development methodology is a panacea for complex software development, it helps to know what's out there and how it can benefit your development processes. With so many different methodologies out there all preaching similar things in different ways, I'm going to avoid discussing any of them in detail. I think it's sufficient to state what parts of your development processes you should place importance on. Here is a cursory look at what's important: (Please note that this list is slanted towards .NET because that is my primary development platform).
For Brainstorming & Requirements Gathering
Modeling/Use Case tools
Automated Code Documentation
You also can find another interesting quiz here.
The next time you're in charge of developing an enterprise software system, remember how many things you'll need to juggle in your mind over the course of the project. There are probably a few items that enterprise architects and developers will notice didn't receive mention (testing, usability, and source code control, just to name a few) because this article serves the purpose of getting you started rather than leading you from start to finish. If you're building a commercial product, shipping the software will only be the beginning of the work. Be sure to have a system in place to handle support requests, feature requests, and don't forget about the need to market and sell your product. Ideally, someone else will take care of that for you, but it never hurts to have knowledge that spans outside the realm of software development. Chances are good you'll be working in tandem with other teams to push the most important features of your product. And as always, there is version 2.0 to start planning.
About the Author
Jason Mauss is Chief Technology Officer for Knowledge Relay, Inc - a business intelligence visualization company, providing tools and resources at all levels of the enterprise. In addition to writing technical articles, he keeps a weblog at http://weblogs.asp.net/jamauss. You can contact him at Jason.Mauss@KnowledgeRelay.com or through his weblog.
Page 3 of 3