185 West F Street, Suite 700, San Diego, CA 92101 619-819-7456
Fill out the form and we’ll get back to you ASAP.
Best Practices in Software Development
Written by Admin
At Seamgen, we specialize in digital strategy, innovative technology, and purposeful design.
When we build a product, we start by considering how users will interact with the system, and continue to focus on the user from initial design through final development.
We use the Agile method to improve continuously and add features to the product. Throughout my years as President of Seamgen, I have learned some of the best practices in software development and in this blog I would like to share them with you.
The Agile method allows your team to be adaptive and flexible. To do Agile right, you need the right team. The right team for software development integrates designers and developers.
Neither the designers nor the developers can work in silos; they have to work together. When I started Seamgen, we were purely a development company but I soon realized that we needed to integrate design so the products we built would have a rich user experience.
User Experience Integrated With Development
Everything starts with the design process, with user experience designers leading the projects.
They define the feature lists, information architecture, wireframes, and prototypes. Our designers work with the customer to write stories that translate to actual features. We have found this to be the best possible process for building great products.
Developer oversight of design ensures that every part of the design can be built within budget. Also, the key to staying within budget is defining the minimum set of features that could comprise a product, the “Minimum Viable Product” or MVP.
Once the user experience team has provided input on the design of the application, the development team needs to define the architecture.
Strong Technical Architecture
The architecture needs to be robust enough to support the long-term vision of the product without being so complex that it cannot be built on time and within budget.
Development should regularly ask these three questions:
What’s the best overall architecture for the application?
What are the integrations?
What is likely to change or be extended?
Every project should start with automated builds and unit test runs. Milestones and features should be mapped out on the calendar early.
Once development starts, we have daily stand up meetings where we communicate what we did yesterday, what we are working on today, and we discuss if things are blocking our progress.
Communication is Key
Communicating is the key to our growing success, each team sits together, and we all work together. We talk all day long, whether it be face to face; which is my preferred method, or through Slack messenger. If you have a question, someone in the office can help you find an answer.
The sprint is the core of the Agile process. The team comes together and commits to what work they can accomplish in a sprint; everyone tracks the progress on their tasks daily, and the team holds one another accountable for completing what they committed to doing.
The sprint ends with a demonstration of completed work, and then the process begins again.
Task are pulled from a prioritized backlog, so the team is always building the most important thing. In this way, the product iterates toward the MVP, with developers building what’s necessary for the product.
Prioritizing the backlog must be a joint effort between the developers and the product owner, so that development of structural features starts early, as well as functions that are relevant to the product itself.
We believe quality products need unit testing and good exploratory testing. We work hard to impress upon our customers the importance and value of testing and quality assurance.
We also hold bi-weekly code reviews with the entire development team so the developers can share their knowledge and collaborate on difficult problems. Having more people looking at the code raises quality, reduces bugs, and speeds development.
Over my many years developing software I have found that close collaboration and the agile process help keep my team on track and clients happy. I hope you can use some of the practices I have learned in my career and like always if you have a question feel free to contact Seamgen!