Posts Tagged ‘development’
Daily Scrums Keep Your Team On Track
If I made the fortunes for fortune cookies, my next fortune would read, “You will be more successful when you hold daily scrums”.
Daily scrums are a valuable tool in keeping a team on track to achieve the goals they set out to do. They keep teams organized and “on their objectives and to help them avoid being thrown off track by less important concerns.” EffectiveMeetings.com outlines 9 rules to starting and maintaining productive scrums.
At Serpico DEV, each project’s day starts with a quick team meeting, or “scrum”. A scrum should last about 15 minutes and focus on what everyone’s goals and challenges for the day are. It’s a great way for everyone to get on the same page. Who joins the scrum? Everyone does. Project managers, developers, team leads, testers and designers. We believe that everyone on the team needs to be at the morning scrum. When everyone knows what everyone else is working on, a synergy unlike anything else is created. Projects get done faster and more efficient.
If you are working with a remote team, the morning scrum is not a “nice to have”, it’s a survival tactic. It’s a way to create a sense of accountability in the whole team, while at the same time getting people, who are spread out by thousands of miles, talking and communicating.
Start experimenting with daily scrums today. Learn more about scrums by contacting us.
Finding Value in Agile Software Development
Ask someone the most effective method to develop software and you’ll likely get a wide range of answers. There really is no right or wrong way. It’s really just a matter of using what is most effective for your team.
Two of the most popular methods, Waterfall and Agile, both have their place in software development but in contrasting scenarios. Waterfall uses clear requirements gathered before the development starts. Agile uses incremental development in the form of short “sprints”.
Our development team has always found the Agile software development method to work best and we highlight the reasons below.
Waterfall vs. Agile
As mentioned earlier, the waterfall method is built around all the requirements being gathered before any development occurs. Detailed documentation of how the new software is supposed to look and act are agreed upon by the customer and development team ahead of time.
The software development process then goes through a number of stages from design all the way down to installation and maintenance. The reason it is called the waterfall method is that each stage follows from the previous one when it has been completed, cascading down like a waterfall.
This makes the waterfall approach somewhat inflexible. Customers are often unclear about their requirements initially and waterfall makes it difficult to change the requirements later on. Such changes require more time, and therefore, project cost increases.
On the other hand, Agile software development is based on incremental development. This means that you create deliverables early and refine them through several iterations with the customer. Requirements and solutions evolve through collaboration among customers and development teams.
Less time is invested upfront for documenting requirements when the development process uses Agile. Instead, successful delivery is in part dependent on customer feedback regarding new releases of the software. Customers often gain a better idea of their requirements as the software development progresses. This approach makes it much easier for customer requirement changes to be made on the fly.
Benefits of Agile Development
So what’s the benefit with using Agile? In the world of software development, the benefits are plentiful.
What business doesn’t want to reduce risk?
The Agile approach provides a far better opportunity to mitigate risks as they arise. Being responsive to change instead of following a plan as with waterfall, risks can be addressed before spinning out of control.
This is accomplished by breaking down the development process into “sprints” or short, iterative time frames of development. At the end of each sprint, a working release of the software is provided to the customer. Sprints allow the development team to adapt quickly to changing needs during each individual sprint. This prevents the team from having to practically start over from the beginning to work any new requirements in.
Accommodate Change in Development
Changes in needs and scope have always been primary sources of trouble for a software development project. It often leads to late delivery, missed schedules, and unsatisfied customers. But the iterative approach takes changing requirements into account from the beginning.
Users are going to change their minds as the software is developed—it’s inevitable. And they have every right to do it. As they learn more about the technology, their own business needs, and see working releases of the software, new ideas and requirements are created. Forcing users to accept the system as originally imagined is not just unrealistic, but detrimental to the success of their business.
Higher Quality Software
With an iterative approach, flaws are detected and corrected earlier in the software development lifecycle. Performance and functionality issues discovered early can be reduced, as opposed to being discovered at project delivery. QA testing through each sprint, as opposed to executing toward the end of the project, results in a more thoroughly tested product. Since all these critical functions are tested time and again over several iterations, the result is higher quality software when handed off to the customer.
All these benefits combine to achieve what all businesses want – saved time and money. Each provides a small piece of the puzzle in speeding up project delivery times and thus, reducing cost. The benefit of having flexibility in a project, especially software development, allows a business to find higher project success rates.
Has your business adopted the Agile methodology? Tell us why or why not.
For more information on our software development services, please contact us.
Giving Thanks in the Software World
It’s that time of year again – turkey and all the fixings, pumpkin pie, and the whole family in one household. It’s also a time to reflect and give thanks for things big and small in our lives.
The software development industry is no different. There are several things to be thankful for that have made everyone’s lives easier. Advances in technology have brought us from the IBM punch cards to user interfaces that can almost do the programming for you.
So after the big dinner is over and you’re trying to avoid falling into the “food coma”, here are a few things to give thanks for in the software world.
Open source software tools
Developer tools have benefited more from the open source software revolution than any other category of software. Gone are the days where you actually had to purchase an integrated compiler, editor, debugger, and linker system. No more spending thousands on developer tools for commercial Unix systems.
The open source era was born when Linux brought out the Gnu Project. Compilers, editors, debuggers, and linkers that came with Gnu were now available for free. As a result, productivity has skyrocketed among software engineers, in ranges of 200-400%.
Not only has this made an engineers life easier, but the industry as a whole has benefited. These days, students can access the tools needed to quickly learn software development, all for free. Combine software engineering students with endless free learning resources and you have a pretty good outlook for the future.
Where would we be without virtualization?
Coding software is one thing. But we all know that coding software is not complete without quality QA and testing. Virtualization has made QA easier and much faster. It used to be a process of wiping a hard drive and reinstalling the operating system. That headache disappears with the click of a button and creating a new VM with whatever operating system you want.
VMware Workstation is one of those virtualization tools that make the $249 cost worth it. QA teams become much more efficient with it by being able to test on numerous operating systems, browsers, and application platforms. Snapshot management allows you to save configurations through patches, service packs, and upgrades. Run into a problem? Just simply roll back to a previous snapshot.
The benefits a development team can realize long term with a tool like VMware Workstation far outweighs the one time fee.
Advancements in mobile development
The combination of C# and Mono Tools allows a developer to share an application’s code across multiple platforms. Slap a native user interface on top of the code for each platform and you have applications for Droid and iOS.
Applications created with this approach will look and feel native because they’re using the same APIs exposed by the platform. Mono tools can even help clean up the platform APIs and make them easier to work with than those exposed by the native languages.
What’s this mean for you? Developers can now concentrate on satisfying the user requirements rather than having to manage multiple code sets for each new platform. Less time spent developing a new application for every platform means less money and resources spent.
New development platforms, open source tools, and virtualization are all great advancements in the industry. But they can’t provide any benefit without the one thing we should all be giving thanks for: the people. Software developers, designers, and QA folks are the ones who make this whole world of software development turn.
There is no magical way to automatically turn a huge document of user requirements into an application. Code just doesn’t type itself into a working online tool or web application. Testing doesn’t take care of itself.
Every application or online tool you use still requires the knowledge, education, and experience of people. Only then can an innovative and sometimes even world changing application be created.
Here at SerpicoDEV, we are truly thankful for our talented team of developers, designers, and QA testers. It’s because of their countless hours and effort that our clients are always happy with the delivery time and quality of their software development. Without our team, none of this would be possible.
So before you sit down and eat, take a short moment to be thankful for what really makes your software function – the people. And if there is anything we missed, leave a comment and let us know. Have a Happy Thanksgiving.
For more information on SerpicoDEV and our services, please contact us.
Think You’re Too Small for Outsourcing? You May Be Surprised
Appointment-Plus CIO Stephen Booze provides his insights on outsourcing in the technology industry. Serpico DEV maintains a great working relationship with Appointment-Plus as a software development provider for their online scheduling application.
While the term “outsourcing” is permanently etched in the business lexicon, there is still an overriding sense of uncertainty that flows throughout a company at the prospect of moving in that direction: CIO’s worrying about intellectual property, project managers refilling their ulcer prescriptions, and developers updating their LinkedIn profiles. While this is clearly tinged with a bit of sarcasm, the belief is that many companies feel that outsourcing is only a viable option for larger organizations. However, that is far from the truth, and any anxiety can oftentimes be tempered once the true cost-benefit analysis is performed.
The horrors and triumphs of IT Outsourcing (ITO) are well-known. Everyone knows someone who knows someone whose company went down the outsourcing road, only to have things go dreadfully wrong or incredibly well. Gartner, a leader in providing technology research, shows ITO service spending has grown from 247 billion in 2011 to 251 billion in 2012, which makes it clear that the positives are outweighing the negatives for many companies. While the number obviously is comprised of many large organizations, I have experienced many small businesses getting the same, if not more, benefit from choosing the outsource model.
Typically with small businesses, if there is any outsourcing, it is done on the front end, e.g. a prototype or proof-of-concept, and is almost solely with software developers on a time and material basis. While there is value in this approach, it is often shortsighted. If the product or service is proven to be a success, there will be ongoing development and maintenance needs. Yet, the developers contracted are usually off to another project for another company, and the business is left with either sub-par developers or spending time, effort and money ramping up a new contracting team.
To counter this result, more outsourcing companies are focusing on full-time, long-term placements. This is an obvious benefit to the outsourcing firm in regards to predicable revenue, but it is also a plus to the small business, as they are able to have the same resources allocated solely to them at a lower cost than standard contracting and at a fraction of the cost of a full-time employee. Additionally, there is value in training these individuals, as the knowledge won’t be lost, and the risk of losing control of proprietary processes goes down.
When considering what to outsource, ITO always comes to mind. However, some of the more progressive near-shore and off-shore firms also offer resources for Business Process (BPO), Knowledge Process (KPO) and Legal Process (LPO) — all of which can extend the small business dollar while introducing a high level of expertise. Even within ITO, other areas such as cloud computing make solutions such as Data Centers (DCO) and Application (AO) outsourcing significantly less expensive with the added benefit of almost immediate cost savings and greater system availability, scalability and security.
Besides the benefit of costs savings by outsourcing, there is also another significant value for the small business — focus. Utilizing individuals to take on the items that are lower level in nature will allow your permanent team members to spend their time and energy on providing more substantial impact to the business by focusing on the higher value strategic initiatives. Not only could this positively impact revenue, it could also increase motivation and morale for those permanent resources.
Getting started is relatively simple and similar to entering into any other partnership. Complete the regular due diligence, looking for firms that are in line with your business size and needs and that will let you “dip your toes in the water.” If your need is on the resource side, select a smaller project with a predictable outcome and a realistic set of expectations. If it is more solution/services-oriented, choose a component of your business you are comfortable placing outside of your walls (e.g. data storage, customer relationship management, etc.). And always keep in mind that the true benefit of outsourcing is not in replacing internal resources or hires, but rather lessening their daily burden so that they can be fully utilized for their talents and skills.
For more information on our outsource business model or software development services, please contact Serpico DEV.
Developing a Mobile Website or Application Using HTML5/CSS
By Victor Castrejon
Every day mobile access to the Internet becomes more and more prevalent. In the past 2 years, North America alone has seen an increase of around 70% in mobile device usage. In the next 3 years, mobile Internet usage is expected to completely overtake desktop Internet usage as the main source of accessing the web (Source: http://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketing-statistics/). This trend is already taking shape as over 60% of online connections were made through a mobile device last year according to Twitter.
Here are some ways to create a unique mobile experience for visitors:
Media queries are conditions added to style sheets (CSS currently supported by version 3). Using these conditions, we can differentiate between a cell phone, a tablet, or even a TV. This allows the style sheets to be adjusted from a website by rearranging or resizing elements, and thus, are able to offer visitors a specified interface for the phone or tablet.
The jQuery plugin creates a graphical interface similar to that available natively on mobile devices. This is more useful for operation in touch screen displays than the common HTML, which is more oriented to desktop computers. The great advantages of using jQuery mobile are being able to use the back end of your website with minimal changes, ease of deployment because it does not require installation on devices, and not having to use an application store for distribution. It does present the disadvantage of not having access to the technical characteristics of the system such as GPS and camera though. This option is recommended for catalogs, online stores, or when you need to interact with a database. Other similar alternatives: Dojo Mobile, jQTouch
Mobile development is the way of the future and these methods continue to make the user experience more user-friendly. If your company has a need for mobile application development or would like more information, please contact Serpico DEV.
The Facebook Relationship Status: A Glimpse into the Power of Software
Consider these facts: Facebook is now used by 1 out of every 13 people on the entire planet. Over 750 million photos were uploaded to Facebook on New Year’s weekend 2012. As of this past summer, LinkedIn acquires approximately two new users per second. Large and well-known companies like SalesForce and Motorola are now using cloud-based applications for their everyday needs such as Google Apps for Business.
Have you ever stopped to think how much these websites and applications really affect our everyday lives? We all know that software and mobile application use are growing at an unprecedented rate. As I was browsing Facebook the other day, I came across one feature that had me contemplating this phenomenon: The Facebook relationship status.
Coming from a background in IT and recently moving into the software development world, I have a newfound appreciation for the power of software. It has caused me to think about applications like Facebook from a different perspective and that’s where the relationship status comes in. I came across a couple that recently got engaged and of course, posted the event to their timeline and changed their relationship status. It had 110 likes and almost 50 comments within minutes. So without even trying, that couple had almost an entire wedding guest list of 160 of their closest friends done without even thinking! While the list will probably have to be refined, a task that once took weeks to put together is now at their fingertips in minutes just by changing their Facebook relationship status. The power of this event is definitely evident when couples now seriously have to contemplate when to make it “Facebook official” so the whole world knows. Because you don’t want to post it on Facebook yet if you forgot to tell that one special aunt or uncle, right?
As another example, I believe you know your website or application is around for the long haul when it switches from a noun to a verb. Take Google search, no one says “I’m going to look it up on Google’s website” anymore, it’s just simply “I’ll Google it”. Same thing with Facebook, the phrase “Facebook me” is a staple in our social interaction now. There aren’t too many websites or applications out there that can stake claim to this but you get the point.
I’m sure after reading those examples, you’re thinking, “So what? Applications play a big role in our lives, that’s nothing new.” I was flipping through channels the other night and stopped at a Piers Morgan episode on CNN with Tony Robbins interviewing Dallas Mavericks owner, Mark Cuban (at the 1:50 mark). Cuban, as you probably know, is a business genius, having started and sold several companies earning him more money than he knows what to do with. In this video, he claims that America’s best chance to reinvigorate the economy is by taking advantage of our intellectual capital and ability to innovate. Where does he say the highest level of innovation is taking place? Software development. “Software is taking over everything and we have to retrain our people making them capable of participating in the workforce at that point” Cuban says.
Software development and its impact on how we work will continue to increase as we move into the future. Are you on board?
For more information on the state of today’s software environment and Serpico DEV’s development process, please contact us.