We’re nearing the end with Initial Development. This is the step that most organizations want to jump right into when they have an idea for a custom software application. It can start one of several ways. Sometimes someone has a great idea and they write some code to show it off and now management thinks this can be a product that they are selling next week. Or it can start by an inexperienced product manager thinking that they can skip all the above steps and that if they have someone start coding they can make changes as they go. (Think trying to move the bathroom in your house to another location…) Most commonly, people underestimate the level of effort that it takes to build a software application. I like to say that if it were that easy then everyone would have successful software applications. But, I have seen so many organizations start and fail building custom software applications because they just don’t know the right way to do it. Getting a successful software application into the marketplace isn’t easy and working the process takes time, money and the right resources.
Team: Your development team is going to vary depending on the scope of the project and the resources you have available. But the most successful projects have a good core group of resources that work continuously on a project or series of projects together. Now I’m gonna preface these next couple of statements with this: These are not hard and fast rules –just my observations over 25 years working in software development. They don’t always apply and probably don’t apply to you if you are a developer, designer, quality assurance, business analysis, and/or development manager (ok, yes they do…)
Developers: They should be responsible for developing code. Here are the things that they should not be doing: design, test, creating business requirements, project management, supervising others, and anything else that isn’t coding. Developers need large blocks of uninterrupted time to write code. Also don’t bury developers in meeting after meeting; you are paying them a nice salary to write code and not to do these other things. There are lots of types of developers out there. There are the dreamers, the superstars, the coders, the closers and the specialists. The trick is to assemble a team that matches the type of work you are trying to do and that complements each other.
Dreamers – are the big picture application architects. They are able to hold the whole application in their heads at one time, and they know how everything fits together. They know where the skeletons are buried, they now how new things will impact the project, they keep up with current technologies and they are always learning and exploring new and exciting ideas. They also know all that things that need to be done to the project from a development prospective (some are critical, some are necessary, and some are not.)
Superstars – are big idea/concept architects. They also hold the whole application in their heads at one time and they do know how things fit together. They probably developed some of the skeletons that are in the project, but they are the ones that super cool awesome projects should be given to. They are artists and they can paint some truly awesome masterpieces. They can take a slew of business requirements and boil them into something awesome. The more information you can give them up front –the better the output will be. There is nothing quite like hearing the words, “Wanna see something cool?” coming from a superstar developer.
Coders – are the workhorses of the department. They take mounds and mounds of business requirements and they do all the hard work of getting things implemented. They understand the project –although they don’t hold all pieces in their heads at one time. They know what they are working on and they can learn other areas of a complex system without too much trouble. They are not going to create masterpieces like Dreamers or Superstars, but they are going to add new functionality to existing systems and they will be instrumental in correcting problems and issues.
Closers – are critical to overall success with a team. They are sometimes coders as well, but their role is to follow behind Dreamers and Superstars and make code fit and work properly. It is one thing to show something working and another entirely to put it proper error handling, use proper libraries, meet established standards, and finish features. These include: filters, reports, improved usage and navigation, etc… You see, the Dreamer and Superstar will get you 70-90% of the way there and it is important to have resources that you can turn projects over to that will carry it across the finish line.
Specialists – are exceptional craftsman. They have a role to play and they play it exceptionally well. It could be database related –like Data Gurus that can do amazing things with queries and databases. It could be Embedded Systems –that know all the ins/outs to interface with specialty hardware or services. It could be some unique intellectual property that is the life blood of your application (and they are the ones who know every bit and byte that goes in to making that system hum like ‘57 Chevy on a warm summer afternoon.)
Designers – are a combination of front-end developers and graphic artists. They are usually exceptionally gifted and talented and have an eye for detail. They are building and shaping the experience of the user. They are often involved in the High Resolution Prototype phase and can leverage work that they have done there to make the transition to development a smooth one. The whole User Interface / User Experience of your custom software application falls to them.
Quality Assurance – are critical to the success of a custom software application. They are the ones who ensure that the software does what it designed to do, how it is designed to do it, and does so in a consistent and repeatable way. Their job is to find failure, make it reproducible and illustrate it to the developers for correction. Ultimately, they are necessary to make the whole team look good. Developers who are writing code make terrible testers and should never be allowed to test their own or other developers’ code. A dedicated Quality Assurance staff is not an option on a project that you intend to make production ready.
Business Analysts – experts that translate business needs into functional requirements. This is typically one or more persons that know the business and understand the needs of customers. They drive the process, championing the needs of the users, adding value and filtering out the noise. They have their fingers on the pulse of the ecosystem and should be on top of all changes that are occurring from competitors, customers and vendors. They should also have key relationships with key customer accounts so that exceptional feedback can be gathered at a moments notice.
Ok, so what holds this awesome team together – The Development Project Manager. This person should not be someone who codes anymore, but someone who has coded and knows the system very well. They are the coach, the second set of eyes on a problem, the head cheerleader and ultimately everyone on the team’s big brother/sister. They keep the team isolated from outside issues, handling meetings, politics, distractions, criticisms, etc. However, they are the first one to turn around and give each member the what-for when someone is dropping the ball (or at least kicking it around a bit.) They are the glue that keeps the team working well together and affords them the ability to concentrate and get their coding done. Bottom line –distracted developers lead to slower progress, more problems and less inspiration and output from the team.
Review & Feedback: When your product is well received you will know it; people will start to ask for new features and you can embark down the path of adding new features and functionality that are derived from the user community and from your product roadmap. You will find that you will need to come back to the prototype phase to begin the next round of development in your software development lifecycle. As you continue to invest time, money and resources –your product is out there working for you, generating money, and gaining market share.
[At J&S Tech Designs, we no longer write code anymore. We have developed relationships and resources with all levels and skill-sets. Engage with us and we can help you with business analysis, project and development management. Find out today how we can take this concept into reality in your organization.]
Read: Previous Article
Read: Next Article